The WPF Behaviors team maintains guidelines for contributing to the WPF Behaviors repos.
Project maintainers will merge changes that improve the product significantly and broadly.
Maintainers will not merge changes that have narrowly-defined benefits, due to compatibility risk. The WPF Behaviors codebase is used by several Microsoft products and other companies that are building products on top of WPF Behaviors. We may revert changes if they are found to be breaking.
Contributions must also satisfy the other published guidelines defined in this document.
Please do:
- DO follow our coding style enforced by the .editorconfig
- DO give priority to the current style of the project or file you're changing even if it diverges from the general guidelines.
- DO include tests when adding new features. When fixing bugs, start with adding a test that highlights how the current behavior is broken.
- DO keep the discussions focused. When a new or related topic comes up it's often better to create new issue than to side track the discussion.
- DO blog and tweet (or whatever) about your contributions, frequently!
Please do not:
- DON'T make PRs for style changes.
- DON'T surprise us with big pull requests. Instead, file an issue and start a discussion so we can agree on a direction before you invest a large amount of time.
- DON'T commit code that you didn't write. If you find code that you think is a good fit to add to WPF Behaviors, file an issue and start a discussion before proceeding.
- DON'T submit PRs that alter licensing related files or headers. If you believe there's a problem with them, file an issue and we'll be happy to discuss it.
- DON'T add API additions without filing an issue and discussing with us first.
Please format commit messages as follows (based on A Note About Git Commit Messages):
Summarize change in 50 characters or less
Provide more detail after the first line. Leave one blank line below the
summary and wrap all lines at 72 characters or less.
If the change fixes an issue, leave another blank line after the final
paragraph and indicate which issue is fixed in the specific format
below.
Fix #42
Also do your best to factor commits appropriately, not too large with unrelated things in the same commit, and not too small with the same small change applied N times in N different commits.
You must sign a Contribution License Agreement (CLA) before your PR will be merged. This is a one-time requirement for the WPF behavior project. You can read more about Contribution License Agreements (CLA) on Wikipedia.
The agreement: https://cla.opensource.microsoft.com/Microsoft/XamlBehaviorsWpf
You don't have to do this up-front. You can simply clone, fork, and submit your pull-request as usual. When your pull-request is created, it is classified by a CLA bot. If the change is trivial (for example, you just fixed a typo), then the PR is labelled with cla-not-required
. Otherwise it's classified as cla-required
. Once you signed a CLA, the current and all future pull-requests will be labelled as cla-signed
.