diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 207719052d..1f486ce7f3 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -15,7 +15,7 @@ Resolves: *(direct link to the issue)* an asterisk (*) after the entry indicates required --> -- [ ] The code in this pull request is licensed under "GPLv2 or any later version"\* +- [ ] I have signed off my commits using `-s` or `Signed-off-by`\* (See: [Contributing § DCO](https://github.com/tenacityteam/tenacity/blob/master/CONTRIBUTING.md#developer-certificate-of-origin)) - [ ] I made sure the code compiles on my machine - [ ] I made sure there are no unnecessary changes in the code\* - [ ] I made sure the title of the PR reflects the core meaning of the issue you are solving\* diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000000..aba9b4cd92 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,114 @@ +# Contributing to Tenacity + +Thanks for showing your interest to contribute, your contribution is very +valuable to us as people like **you** help us build Tenacity. Some guidelines +have been put in place in an effort to keep the codebase clean. + +## Reporting bugs and feature requests + +A great place to ask questions about using Tenacity, report bugs and discuss +feature requests is the [tenacity-discuss mailing list](https://lists.sr.ht/~tenacity/tenacity-discuss). +Please search through the archives, as your question may have been asked before. +We're also available on IRC at #tenacity on Libera.Chat [(web)](https://web.libera.chat/gamja/?channels=tenacity) +if you'd like a more real-time discussion. + +The [Issues tab](https://github.com/tenacityteam/tenacity/issues) +on GitHub is restricted to **bugs and feature requests** +only. Please only submit a bug report if you are sure it is valid. + +## Contributing + +Contributing code to Tenacity is done either via sourcehut or GitHub. Tenacity +requires you to Sign-off your commits, which indicates you agree to the +[Developer Certificate of Origin](#developer-certificate-of-origin). Details below. + +_Note: you do not need to open a GitHub issue for every matching contribution, +only for those which need further looking into, and only when asked to._ + +When contributing, please adhere to the following guidelines: + +1. Follow proper code formatting guidelines e.g. If the file uses spaces, do not + change them to tabs. +2. Do not change any variable names unless necessary. +3. Make concise and accurate commit messages. A commit message should be + limited to 50 characters and its description limited to 72 characters + per line, and the message should complete this sentence: + + > This commit will `Add support for protocol v3` + + If you need to add any additional context, do so in the commit description. + +### Contributing through sourcehut + +SourceHut operates on an email-driven workflow, and uses [`git send-email`](https://git-send-email.io) for patch submission. Please send your +patches to +[`~tenacity/tenacity-dev@lists.sr.ht`](mailto:~tenacity/tenacity-dev@lists.sr.ht). +When revising a patch, please use `git commit --amend` and add the `-v2` (increment every revision) +flag. + +### Contributing through GitHub + +To contribute code using GitHub, first +[fork this repository](https://github.com/tenacityteam/tenacity) +and make your changes. Please use `git commit --amend` and +`git push -f` for minor changes (only **your** commits). +See [git-rebase.io](https://git-rebase.io) for more details. + +## Developer Certificate of Origin + +Tenacity is an open source project licensed under the GNU General Public +license, version 2 only (see [`LICENSE`](LICENSE)). + +We respect intellectual property rights, and we'd like to make sure that all +contributions are properly attributed. As such, we use the simple and clear +Developer Certificate of Origin (DCO). + +The DCO is a declaration attached to every contribution made by every +contributor. All the developer has to do is include a `Signed-off-by` statement, +thereby agreeing to the DCO, provided below or on +[developercertificate.org](https://developercertificate.org): + +``` +Developer Certificate of Origin Version 1.1 + +Copyright (C) 2004, 2006 The Linux Foundation and its contributors. 1 +Letterman Drive Suite D4700 San Francisco, CA, 94129 + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + + +Developer's Certificate of Origin 1.1 + +By making a contribution to this project, I certify that: + +(a) The contribution was created in whole or in part by me and I have the right +to submit it under the open source license indicated in the file; or + +(b) The contribution is based upon previous work that, to the best of my +knowledge, is covered under an appropriate open source license and I have the +right under that license to submit that work with modifications, whether +created in whole or in part by me, under the same open source license (unless I +am permitted to submit under a different license), as indicated in the file; or + +(c) The contribution was provided directly to me by some other person who +certified (a), (b) or (c) and I have not modified it. + +(d) I understand and agree that this project and the contribution are public +and that a record of the contribution (including all personal information I +submit with it, including my sign-off) is maintained indefinitely and may be +redistributed consistent with this project or the open source license(s) +involved. +``` + +Each commit must include a DCO in its description, which looks like this: + +``` +Signed-off-by: Jane Doe +``` + +You may type this line manually or, if using the command line, simply append +`-s` to your commit. + +We ask that all contributors use their real email address, which can be replied +to.