リポジトリにマニフェストを送信するSubmit your manifest to the repository

重要

Windows パッケージ マネージャーと winget ツールはパブリック プレビュー段階であり、一般公開されるまでに大幅に変更される可能性があります。Windows Package Manager and the winget tool are in public preview and may be substantially modified before they are generally available. 本書に記載された情報について、Microsoft は明示または黙示を問わずいかなる保証をするものでもありません。Microsoft makes no warranties, express or implied, with respect to the information provided here.

アプリケーションを記述するパッケージ マニフェストを作成したら、マニフェストを Windows パッケージ マネージャー リポジトリに送信する準備ができています。After you create a package manifest that describes your application, you're ready to submit your manifest to the Windows Package Manager repository. これは、winget ツールがアクセスできるマニフェストのコレクションを含む公開リポジトリです。This a public-facing repository that contains a collection of manifests that the winget tool can access. マニフェストを送信するには、GitHub のオープン ソース https://github.com/microsoft/winget-pkgs リポジトリにアップロードします。To submit your manifest, you'll upload it to the open source https://github.com/microsoft/winget-pkgs repository on GitHub.

プル要求を送信して GitHub リポジトリに新しいマニフェストを追加すると、自動プロセスによってマニフェスト ファイルが検証され、パッケージが悪意のあるものではないことが確認されます。After you submit a pull request to add a new manifest to the GitHub repository, an automated process will validate your manifest file and check to make sure the package is not known to be malicious. この検証が成功すると、パッケージは公開されている Windows パッケージ マネージャー リポジトリに追加されるため、winget クライアント ツールで検出できるようになります。If this validation is successful, your package will be added to the public-facing Windows Package Manager repository so it can be discovered by the winget client tool. オープン ソースの GitHub リポジトリのマニフェストと、公開されている Windows パッケージ マネージャー リポジトリの違いに注意してください。Note the distinction between the manifests in the open source GitHub repository and the public-facing Windows Package Manager repository.

重要

Microsoft は、任意の理由で送信を拒否する権利を留保します。Microsoft reserves the right to refuse a submission for any reason.

サードパーティ リポジトリThird-party repositories

現在、既知のサードパーティ リポジトリはありません。There are currently no known third party repositories. Microsoft は、複数のパートナーと協力して、サードパーティのリポジトリを有効にするプロトコルまたは API を開発しています。Microsoft is working with multiple partners to develop protocols or an API to enable third party repositories.

マニフェストの検証Manifest validation

GitHub の https://github.com/microsoft/winget-pkgs リポジトリにマニフェストを送信すると、マニフェストが Windows エコシステムの安全性に関して自動的に検証および評価されます。When you submit a manifest to the https://github.com/microsoft/winget-pkgs repository on GitHub, your manifest will be automatically validated and evaluated for the safety of the Windows ecosystem. マニフェストは手動で確認される場合もあります。Manifests may also be reviewed manually.

マニフェストの送信方法How to submit your manifest

マニフェストをリポジトリに送信するには、次の手順を実行します。To submit a manifest to the repository, follow these steps.

手順 1:マニフェストを検証するStep 1: Validate your manifest

winget tool では、マニフェストが正しく作成されたことを確認するための validate コマンドが提供されています。The winget tool provides the validate command to confirm that you have created your manifest correctly. マニフェストを検証するには、このコマンドを使用します。To validate your manifest, use this command.

winget validate \<manifest-file>

検証が失敗した場合は、エラーを使用して行番号を特定し、修正を行います。If your validation fails, use the errors to locate the line number and make a correction. マニフェストが検証されたら、それをリポジトリに送信できます。After your manifest is validated, you can submit it to the repository.

手順 2:リポジトリのクローンStep 2: Clone the repository

次に、リポジトリのフォークを作成して複製します。Next, create a fork of the repository and clone it.

  1. ブラウザーで https://github.com/microsoft/winget-pkgs にアクセスし、 [Fork] をクリックします。Go to https://github.com/microsoft/winget-pkgs in your browser and click Fork. フォークの画像picture of fork

  2. Windows コマンド プロンプトや PowerShell などのコマンド ライン環境から、次のコマンドを使用してフォークを複製します。From a command line environment such as the Windows Command Prompt or PowerShell, use the following command to clone your fork.

    git clone \<your-fork-name>
    
  3. 複数の送信を行う場合は、フォークではなくブランチを作成します。If you are making multiple submissions, make a branch instead of a fork. 現在、送信ごとに 1 つのマニフェスト ファイルのみが許可されます。We currently allow only one manifest file per submission.

    git checkout -b \<branch-name>
    

手順 3:ローカル リポジトリにマニフェストを追加するStep 3: Add your manifest to the local repository

次のフォルダー構造で、リポジトリにマニフェスト ファイルを追加する必要があります。You must add your manifest file to the repository in the following folder structure:

manifests / publisher / application / version.yamlmanifests / publisher / application / version.yaml

  • manifests フォルダーは、リポジトリ内のすべてのマニフェストのルート フォルダーです。The manifests folder is the root folder for all manifests in the repository.
  • publisher フォルダーは、ソフトウェアを発行する会社の名前です。The publisher folder is the name of the company that publishes the software. たとえば、Microsoft です。For example, Microsoft.
  • application フォルダーは、アプリケーションまたはツールの名前です。The application folder is the name of the application or tool. たとえば、VSCode です。For example, VSCode.
  • version.yaml はマニフェストのファイル名です。version.yaml is the file name of the manifest. ファイル名は、アプリケーションの現在のバージョンに設定する必要があります。The file name must be set to the current version of the application. たとえば 1.0.0.yamlです。For example, 1.0.0.yaml.

重要

