-
Notifications
You must be signed in to change notification settings - Fork 771
Update CONTRIBUTING.md and Remove Duplicate Docs #10715
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from 4 commits
88bab8c
f266f6f
ddd66a2
818c913
b2161e6
370666d
8531731
20a1263
1e21b46
c343050
84afc03
d3e6268
b6eb63a
9f26daf
1baf871
db9d0ef
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -1,77 +1,175 @@ | ||||||||||||||||||
# Contributing to the Windows UI Library | ||||||||||||||||||
Welcome to the Windows UI Library (WinUI) repository. The WinUI repo is intended as a place for the WinUI team to gather community feedback, discuss issues with the community, and provide insight into bug fixes that the team is working on before updates are released. We welcome your input and contributions to all aspects of WinUI, including bug reports, doc updates, feature proposals, and API spec discussions. | ||||||||||||||||||
|
||||||||||||||||||
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 and within the repository’s [Wiki](https://github.com/microsoft/microsoft-ui-xaml/wiki) pages. | ||||||||||||||||||
|
||||||||||||||||||
This document contains general guidance. More specific guidance is included in the documents linked below. | ||||||||||||||||||
Note this repository is not ready for open source collaboration at this time; this work is currently in progress. You can track the WinUI team’s progress towards open source collaboration in the [Phased Rollout to Open Source Collaboration](https://github.com/microsoft/microsoft-ui-xaml/discussions/10700) discussion. | ||||||||||||||||||
|
||||||||||||||||||
Note that all community interactions must abide by the [Code of Conduct](CODE_OF_CONDUCT.md). | ||||||||||||||||||
Note that all community interactions must abide by the [Code of Conduct](CODE_OF_CONDUCT.md). We strive to be respectful & empathetic toward each other, and we extend this to our community as well. Our conduct guidelines help to ensure that discourse and feedback follows this same pattern of respect & empathy, and they also make it clear that non-constructive or hostile feedback is unacceptable. By following these guidelines, we can all enjoy the mutual respect that each WinUI team member, and each community member, deserve. | ||||||||||||||||||
|
||||||||||||||||||
## How we work with contributions | ||||||||||||||||||
## Documentation and Samples | ||||||||||||||||||
The [WinUI](https://aka.ms/winui3) documentation is a great resource for learning more about WinUI development. Within these docs, you can find information on how to create new WinUI applications, the full set of WinUI APIs and controls, and more. | ||||||||||||||||||
|
||||||||||||||||||
For reporting security issues please see the [Security Policy](docs/SECURITY.md). | ||||||||||||||||||
You’re welcome to propose changes to our documentation through the same link. | ||||||||||||||||||
|
||||||||||||||||||
Contributions from the community in the form of feature requests and bugs are handled according to our [contribution handling](docs/contribution_handling.md) guidelines. | ||||||||||||||||||
You can find usage examples of the controls available in WinUI in the [WinUI 3 Gallery app](https://apps.microsoft.com/detail/9p3jfpwwdzrc). The source code for WinUI3 Gallery is available on GitHub at [microsoft/WinUI-Gallery]( https://github.com/Microsoft/WinUI-Gallery/). | ||||||||||||||||||
|
||||||||||||||||||
## New contributors | ||||||||||||||||||
## Filing New Issues | ||||||||||||||||||
If you have a general question on how to use WinUI and are not sure it’s a bug, ask in the [Q&A](https://github.com/microsoft/microsoft-ui-xaml/discussions/categories/q-a) discussion forum. | ||||||||||||||||||
|
||||||||||||||||||
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. | ||||||||||||||||||
If you have an idea or feature request, post in the [Ideas](https://github.com/microsoft/microsoft-ui-xaml/discussions/categories/ideas) discussion forum. | ||||||||||||||||||
|
||||||||||||||||||
* [good first issues](https://github.com/Microsoft/microsoft-ui-xaml/labels/good%20first%20issue) | ||||||||||||||||||
* [help wanted](https://github.com/Microsoft/microsoft-ui-xaml/labels/help%20wanted) | ||||||||||||||||||
If you have an issue which you think is a bug, please follow the [Bug Report](https://github.com/microsoft/microsoft-ui-xaml/issues/new?template=bug_report.yaml) issue template and provide a stand-alone minimal repo project. | ||||||||||||||||||
|
||||||||||||||||||
Another great way to help is by voting and commenting on feature proposals: | ||||||||||||||||||
If you are reporting a security issue, please see the [Security Policy](SECURITY.md). | ||||||||||||||||||
|
||||||||||||||||||
* [feature request](https://github.com/Microsoft/microsoft-ui-xaml/labels/feature%20request) | ||||||||||||||||||
For more information on how issues are handled from the community, see our [contribution handling](docs/contribution_handling.md) guidelines. | ||||||||||||||||||
|
||||||||||||||||||
## Code contribution guidelines | ||||||||||||||||||
### Proposing New Public APIs or UI | ||||||||||||||||||
Please follow the [New Feature or API Process](docs/feature_proposal_process.md) before adding, removing, or changing public APIs or UI. Note: The WinUI team will only accept feature proposals for WinUI3. | ||||||||||||||||||
|
||||||||||||||||||
### Proposing new 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. | ||||||||||||||||||
|
||||||||||||||||||
Please follow the [New Feature or API Process](docs/feature_proposal_process.md) 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. | ||||||||||||||||||
### Raising Feedback | ||||||||||||||||||
When experiencing a pain-point, it can be natural to focus on the negatives. However, telling the team what you'd like to *prevent* is less helpful and actionable than telling the team what you'd like to *achieve*. | ||||||||||||||||||
|
||||||||||||||||||
### Contribution bar | ||||||||||||||||||
Your feedback is most effective when it is a constructive call to action on the team, and is clear and detailed – especially on the "why" so that we can make sure whatever it is that we arrive at together appropriately focuses on your goal and your intended outcome from start to finish. | ||||||||||||||||||
|
||||||||||||||||||
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](docs/roadmap.md). | ||||||||||||||||||
**Examples of constructively phrased feedback:** | ||||||||||||||||||
|
||||||||||||||||||
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. | ||||||||||||||||||
Instead of: | ||||||||||||||||||
|
||||||||||||||||||
### Code contribution process | ||||||||||||||||||
- The state of the platform is disappointing. I am not going to consider WinUI until my trust has been earned. | ||||||||||||||||||
|
||||||||||||||||||
For details see: | ||||||||||||||||||
Try this: | ||||||||||||||||||
- Deprecation of past frameworks has left me burned. The following would go a long way in earning my trust because my company is trying to launch an app next year and will need it supported for at least 5 more: | ||||||||||||||||||
- OSS | ||||||||||||||||||
- High-confidence 5-year roadmap | ||||||||||||||||||
- Guaranteed support timeline | ||||||||||||||||||
|
||||||||||||||||||
* [Setup and build environment](docs/developer_guide.md#Prerequisites) | ||||||||||||||||||
* [Source code structure](docs/source_code_structure.md) | ||||||||||||||||||
* [Contribution workflow](docs/contribution_workflow.md) | ||||||||||||||||||
* [Coding style and conventions](docs/code_style_and_conventions.md) | ||||||||||||||||||
This feedback provides clear actionable items that the WinUI team can take into consideration and address. | ||||||||||||||||||
|
||||||||||||||||||
|
||||||||||||||||||
### Contributor License Agreement | ||||||||||||||||||
Here are some areas where your feedback can have a large impact: | ||||||||||||||||||
|
||||||||||||||||||
#### Features | ||||||||||||||||||
It's very helpful to specify the "why" behind your request, even if it seems obvious. Comparisons can help, but shouldn't replace explanation. | ||||||||||||||||||
- Ex: "I need `<`feature`>` so that I can achieve `<`goal`>`. Otherwise, I have to `<`alternative`>`." | ||||||||||||||||||
|
||||||||||||||||||
There are also usually great opportunities to have feature-related impact in our [spec repo](https://github.com/microsoft/microsoft-ui-xaml-specs/tree/master). Here, you can give direct feedback and help shape the new features and APIs that we're currently building. | ||||||||||||||||||
|
||||||||||||||||||
#### Future/Roadmap | ||||||||||||||||||
We strive to be transparent about our [product roadmap](https://aka.ms/winui3/feature-roadmap). Great examples of feedback to help us achieve this are: | ||||||||||||||||||
- "I'd like to know the roadmap through `<`timeframe`>`. Otherwise, I can't do `<`goal`>`. " | ||||||||||||||||||
- "The roadmap `<`certain aspect - e.g., changes too much, not detailed enough, etc.`>`prevents me from being able to do `<`goal`>`. If you would instead `<`proposed alternative`>`, that would result in `<`clear benefit`>`." | ||||||||||||||||||
|
||||||||||||||||||
#### Ecosystem | ||||||||||||||||||
It's helpful to be complete in explaining what another solution achieves for you and why it is important to you. | ||||||||||||||||||
- Ex:"I'd like WinUI 3 to work with `<`framework, language, library, technology, etc.`>`. Without this, I can't do `<`goal`>`." | ||||||||||||||||||
|
||||||||||||||||||
#### Prioritization within WinUI | ||||||||||||||||||
There is often trade-off required when adjusting priorities - please be clear in comparing what is more important vs. less important to you, and the reason why. | ||||||||||||||||||
- Ex: "I think `<`specific area or feature set`>` should be prioritized before `<`other specific area or feature set`>` so that I can achieve `<`goal`>`. Without this, I have to `<`alternative`>`. " | ||||||||||||||||||
|
||||||||||||||||||
#### Engagement | ||||||||||||||||||
Engagement includes feedback about learning materials and resources. It is always helpful to know where you prefer to be engaged and how you prefer to learn. | ||||||||||||||||||
- "I would like to hear more about `<`specific topic`>` in `<`resource`>` so that I can achieve `<`goal`>`." | ||||||||||||||||||
- "`<`Resource`>` could be more inclusive and accessible if you considered `<`alternative`>` because `<`benefit`>`. Have you considered making these changes?" | ||||||||||||||||||
|
||||||||||||||||||
Many of the resources we provide are also open source themselves! It can sometimes be more effective to leave feedback on the more specific repo. This includes: | ||||||||||||||||||
- [documentation](https://github.com/MicrosoftDocs/windows-uwp) | ||||||||||||||||||
chiaramooney marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||||||||||||||
- [website (`gh-pages` branch of this repo)](https://github.com/microsoft/microsoft-ui-xaml/tree/gh-pages) | ||||||||||||||||||
- [Xaml Controls Gallery (sample app)](https://github.com/microsoft/Xaml-Controls-Gallery/tree/master) | ||||||||||||||||||
|
||||||||||||||||||
#### Team Process | ||||||||||||||||||
Team process includes feedback about our repo and overall communication. Suggestions for improvement and proposed alternatives are very helpful here. | ||||||||||||||||||
- Ex: "`<`specific aspect of team process - e.g., response frequency, format`>` of the repo is making it hard for me to achieve `<`goal`>`. Please consider doing `<`alternative`>` instead because that would help `<`action`>`" | ||||||||||||||||||
|
||||||||||||||||||
## Code Contribution Guidelines | ||||||||||||||||||
Note this repository is not ready for open source collaboration at this time; this work is currently in progress. You can track the WinUI team’s progress towards open source collaboration in the [Phased Rollout to Open Source Collaboration](https://github.com/microsoft/microsoft-ui-xaml/discussions/10700) discussion. | ||||||||||||||||||
|
||||||||||||||||||
WinUI will be taking a phased approach to opening up the repo: | ||||||||||||||||||
**Phase 1: Increased Mirror Frequency** | ||||||||||||||||||
chiaramooney marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||||||||||||||
After the WASDK 1.8 release (end of August), we’ll begin more frequent mirroring of internal commits to GitHub to increase transparency and show progress. | ||||||||||||||||||
**Phase 2: 3rd Party Devs Build Locally** | ||||||||||||||||||
External developers will be able to clone and build the repo locally, with documentation to guide setup and dependencies. | ||||||||||||||||||
**Phase 3: 3rd Party Devs Contribute & Run Tests** | ||||||||||||||||||
Contributors will be able to submit PRs and run tests locally. We’re working to untangle private dependencies and make test infrastructure publicly accessible. | ||||||||||||||||||
**Phase 4: GitHub as Center of Gravity** | ||||||||||||||||||
GitHub becomes the primary place for development, issue tracking, and community engagement. Internal mirrors will be phased out. | ||||||||||||||||||
|
||||||||||||||||||
### [WIP] New Contributors | ||||||||||||||||||
Contributions from the community are greatly appreciated. We mark the most straightforward issues with labels. These issues are the best place to start if you are interested in contributing but are new to the codebase. | ||||||||||||||||||
|
||||||||||||||||||
- [good first issues](https://github.com/Microsoft/microsoft-ui-xaml/labels/good first issue) | ||||||||||||||||||
chiaramooney marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||||||||||||||
- [help wanted](https://github.com/orgs/microsoft/projects/1868/views/12) | ||||||||||||||||||
|
||||||||||||||||||
Another great way to help is by up-voting and commenting on feature proposals: | ||||||||||||||||||
- [feature request](https://github.com/Microsoft/microsoft-ui-xaml/labels/feature request) | ||||||||||||||||||
|
||||||||||||||||||
### [WIP] Code Contribution Process | ||||||||||||||||||
We use and recommend the following workflow: | ||||||||||||||||||
1. Create an issue for your work. | ||||||||||||||||||
- You can skip this step for trivial changes or if there is an existing issue for the bug/feature. | ||||||||||||||||||
- If your change adds or changes public APIs or UI, first follow the [New Feature or API Process](docs/feature_proposal_process.md). | ||||||||||||||||||
- Clearly state that you are going to take on implementing it, if that's the case. You can request that the issue be assigned to you. Note: The issue filer and the implementer don't have to be the same person. | ||||||||||||||||||
|
1. Create an issue for your work. | |
- You can skip this step for trivial changes or if there is an existing issue for the bug/feature. | |
- If your change adds or changes public APIs or UI, first follow the [New Feature or API Process](docs/feature_proposal_process.md). | |
- Clearly state that you are going to take on implementing it, if that's the case. You can request that the issue be assigned to you. Note: The issue filer and the implementer don't have to be the same person. | |
1. Have an issue tracking what you want to fix. | |
- If one doesn't already exist, open an issue. But before investing time on a contribution make sure the issue has been triaged and your fix has a chance of being merged. | |
- If your change adds or changes public APIs or UI, first follow the [New Feature or API Process](docs/feature_proposal_process.md). | |
- Comment on the issue to indicate your intent to work on it. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, there's a lot of old guidance scattered everywhere, so there's a few different steps in flight to try and get this up-to-date. Part of it too is whether we document how things work now, or more how we want things to work - and then move towards aligning to that as the OSS plan moves forward.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These steps were taken from the original https://github.com/microsoft/microsoft-ui-xaml/blob/main/docs/contribution_workflow.md. As of right now, there isn't a steady cadence of issues being triaged and the repo isn't ready for code contributions, so all of this guidance is speculative.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would delete the entire section and add something later during Phase 3.
Uh oh!
There was an error while loading. Please reload this page.