/winget-pkgs

The Microsoft community Windows Package Manager manifest repository

Primary LanguagePowerShellMIT LicenseMIT

Windows Package Manager Community Repository

Gitter Validation Pipeline Badge Publish Pipeline Badge Github Status

This repository contains the manifest files for the Windows Package Manager default source. You are highly encouraged to submit manifests for your favorite application.

Note: At this time installers must be MSIX, MSI, APPX, or .exe application installers. Script-based installers and fonts are not currently supported.

The Windows Package Manager is an open source client designed for command-line usage. If you are interested in exploring third-party repositories offering private winget package hosting, see third-party repositories.

Submitting a Package

To submit a package to this repository, you should follow these steps:

  1. Follow the Contributing guidelines below.
  2. Author a Manifest.
  3. Test your manifest.
  4. Submit your pull request (PR).
  5. Respond to any feedback in your PR.

Note: Please check the package's manifest you intend to submit does not already exist in the repository, and there are no open PRs for it in order to avoid duplicates.

Authoring a Manifest

You may either use the Windows Package Manager Manifest Creator, the YamlCreate PowerShell script, or you can craft a manifest manually following our authoring guidelines.

Note: Only one manifest may be submitted per PR.

Using the YamlCreate.ps1

To help author manifest files, we have provided a YamlCreate.ps1 PowerShell script located in the Tools folder. The script will prompt you for the URL to the installer, then will prompt you to fill in metadata. Additional information regarding the YamlCreate script can be found in the documentation for the script.

You can use the script by cloning the repository on your PC and running the script directly from the Tools folder.

Test your manifest

Now that you have authored your manifest, you should make sure it works as expected.

Note: You will need to run winget settings --enable LocalManifestFiles in an administrative shell before working with local manifests.

Locally

  1. Verify the syntax by executing the following command:
winget validate <path-to-manifest>
  1. Test the install by executing the following command:
winget install -m <path-to-manifest>

For more details, see "Submit packages to Windows Package Manager" at Microsoft Docs.

In Windows Sandbox

You can use the Sandbox Test PowerShell script for testing a manifest installation in Windows Sandbox. The manifest will be also validated.

Just provide the path to manifest as parameter:

.\Tools\SandboxTest.ps1 <path-to-manifest>

Submit your PR

With the manifest verified, you will need to submit a PR. Your manifest should be located in the folder path matching

manifests\<first lower case letter of publisher>\<publisher>\<package>\<version>\

Validation Process

The PR request will go through a validation process. The core team or the Microsoft bot (BOT) will use labels to help during the process. In the event of a failure, the BOT will suggest the problem with the submission and assign the PR back to you.

Respond to PR feedback

If the PR has been assigned to you, a timer is triggered. You will have 7 days to resolve the issue, or the BOT will automatically close the PR.

Submissions to the repository are reviewed by Windows Package Manager administrators and/or community moderators. We've provided a Public Service Announcement to help identify these individuals.

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Follow the instructions provided by the bot. You will only need to do this once across all Microsoft repositories using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. See the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments. More information is available in our Contributing document.

To avoid doubt, you may not make any Submissions linking to third party materials if such Submission is prohibited by the applicable third party and/or otherwise violates such third party's rights.