Documentation/acceptance_criteria.md
Thank you for contributing to WPF for .NET Core! We ask that before you start work on a feature that you would like to contribute, please file an issue describing your proposed change: We will be happy to work with you to figure out the best approach, provide guidance and mentorship throughout feature development, and help avoid any wasted or duplicate effort.
👉 Remember! Your contributions may be incorporated into future versions of WPF! Because of this, all pull requests will be subject to the same level of scrutiny for quality, coding standards, performance, globalization, accessibility, and compatibility as those of our internal contributors.
If any guidance is required, please read the contribution guidelines and/or submit an issue requesting clarification.
Review the pre-GA acceptance table and open a new issue.
The issue will be triaged by someone from the WPF team.
If the issue meets the pre-GA acceptance criteria, the contributor will be assigned a WPF developer to help with the submission process. The issue will be assigned as a work item to the WPF developer.
The issue will be discussed with community members and WPF developers to understand the problem and review possible solutions.
When a solution has been agreed upon, implement and validate the change locally.
Please follow the testing requirements Developer Guide.
Verify your change works. Create and test the updated feature area locally with a WPF test application compiled against a version of the WPF Framework that contains your changes. See the Developer Guide for instructions on testing against local builds.
When the code is completed and has been verified locally, the contributor should submit a pull request that references the associated issue. Please complete the Contributor License Agreement if required.
GitHub checks will run against each new commit
GitHub Checks
When the PR has been submitted and all GitHub checks pass (no build breaks or other issues) community members and WPF developers will review the code.
Additional internal testing may be performed by WPF developers if the change is determined to be high risk.
Community members and WPF developers need to review the change and sign-off on the pull request before the PR can be merged.
After the PR has been signed off, a WPF developer will manually squash and merge the PR.
The internal developer regression test loop will be run against a build that includes the merged changes from the PR.
If a test fails, the squash-merge commit will be undone, and the WPF developer assigned to the issue will work with the submitter to root-cause and fix the regression. A new PR will need to be created by the submitter with the fixed code.
If the internal DRT test loop succeeds, the internal feature test loop will run. If this fails, the assigned WPF developer will work with the submitter to fix the regression and to submit a new PR with fixed code.
Finally, pre-milestone release, a full internal test pass is run. This test pass contains tens of thousands of tests across a large number of operating systems and machine configurations. If everything succeeds, the change (along with any others) will remain in master to be included in the next milestone release.
The repo is 'snapped' to a milestone release containing the PR.