Respect the licenses by libraries and other resources that your plugin
uses
If the plugin has an external dependency, this needs to be clearly stated
in the About metadata field; you can include a short guide to install
Python libs as needed, or opint to existing guides, e.g. for Windows
https://landscapearchaeology.org/2018/installing-python-packages-in-qgis-3-for-windows/
Don't include binaries
Recommendations
Write comments in your code in English, it will make it easier for others
to contribute
Provide a minimal data set for testing
Put the plugin into the appropriate menu (Vector, Raster, Web, Database)
Before publishing a new plugin, check if it duplicates existing
functionality and explore collaboration possibilities
Make your plugin work on all supported platforms (Windows, Linux, macOs)
Don't rename the plugin title just because it's upgraded to a newer
version like QGIS 3
Check if source code uploaded to the QGIS plugin repo as zip is identical
to "Code repository" indicated in metadata.txt
Mention any requirements, dependencies and restrictions in the description
text section (which can be multi-line). Examples of requirements,
dependencies and restrictions are, if the plugin is running only on
selected platforms, requires SW to be installed separately or some user
account, but also if the plugin is spatially covering just some countries
or regions.
Tips and Tricks
Keep your source repository in good shape:
No generated files left in the repository (ui_*.py, resources_rc.py,
gen. help files…).
No __MACOSX, .git, __pycache__ or other hidden directories
Good code organization (subfolders).
Code comments are available.
PEP8 & Python/QGIS guidelines compliance.
A README file and a LICENSE file are present.
If some dependencies are not available in OSGeo4w Python, provide
instructions on how to install them on Windows.
The name of the plugin and the folder name do not repeat the word
`plugin`.
Plugins should make use of QgsNetworkAccessManager instead of using
urllib2/requests/etc... which often fail to use correct proxy settings.
The
plugin builder
plugin is recommended, especially for new users.