マニフェスト内の Id 値は、マニフェスト フォルダー パス内の発行元とアプリケーションの名前と一致する必要があります。マニフェストの version 値は、ファイル名のバージョンと一致している必要があります。The Id value in the manifest must match the publisher and application names in the manifest folder path, and the version value in the manifest must match the version in the file name. 詳しくは、「パッケージ マニフェストを作成する」をご覧ください。For more information, see Create your package manifest.

手順 4:リモート リポジトリにマニフェストを送信するStep 4: Submit your manifest to the remote repository

これで、リモート リポジトリに新しいマニフェストをプッシュする準備ができました。You're now ready to push your new manifest to the remote repository.

  1. add コマンドを使用して、送信を準備します。Use the add command to prepare for submission.

    git add manifests\Contoso\ContosoApp\1.0.0.yaml
    
  2. commit コマンドを使用して変更をコミットし、送信に関する情報を指定します。Use the commit command to commit the change and provide information on the submission.

    git commit -m "Submitting  ContosoApp version 1.0.0.yaml"
    
  3. push コマンドを使用して、リモート リポジトリに変更をプッシュします。Use the push command to push the changes to the remote repository.

    git push
    

手順 5:プル要求の作成Step 5: Create a pull request

変更をプッシュした後、https://github.com/microsoft/winget-pkgs に戻り、フォークまたはブランチを master ブランチにマージするプル要求を作成します。After you push your changes, return to https://github.com/microsoft/winget-pkgs and create a pull request to merge your fork or branch to the master branch.

[プル要求] タブの画像

検証プロセスValidation process

プル要求を作成すると、マニフェストを検証し、プル要求を処理するオートメーション プロセスが開始されます。When you create a pull request, this will start an automation process that validates the manifest and processes your pull request. プル要求にラベルを追加して、進行状況を追跡できるようにします。We add labels to your pull request so you can track progress.

送信の必要事項Submission expectations

Windows パッケージ マネージャー リポジトリへのすべてのアプリケーション送信は、正しい設定になっている必要があります。All application submissions to the Windows Package Manager repository should be well-behaved. 次に、送信に関するいくつかの必要事項を示します。Here are some expectations for submissions:

  • マニフェストは、スキーマの要件に準拠していること。The manifest complies with the schema requirements.
  • マニフェスト内のすべての URL は、安全な Web サイトにつながること。All URLs in the manifest lead to safe websites.
  • インストーラーとアプリケーションは、ウイルスに感染していないこと。The installer and application are virus free. パッケージは、誤ってマルウェアとして識別される場合があります。The package may be identified as malware by mistake. 偽陽性であると思われる場合は、インストーラーをこちらから Defender チームに送信して分析を受けることができます。If you believe it's a false positive you can submit the installer to the defender team for analysis from here.
  • 管理者と非管理者の両方に対して、アプリケーションが正しくインストールされ、アンインストールされること。The application installs and uninstalls correctly for both administrators and non-administrators.
  • インストーラーは非対話型モードをサポートしていること。The installer supports non-interactive modes.
  • すべてのマニフェスト エントリは正確で、誤解を招くことがないこと。All manifest entries are accurate and not misleading.
  • インストーラーは、発行元の Web サイトから直接取得されること。The installer comes directly from the publisher's website.

プル要求のラベルPull request labels

検証中に、進行状況を伝えるための一連のラベルがプル要求に適用されます。During validation, we apply a series of labels to our pull request to communicate progress.

  • Needs: author feedback (必要: 作成者フィードバック) :送信でエラーが発生しています。Needs: author feedback: There is a failure with the submission. プル要求はユーザー再割り当てされます。We will reassign pull request back to you. 10 日以内に問題に対処しない場合、プル要求は終了されます。If you do not address the issue within 10 days, we will close the pull request.
  • Manifest-Validation-Error:送信されたマニフェストに構文エラーが含まれています。Manifest-Validation-Error: The submitted manifest contains a syntax error.
  • URL-Validation-Error:送信内の 1 つ以上の URL が SmartScreen 検証に失敗しました。URL-Validation-Error: One or more URLs in the submission failed SmartScreen validation.
  • Binary-Validation-Error:送信されたアプリケーション インストーラがウイルス スキャン テストに失敗したか、またはハッシュが一致していません。Binary-Validation-Error: The submitted application installer failed virus scan testing or there is a hash mismatch.
  • Pull-Request-Error:プル要求に問題があります。Pull-Request-Error: There is a problem with the pull request. たとえば、フォルダー構造に必要な形式がありません。For example, the folder structure does not have the required format.
  • Validation-Error:送信されたアプリケーションは、一般的な検証テストに失敗しました。Validation-Error: The submitted application failed a general validation test.
  • Validation-Installation-Error:送信されたアプリケーションは、インストール テストに失敗しました。Validation-Installation-Error: The submitted application failed install testing.
  • Validation-Uninstall-Error:送信されたアプリケーションは、アンインストール テストに失敗しました。Validation-Uninstall-Error: The submitted application failed uninstall testing.
  • Validation-Virus-Scan-Error:送信されたアプリケーションは、ウイルス スキャンのテストに失敗しました。Validation-Virus-Scan-Error: The submitted application failed virus scan testing.
  • Azure-Pipeline-Passed:マニフェストは検証の最初の部分を完了しました。Azure-Pipeline-Passed: The manifest has completed the first portion of validation. この手順の後に、プル要求が Microsoft のテスト チームに割り当てられ、最終的な検証が実行されます。After this step, your pull request is assigned to our test team for final validation.
  • Validation-Completed:検証は完了し、プル要求はマージされます。Validation-Completed: The validation is complete and your pull request will be merged.