xref: /honee/CONTRIBUTING.md (revision 1f30383470974c3b5d55003d1e9414bea7ed1927)
1*1f303834SJeremy L Thompson# How to Contribute
2*1f303834SJeremy L Thompson
3*1f303834SJeremy L ThompsonContributions to HONEE are encouraged.
4*1f303834SJeremy L Thompson<!---
5*1f303834SJeremy L ThompsonPlease use a pull request to the appropriate branch ('release' for backward-compatible bug fixes for the last stable release, main' for new features and everything else).
6*1f303834SJeremy L Thompson-->
7*1f303834SJeremy L ThompsonPlease make your commits well-organized and [atomic](https://en.wikipedia.org/wiki/Atomic_commit#Atomic_commit_convention), using `git rebase --interactive` as needed.
8*1f303834SJeremy L ThompsonCheck that all tests pass using `make prove` or `make junit`.
9*1f303834SJeremy L ThompsonIf adding a new feature, please add or extend a test so that your new feature is tested.
10*1f303834SJeremy L Thompson
11*1f303834SJeremy L ThompsonIn typical development, every commit should compile, be covered by the test suite, and pass all tests.
12*1f303834SJeremy L ThompsonThis improves the efficiency of reviewing and facilitates use of [`git bisect`](https://git-scm.com/docs/git-bisect).
13*1f303834SJeremy L Thompson
14*1f303834SJeremy L ThompsonOpen an issue or RFC (request for comments) pull request to discuss any significant changes before investing time.
15*1f303834SJeremy L ThompsonIt is useful to create a WIP (work in progress) pull request for any long-running development so that others can be aware of your work and help to avoid creating merge conflicts.
16*1f303834SJeremy L Thompson
17*1f303834SJeremy L ThompsonWrite commit messages for a reviewer of your pull request and for a future developer (maybe you) that bisects and finds that a bug was introduced in your commit.
18*1f303834SJeremy L ThompsonThe assumptions that are clear in your mind while committing are likely not in the mind of whomever (possibly you) needs to understand it in the future.
19*1f303834SJeremy L Thompson
20*1f303834SJeremy L ThompsonGive credit where credit is due using tags such as `Reported-by: Helpful User <helpful@example.com>` or [`Co-authored-by: Snippet Mentor <code.by@comment.com>`](https://help.github.com/en/github/committing-changes-to-your-project/creating-a-commit-with-multiple-authors#creating-co-authored-commits-on-the-command-line).
21*1f303834SJeremy L ThompsonPlease use a real name and email for your author information (`git config user.name` and `user.email`).
22*1f303834SJeremy L ThompsonIf your author information or email becomes inconsistent (look at `git shortlog -se`), please edit `.mailmap` to obtain your preferred name and email address.
23*1f303834SJeremy L Thompson
24*1f303834SJeremy L ThompsonWhen contributors make a major contribution and support it, their names are included in the automatically generated user-manual documentation.
25*1f303834SJeremy L Thompson
26*1f303834SJeremy L ThompsonPlease avoid "merging from upstream" (like merging 'main' into your feature branch) unless there is a specific reason to do so, in which case you should explain why in the merge commit.
27*1f303834SJeremy L Thompson[Rationale](https://lwn.net/Articles/328436/) from [Junio](https://gitster.livejournal.com/42247.html) and [Linus](http://yarchive.net/comp/linux/git_merges_from_upstream.html).
28*1f303834SJeremy L Thompson
29*1f303834SJeremy L ThompsonYou can use `make format` to help conform to coding conventions of the project, but try to avoid mixing whitespace or formatting changes with content changes (see atomicity above).
30*1f303834SJeremy L Thompson
31*1f303834SJeremy L ThompsonBy submitting a pull request, you are affirming the following.
32*1f303834SJeremy L Thompson
33*1f303834SJeremy L Thompson## [Developer's Certificate of Origin 1.1](https://developercertificate.org/)
34*1f303834SJeremy L Thompson
35*1f303834SJeremy L ThompsonBy making a contribution to this project, I certify that:
36*1f303834SJeremy L Thompson
37*1f303834SJeremy L Thompson(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
38*1f303834SJeremy L Thompson
39*1f303834SJeremy L Thompson(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
40*1f303834SJeremy L Thompson
41*1f303834SJeremy L Thompson(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.
42*1f303834SJeremy L Thompson
43*1f303834SJeremy L Thompson(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.
44*1f303834SJeremy L Thompson
45*1f303834SJeremy L Thompson## Authorship
46*1f303834SJeremy L Thompson
47*1f303834SJeremy L ThompsonRatel contains components authored by many individuals.
48*1f303834SJeremy L ThompsonIt is important that contributors receive appropriate recognition through informal and academically-recognized credit systems such as publications.
49*1f303834SJeremy L ThompsonStatus as a named author on the users manual and Ratel software publications will be granted for those who
50*1f303834SJeremy L Thompson
51*1f303834SJeremy L Thompson1. make significant contributions to Ratel (in implementation, documentation, conceptualization, review, etc.) and
52*1f303834SJeremy L Thompson2. maintain and support those contributions.
53*1f303834SJeremy L Thompson
54*1f303834SJeremy L ThompsonMaintainers will do their best to notice when contributions reach this level and add your name to `AUTHORS`, but please email or create an issue if you believe your contributions have met these criteria and haven't yet been acknowledged.
55*1f303834SJeremy L Thompson
56*1f303834SJeremy L ThompsonAuthors of publications about Ratel as a whole, including DOI-bearing archives, shall offer co-authorship to all individuals listed in the `AUTHORS` file.
57*1f303834SJeremy L ThompsonAuthors of publications claiming specific Ratel contributions shall evaluate those listed in `AUTHORS` and offer co-authorship to those who made significant intellectual contributions to the work.
58*1f303834SJeremy L Thompson
59*1f303834SJeremy L ThompsonNote that there is no co-authorship expectation for those publishing about use of Ratel (versus creation of new features in Ratel), but see the [citing section](https://ratel.micromorph.org/doc/intro/#how-to-cite) and use your judgment regarding significance of support/advice you may have received in developing your use case and interpreting results.
60