Once your plugin is ready and you think the plugin could be helpful for some people, do not hesitate to upload it to Official python plugin repository. On that page you can find also packaging guidelines about how to prepare the plugin to work well with the plugin installer. Or in case you would like to set up your own plugin repository, create a simple XML file that will list the plugins and their metadata, for examples see other plugin repositories.
Please take special care to the following suggestions:
You can find the official python plugin repository at http://plugins.qgis.org/.
In order to use the official repository you must obtain an OSGEO ID from the OSGEO web portal.
Once you have uploaded your plugin it will be approved by a staff member and you will be notified.
These rules have been implemented in the official plugin repository:
Staff members can grant trust to selected plugin creators setting plugins.can_approve permission through the front-end application.
The plugin details view offers direct links to grant trust to the plugin creator or the plugin owners.
Plugin’s metadata are automatically imported and validated from the compressed package when the plugin is uploaded.
Here are some validation rules that you should aware of when you want to upload a plugin on the official repository:
Following the validation rules the compressed (.zip) package of your plugin must have a specific structure to validate as a functional plugin. As the plugin will be unzipped inside the users plugins folder it must have it’s own directory inside the .zip file to not interfere with other plugins. Mandatory files are: metadata.txt and __init__.py. But it would be nice to have a README and of course an icon to represent the plugin (resources.qrc). Following is an example of how a plugin.zip should look like.
plugin.zip
pluginfolder/
|-- i18n
| |-- translation_file_de.ts
|-- img
| |-- icon.png
| `-- iconsource.svg
|-- __init__.py
|-- Makefile
|-- metadata.txt
|-- more_code.py
|-- main_code.py
|-- README
|-- resources.qrc
|-- resources_rc.py
`-- ui_Qt_user_interface_file.ui