We welcome your input and contributions to all aspects of WinUI, including bug reports, doc updates, feature proposals, and API spec discussions.
This document contains general guidance. More specific guidance is included in the documents linked below.
Note that all community interactions must abide by the Code of Conduct.
Contributions from the community in the form of feature requests and bugs are handled according to our contribution handling guidelines.
We mark the most straightforward issues with labels. These issues are the place to start if you are interested in contributing but new to the codebase.
Another great way to help is by voting and commenting on feature proposals:
Please follow the New Feature or API Process before adding, removing, or changing public APIs or UI.
All new public APIs, new UI, or breaking changes to existing features must go through that process before submitting code changes.
You don't need to follow that process for bug fixes or other small changes.
The WinUI team accepts code changes that improve WinUI or fix bugs, as long as they follow the processes outlined below and broadly align with our roadmap.
While we strive to accept all community contributions that meet the guidelines outlined here, please note that we may not merge changes that have narrowly-defined benefits due to compatibility risks and maintenance costs. We may also revert changes if they are found to be breaking.
For details see:
- Setup and build environment
- Source code structure
- Contribution workflow
- Coding style and conventions
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.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., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
The following rules must be followed for PRs that include files from another project:
- The license of the file is permissive.
- The license of the file is left intact.
- The contribution is correctly attributed in the 3rd party notices file in the repository, as needed.
You can also read and contribute to the WinUI documentation here:
https://docs.microsoft.com/uwp/toolkits/winui
You can find usage examples of the controls available in WinUI in the Xaml Controls Gallery app:
https://github.com/Microsoft/Xaml-Controls-Gallery/
which can also be installed from the Windows Store:
https://www.microsoft.com/p/xaml-controls-gallery/9msvh128x2zt
Before new features are added to WinUI, we always perform a thorough API review and spec discussion. This can range from a single new API to an entire new control featuring dozens of new APIs. Joining such a spec discussion is a great opportunity for developers to help ensuring that new WinUI APIs will look and feel natural. In addition, spec discussions are the follow-up to feature proposals and will go into much finer details than the initial proposal. As such, taking part in these discussions gives developers the chance to be involved in the complete development process of new WinUI features - from their initial high-level inception right down to specific implementation/behavior details. These discussions take place in the WInUI repository, i.e. this repository.