Publier votre extension

Une fois que l’extension est prête et que vous pensez qu’elle pourra être utile à d’autres, n’hésitez pas à la téléverser sur Dépôt officiel des extensions Python. Sur cette page, vous pouvez également trouver un guide d’empaquetage sur comment préparer l’extension pour qu’elle fonctionne correctement avec l’installateur d’extensions. Dans le cas où vous souhaitez mettre en place votre propre dépôt d’extensions, créez un unique fichier XML qui listera vos extensions ainsi que leur métadonnées Pour des exemples, consultez les autres dépôts d’extension.

Veuillez noter avec grands soins les suggestions suivantes :

Métadonnées et noms

  • évitez d’utiliser un nom similaire à celui d’une extension existante

  • si votre extension présente une fonctionnalité similaire à celle d’une extension existante, veuillez s’il vous plaît en expliquer les différences dans le champ À propos, de sorte que l’utilisateur sache laquelle utiliser sans avoir à l’installer et la tester

  • éviter de répéter “extension” dans le nom de l’extension

  • utilisez le champ description des métadonnées pour donner une description en 1 ligne et le champ À propos pour faire une description plus détaillée

  • inclure un dépôt du code, un suiveur de bogues et une page d’accueil ; cela augmentera significativement les possibilités de collaboration et peut se faire très facilement avec l’une des infrastructures disponibles sur le Web (GitHub, GitLab, Bitbucket, etc.)

  • choisissez les mots-clé avec soin : évitez ceux qui ne sont pas informatifs (par ex. vecteur) et préférez ceux qui sont déjà utilisés par d’autres (voir le site Web des extensions)

  • ajoutez une icône évocatrice, n’utilisez pas celle par défaut ; voir l’interface QGIS pour des suggestions de styles à utiliser

Code et aide

  • ne fournissez pas les fichiers générés (ui_*.py, resources_rc.py, fichiers d’aide générés…) et les fichiers inutiles (par ex. .gitignore) dans le dépôt

  • ajoutez l’extension dans le menu approprié (Vecteur, Raster, Web, Base de données)

  • Lorsque c’est possible (l’extension fait des analyses) considérez l’ajout de l’extension en tant qu’extension du module de traitement : cela permettra aux utilisateurs de l’utiliser dans des lots, de l’intégrer dans des flux de traitement complexes et vous évitera d’avoir à créer une interface

  • ajoutez au moins une documentation minimale et, si cela est utile pour la tester et la comprendre, un échantillon de données.

Dépôt officiel des extensions Python

Vous pouvez trouver le dépôt officiel des extensions python à http://plugins.qgis.org/.

Afin d’utiliser le dépôt officiel, vous devez détenir un identifiant OSGEO, à partir du portail web OSGEO.

Une fois que vous avez téléversé votre extension, elle sera approuvée par un membre du staff et une notification vous sera adressée.

A FAIRE :

Insérer un lien vers le document de gouvernance

Permissions

Ces règles ont été implémentées dans le dépôt officiel des extensions :

  • tout utilisateur enregistré peut ajouter une nouvelle extension

  • les utilisateurs membres du staff sont habilités à approuver ou non chacune des versions de toutes les extensions

  • Les utilisateurs qui ont l’autorisation spéciale plugins.can_approve ont leurs versions d’extension automatiquement approuvées

  • Les utilisateurs ayant l’autorisation spéciale plugins.can_approve peuvent approuver les versions téléversées par d’autres, dès lors qu’ils sont dans la liste des propriétaires de l’extension

  • une extension particulière peut être effacée et éditer uniquement par les utilisateurs de l’équipe et par leurs propriétaires

  • Si un utilisateur ne disposant pas de la permission plugins.can_approve téléverse une nouvelle version, cette version de l’extension est automatiquement signalée comme non approuvée.

Gestion de la confiance

Les membres de l’équipe peuvent ajouter un niveau de confiance à certains créateurs d’extension en paramétrant la permission dans la variable plugins.can_approve depuis l’application frontale.

La vue détaillée de l’extension montre les liens directs pour modifier le niveau de confiance du créateur d’extension ou des propriétaires de l’extension.

Validation

Les métadonnées de l’extension sont importées et validées automatiquement à partir du paquet compressé lorsque l’extension est envoyée.

Voici quelques règles de validation auxquelles vous devriez faire attention quand vous souhaitez charger votre extension sur le dépôt officiel:

  1. le nom du répertoire principal de votre extension ne doit contenir que des caractères ASCII (A-Z et a-z), des chiffres et les caractères trait de soulignement (_) et signe moins (-), et il ne peut pas commencer avec un chiffre

  2. metadata.txt est requis

  3. Toutes les métadonnées requises listées dans metadata table doivent être présentes.

  4. Le champ de métadonnée version doit être unique

Structure d’une extension

Le paquet compressé (.zip) de votre extension, suivant les règles de validation, doit avoir une structure spécifique pour être validé en tant qu’extension fonctionnelle. Étant donné que l’extension doit être décompressée à l’intérieur du répertoire des extensions de l’utilisateur, elle doit disposer de sont propre répertoire au sein de l’archive .zip pour ne pas interférer avec les autres extensions. Les fichiers obligatoires sont: metadata.txt et __init__.py. Il serait également appréciable de fournir un fichier README ainsi qu’une icône pour représenter l’extension (resources.qrc). Voici à quoi devrait ressembler le contenu d’une archive zip contenant une extension:

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