xref: /libCEED/CONTRIBUTING.md (revision 86a4271f02baafab377de162285a9b890a25166a)
1# libCEED: How to Contribute
2
3Contributions to libCEED are encouraged.
4<!---
5Please use a pull request to the appropriate branch ('maint' for
6backward-compatible bug fixes for the last stable release, 'master' for
7new features and everything else).
8-->
9Please make your commits well-organized and
10[atomic](https://en.wikipedia.org/wiki/Atomic_commit#Atomic_commit_convention),
11using `git rebase --interactive` as needed.  Check that tests
12(including "examples") pass using `make prove-all`.  If adding a new
13feature, please add or extend a test so that your new feature is
14tested.
15
16In typical development, every commit should compile, be covered by the
17test suite, and pass all tests.  This improves the efficiency of
18reviewing and facilitates use of
19[`git bisect`](https://git-scm.com/docs/git-bisect).
20
21Open an issue or RFC (request for comments) pull request to discuss
22any significant changes before investing time.  It is useful to create
23a WIP (work in progress) pull request for any long-running development
24so that others can be aware of your work and help to avoid creating
25merge conflicts.
26
27Write commit messages for a reviewer of your pull request and for a
28future developer (maybe you) that bisects and finds that a bug was
29introduced in your commit.  The assumptions that are clear in your
30mind while committing are likely not in the mind of whomever (possibly
31you) needs to understand it in the future.
32
33Give credit where credit is due using tags such as `Reported-by:
34Helpful User <helpful@example.com>`.  Please use a real name and email
35for your author information (`git config user.name` and `user.email`).
36
37Please avoid "merging from upstream" (like merging 'master' into your
38feature branch) unless there is a specific reason to do so, in which
39case you should explain why in the merge commit.
40[Rationale](https://lwn.net/Articles/328436/) from
41[Junio](https://gitster.livejournal.com/42247.html) and
42[Linus](http://yarchive.net/comp/linux/git_merges_from_upstream.html).
43
44You can use `make style` to help conform to coding conventions of the
45project, but try to avoid mixing whitespace or formatting changes with
46content changes (see atomicity above).
47
48By submitting a pull request, you are affirming the following.
49
50## [Developer's Certificate of Origin 1.1](https://developercertificate.org/).
51
52By making a contribution to this project, I certify that:
53
54(a) The contribution was created in whole or in part by me and I
55    have the right to submit it under the open source license
56    indicated in the file; or
57
58(b) The contribution is based upon previous work that, to the best
59    of my knowledge, is covered under an appropriate open source
60    license and I have the right under that license to submit that
61    work with modifications, whether created in whole or in part
62    by me, under the same open source license (unless I am
63    permitted to submit under a different license), as indicated
64    in the file; or
65
66(c) The contribution was provided directly to me by some other
67    person who certified (a), (b) or (c) and I have not modified
68    it.
69
70(d) I understand and agree that this project and the contribution
71    are public and that a record of the contribution (including all
72    personal information I submit with it, including my sign-off) is
73    maintained indefinitely and may be redistributed consistent with
74    this project or the open source license(s) involved.
75
76
77