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