ソースコードの提出

addons.mozilla.org (AMO) でのレビュープロセスを完了するには、レビュアーはあなたの拡張機能のコードを読めないといけません。ビルドプロセスで拡張機能のコードが読み辛くなることがあります。そのプロセスにはコードの難読化や最小化(minifying)が、モジュールバンドラーや同様なツール(例えば webpack)を使用しているのと同じように含まれます。こうした場合、AMO に拡張機能をアップロードする時、ビルドプロセスが拡張機能のコードを読み辛くしますが、そのソースコードをビルドするためにソースコードとビルド手順を提供する必要があります。

あなたのアドオンがサードパーティのライブラリを使っている場合、それらの機能要件を参照してください。

コードの難読化や最小化は推奨ではありません。JSNiceJS Beautifier といったツールを使えば、これらのやり方は元に戻るので、コードはほとんど保護されません。更に、最小化されたコードがインターネット上の Web ページからロードして生じる長所とは違い、拡張機能のコードをローカルソースからロードされるのと比べるとパフォーマンス上の利益はあまりありません。

もし明確な手順とソースコードが提供されず、レビュアーが拡張機能を評価できない場合、却下されます。

拡張機能のソースコードを提供する

あなたがいつ拡張機能のソースコードを提供するかの詳細、ビルドプロセスについて提供しなければならない情報の詳細、そしてどのようにソースコードをアップロードするのかについて確認することができます。

ソースコードをアップロードする必要がある時は?

コードが以下のものを使って生成した時には拡張機能のソースコードをアップロードしなければなりません:

  • uglifyJS Google Closure Compiler といった、コードの最小化、あるいは難読化するツール。
  • browserify webpack といった、他のファイルから単一ファイルを生成するツール。
  • handlebarscss2js といった、テンプレートエンジン。
  • ファイルを使ったり、事前処理を適用したり、拡張機能に含めるファイルを生成したりするその他のカスタマイズツール。
送信したソースコードはいずれも管理者レビュアーの小グループからのみアクセスされます。

ビルド手順を提供する

ソースコードのレビューで大事なことはソースコードが拡張機能で使用されているのと同じコードであると確認することです。マルウェアの作者は正当に見えるソースを提供せず、最小化したコードにバックドアを仕掛けることから安全に守ることになります。そのために、レビュアーはソースコードから拡張機能をリビルドする必要があります。

ビルドを再現するため、レビュアーはあなたの用意した手順を実行して生成されたソースと拡張機能のソースを比較する差分比較ツールを使用します。きっと何も差分がないでしょう。ビルド手順を提供するもっとも簡単な方法は送信したソースコードに README ファイルを含めることです。処理された、例えば、難読化された、1 つあるいは 2 つのファイルがある場合、手順は run uglifyjs data/mycoolstuff.js といったものとなるでしょう。拡張機能がより複雑であるならば、ビルドを実行するためのスクリプトを提供してください。手順を用意したら、次のものをソースコードに含めるのを忘れないでください:

  • オペレーティングシステムと環境要件。
  • 例えば、yuicompressor といったダウンロードしておく必要のあるツールやユーティリティ(必要なバージョンやインストール手順を含む)の詳細。
  • 例えば、npm install や grunt target といった、ソースコードから拡張機能の同一コピーを生成するためのすべてのコマンドのリスト。理想的にはビルドスクリプトファイルには全コマンドを入れておくべきです。

ソースコードを難読化、最小化、あるいは連結するのに使用するツール:

  • オープンソースでなければなりません: 商用ツールでビルドされたソースを検証できません。
  • ウェブ上が前提ではいけません: すべてのレビュー用ビルドはローカルで実行します。ウェブ上が前提のツールはレビュアーにソースが最小化したコードと合致すると確認させることができません。ウェブ上が前提のツールはローカルで実行できるバージョンを提供するものがあり、その場合にはローカルでツールを動作するスクリプトを提供しています。

ツールを支援する npm 、yarn 、あるいは他のパッケージ管理ツールを使う時、ロックファイル、例えば、package-lock.json を含むように気をつけましょう。さもなければ、レビュアーは生成されたコードと拡張機能のコードとの差分で違ったバージョンの結果を使うことになります。

レビュアーは彼らのコンピューターにいかなる開発者ツールもインストールしていないと考えてください、すなわち、必ずコードを生成するすべての段取りとビルド手順を含めてください。とはいえ、npm や node といった共通ツールをインストールするやり方を記述する必要はありません。

ヒント: ソースを含むディレクトリーと関連のあるビルドターゲットを使ってください、例えば、dist サブフォルダーです。レビュアーに拡張機能のビルドコードを配置しやすくします。

ソースコードのアップロード方法

ソースコードを提供する必要がある場合、ソースコードの適用はすべての拡張機能のバージョンに提供されなければなりません。

2 つの方法でソースコードを送信できます:

  • 拡張機能をアップロードする工程の、拡張機能アップロードプロセスの間:

Shows how source code can be attached during the extension upload process

  • すでに拡張機能をアップロードしているのであれば、Manage Status & Versions を開き、ソースコードを適用したいバージョンを選択して、ソースコードセレクションでファイルを送信してください:

Shows how source code can be attached after the extension has been uploaded

ソースコードチェックリスト

ソースコードの申請で正確な詳細を提供しているかを確認するためにチェックリストを使用しましょう:

  • ビルドツールを使用する場合、ビルドツールは:
    • オープンソースであるか?
    • レビュアーのコンピューターで実行できるか?
  • ソースコードパッケージは次のものを含んでいるか:
    • アドオンで使用しているプライベートリポジトリやフレームワークからのソースコード?
    • 次のものを含んだREADME ファイルがあるか:
      • ビルドで使用されるオペレーティングシステムの詳細?
      • ツールもしくはユーティリティの特定のバージョンが必要であるかの詳細?
      • ダウンロードされる必要があるツールもしくはユーティリティへのリンク?
      • 例えば、オンラインの手順へのリンク、ダウンロードしたツールやユーティリティをインストールするためのガイダンス?
      • アドオンコードをビルドする手順、あるいは提供するスクリプトの詳細?
    • ビルドスクリプト?
    • npm や yarn といった、パッケージ管理ツールのバージョンロックファイル?
    • 拡張機能のパッケージのビルドを完了させるのに必要な他のすべてのこと?

アップロードしたソースコードパッケージから必要なコンテンツのいずれかが見つからない場合、レビュアーは見つからない項目をリクエストするのに連絡を取ろうとしなければならないことを覚えておいてください。これでは拡張機能のレビューの完了が遅れますし、最悪の場合、add-on policies と照らし合わせ、コンパイルが確認できないことが理由で拡張機能は取り下げという結果となります。

ドキュメントのタグと貢献者

このページの貢献者: Uemmra3, kenji-yamasaki
最終更新者: Uemmra3,