16.4. プラグインをリリースする

プラグインの準備ができ、そのプラグインが誰かのために役立つことあると思ったら、躊躇わずに 公式なPythonプラグインリポジトリ にアップロードしてください。そのページでは、プラグインのインストーラでうまく動作するプラグインを準備する方法についてパッケージ化のガイドラインがあります。あるいは、独自のプラグインのリポジトリを設定したい場合は、プラグインとそのメタデータの一覧を表示する単純なXMLファイルを作成してください。

以下の提案には特に注意してください:

16.4.1. メタデータと名前

  • 既存のプラグインに似すぎた名前は使わない

  • あなたのプラグインが既存のプラグインと似たような機能を持っている場合、Aboutフィールドで違いを説明してください。そうすれば利用者はインストールしてテストしなくても、どちらのプラグインを使えばよいかがわかります。

  • プラグイン自身の名前で「プラグイン」を繰り返さない

  • 1行の説明にはメタデータのdescriptionフィールドを使い、より詳細な説明にはAboutフィールドを使う。

  • コードリポジトリ、バグトラッカー、およびホーム・ページを含めてください。これは非常に協働作業の可能性を向上させますし、利用可能なWebインフラストラクチャの1つ(GitHub、GitLab、Bitbucketなど)で非常に簡単に行うことができます

  • タグは注意して選択してください:情報価値のないもの(例:ベクタ)を避け、すでに他のユーザーによって使用されているもの(プラグインのWebサイトを参照)を選んでください

  • 適切なアイコンを追加し、デフォルトのアイコンのままにしない;使用されるスタイルの提案については、QGISインタフェースを参照してください

16.4.2. コードとヘルプ

  • 生成されたファイル(ui_*.py、resources_rc.py、生成されたヘルプファイル...)や無駄なもの(例えば.gitignore)をリポジトリにインクルードしない

  • プラグインを適切なメニュー(ベクタ、ラスタ、Web、データベース)に加える

  • 適切な場合(解析を実行するプラグイン)、プロセシングフレームワークのサブプラグインとしてプラグインを追加することを検討してください:これによってユーザーはバッチでそれを実行し、より複雑なワークフローにそれを統合できるようになり、インタフェースを設計する負担がなくなります

  • 最低限の文書を、そしてテストと理解に役立つ場合はサンプルデータを含めてください。

16.4.3. 公式なPythonプラグインリポジトリ

公式 のPython プラグインのリポジトリは https://plugins.qgis.org/ にあります。

公式リポジトリを使用するには、OSGEO web portal からOSGEO IDを取得する必要があります。

プラグインをアップロードすると、スタッフによって承認され、あなたに通知されます。

TODO:

ガバナンス文書へのリンクを挿入する

16.4.3.1. 許可

これらのルールは公式プラグインリポジトリに実装されています:

  • すべての登録ユーザーが新しいプラグインを追加できます

  • スタッフ ユーザーは、すべてのプラグインのバージョンを承認または非承認することができます

  • 特別な権限 plugins.can_approve を持っているユーザーは、アップロードしたバージョンが自動的に承認されます

  • 特別な権限 plugins.can_approve を持っているユーザーは、プラグインの 所有者 のリストにいる限り、他のユーザーがアップロードしたバージョンを承認することができます

  • 特定のプラグインを削除および編集できるのは、スタッフ ユーザーとプラグインの 所有者 だけです

  • plugins.can_approve 権限を持たないユーザーが新しいバージョンをアップロードした場合、そのプラグインのバージョンは自動的に未承認になります。

16.4.3.2. 信頼マネジメント

スタッフはフロントエンドのアプリケーションから plugins.can_approve 権限を設定することで、選択したプラグイン作成者に 信頼 を与えることができます。

プラグインの詳細表示では、プラグイン作成者またはプラグイン 所有者 に信頼を与えるための直接リンクを提供します。

16.4.3.3. 検証

プラグインのメタデータは、プラグインのアップロード時に圧縮パッケージから自動的にインポートされ、検証されます。

公式リポジトリにプラグインをアップロードする際に注意すべき検証ルールをいくつか紹介します:

  1. プラグインを含むメインフォルダの名前は、ASCII文字(A-Zおよびa-z)、数字、アンダースコア(_)とマイナス( - )しか含んではならず、また数字で始めることはできません

  2. metadata.txt があること

  3. メタデータテーブル にリストされているすべての必須メタデータが存在すること

  4. version メタデータフィールドがユニークであること

16.4.3.4. プラグインの構造

検証ルールに従って、プラグインの圧縮パッケージ(.zip)は機能するプラグインとして検証されるために特定の構造を持っている必要があります。プラグインはユーザーのpluginsフォルダ内で解凍されるため、他のプラグインと干渉しないように、.zipファイル内に独自のディレクトリを持つ必要があります。必須ファイルは metadata.txt__init__.py です。しかし、README やプラグインを表すアイコン(resources.qrc)もあると良いでしょう。以下はplugin.zipがどのようになるかの例です。

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