diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,48 @@ +# Contribution Guidelines for Github + +## General Contributions to FreeBSD + +Please read the guidelines in [contributors +article](https://docs.freebsd.org/en/articles/contributing/) for all the ways +you can contribute to the project. it also contains information about how the +project is organized, how to build different parts of the project, etc. The +[developer's handbook](https://docs.freebsd.org/en/books/developers-handbook/) +is another useful resource. + +## Github Pull Requests + +At the present time, github is one of many publish-only repositories that the +FreeBSD project uses to increase collaberation and contributions. Some limited +pull requests are accepted here. It is intended for those changes that need +little developer time; are generally small; and do not require only limited +changes. It is not for problem reports; works in progress; changes that are +controversial and need discussion; or incomplete work. + +A pull request will be considered if: + +* It is ready or nearly ready to be committed. A committer should be able to land this patch with less than 10 minutes of additional work. +* It passes all the GitHub CI jobs. +* You can respond to feedback quickly. +* It touches fewer than about 10 files and the changes are less than about 200 lines. Changes larger than this may be OK, or you may be asked to submit multiple pull requests of a more manageable size. +* Each logical change is a separate commit within the pull request. Commit messages for each change should follow extref:{committers-guide}#commit-log-message[commit log guide]. +* All commits have your name and valid email address as you'd like to see them in the FreeBSD repository as the author. Fake github.com addresses cannot be used. +* The scope of the pull request should not change during review. If the review suggests changes that expand the scope, please create an independent pull request. +* Fixup commits should be squashed with the commit they are fixing. Each commit in your branch should be suitable for FreeBSD's repository. +* Commits should include one or more `Signed-off-by:` lines with full name and email address certifying https://developercertificate.org/[Developer Certificate of Origin]. +* The submissions follow FreeBSD's style guide. See [style(9)](https://man.freebsd.org/cgi/man.cgi?query=style&sektion=9) for details. +* Submissions do not introduce trailing white space. + +When updating pull request, please rebase with a forced push rather than a merge +commit. More complex changes may be submitted as pull requests, but they may be +closed if they are too large, too unwieldy, become inactive, need further +discussion in the community, or need extensive revision. Please avoid creating +large, wide-ranging cleanup patches: they are too large and lack the focus +needed for a good review. Misdirected patches may be redirected to a more +appropriate forum for the patch to be resolved. + +The whole idea for pull requests on github is to facilitate inclusion in the +project, so the guidelines are streamlined for quick decisions about each pull +requests. Unless explicitly stated, rejection here as "not ready" or "too large" +does not mean the project is uninterested in the work, it just means the +submission does not meet the limitations in these guidelines. +