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 either be MSIX, MSI or .exe application installers. Standalone or portable executables, compressed .zip files, and fonts are not currently supported.
The Windows Package Manager is an open source client designed for command-line usage.
To submit a package to this repository, you should follow these steps:
- Follow the Contributing guidelines below.
- Author a Manifest.
- Test your manifest.
- Submit your pull request (PR).
- 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.
You may either use the Windows Package Manager Manifest Creator, the YAMLCreate PowerShell script, the Windows Package Manager YAML Generator, or you can craft a manifest manually following our authoring guidelines.
Note: Only one manifest may be submitted per PR.
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.
Note: We recommend running the script in the location where you want to produce the manifest file. For example:
manifests\<p>\<publisher>\<package>\
. After successful completion, it will produce the YAML files.
If you prefer to use a GUI to generate YAML files, you can use the Windows Package Manager YAML Generator. It is available as an app in the Microsoft Store and the code is also available on GitHub.
Now that you have authored your manifest, you should make sure it works as expected.
- Verify the syntax by executing the following command:
winget validate <path-to-manifest>
- 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.
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>
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>.yaml
The PR request will go through a validation process. During the process, the core team or the Microsoft bot (BOT) will use labels to help. In the event of a failure, the BOT will suggest where the problem is with the submission and assign the PR back to you.
If the PR has been assigned to you, a timer is triggered. You will have 7 days to resolve the issue, or the PR will be closed automatically by the BOT.
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.
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). Simply 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. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments. More information is available in our Contributing document.
For the avoidance of 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.