1c704cfffSjeremylt# How to Contribute 274e0540eSJed Brown 3*99276e83SJed BrownContributions to libCEED are encouraged. 474e0540eSJed Brown 574e0540eSJed BrownPlease use a pull request to the appropriate branch ('maint' for 674e0540eSJed Brownbackward-compatible bug fixes for the last stable release, 'master' for 774e0540eSJed Brownnew features and everything else). 874e0540eSJed Brown 9*99276e83SJed BrownPlease make your commits well-organized and 10*99276e83SJed Brown[atomic](https://en.wikipedia.org/wiki/Atomic_commit#Atomic_commit_convention), 11*99276e83SJed Brownusing `git rebase --interactive` as needed. Check that tests 12*99276e83SJed Brown(including "examples") pass using `make prove-all`. If adding a new 13*99276e83SJed Brownfeature, please add or extend a test so that your new feature is 14*99276e83SJed Browntested. 15*99276e83SJed Brown 16*99276e83SJed BrownIn typical development, every commit should compile, be covered by the 17*99276e83SJed Browntest suite, and pass all tests. This improves the efficiency of 18*99276e83SJed Brownreviewing and facilitates use of 19*99276e83SJed Brown[`git bisect`](https://git-scm.com/docs/git-bisect). 20*99276e83SJed Brown 21*99276e83SJed BrownOpen an issue or RFC (request for comments) pull request to discuss 22*99276e83SJed Brownany significant changes before investing time. It is useful to create 23*99276e83SJed Browna WIP (work in progress) pull request for any long-running development 24*99276e83SJed Brownso that others can be aware of your work and help to avoid creating 25*99276e83SJed Brownmerge conflicts. 2674e0540eSJed Brown 2774e0540eSJed BrownWrite commit messages for a reviewer of your pull request and for a 2874e0540eSJed Brownfuture developer (maybe you) that bisects and finds that a bug was 29*99276e83SJed Brownintroduced in your commit. The assumptions that are clear in your 30*99276e83SJed Brownmind while committing are likely not in the mind of whomever (possibly 31*99276e83SJed Brownyou) needs to understand it in the future. 32*99276e83SJed Brown 33*99276e83SJed BrownGive credit where credit is due using tags such as `Reported-by: 34*99276e83SJed BrownHelpful User <helpful@example.com>`. Please use a real name and email 35*99276e83SJed Brownfor your author information (`git config user.name` and `user.email`). 3674e0540eSJed Brown 3774e0540eSJed BrownPlease avoid "merging from upstream" (like merging 'master' into your 3874e0540eSJed Brownfeature branch) unless there is a specific reason to do so, in which 3974e0540eSJed Browncase you should explain why in the merge commit. 4074e0540eSJed Brown[Rationale](https://lwn.net/Articles/328436/) from 4174e0540eSJed Brown[Junio](https://gitster.livejournal.com/42247.html) and 4274e0540eSJed Brown[Linus](http://yarchive.net/comp/linux/git_merges_from_upstream.html). 4374e0540eSJed Brown 44*99276e83SJed BrownYou can use `make style` to help conform to coding conventions of the 45*99276e83SJed Brownproject, but try to avoid mixing whitespace or formatting changes with 46*99276e83SJed Browncontent changes (see atomicity above). 47*99276e83SJed Brown 4874e0540eSJed BrownBy submitting a pull request, you are affirming the following. 4974e0540eSJed Brown 5074e0540eSJed Brown## [Developer's Certificate of Origin 1.1](https://developercertificate.org/). 5174e0540eSJed Brown 5274e0540eSJed BrownBy making a contribution to this project, I certify that: 5374e0540eSJed Brown 5474e0540eSJed Brown(a) The contribution was created in whole or in part by me and I 5574e0540eSJed Brown have the right to submit it under the open source license 5674e0540eSJed Brown indicated in the file; or 5774e0540eSJed Brown 5874e0540eSJed Brown(b) The contribution is based upon previous work that, to the best 5974e0540eSJed Brown of my knowledge, is covered under an appropriate open source 6074e0540eSJed Brown license and I have the right under that license to submit that 6174e0540eSJed Brown work with modifications, whether created in whole or in part 6274e0540eSJed Brown by me, under the same open source license (unless I am 6374e0540eSJed Brown permitted to submit under a different license), as indicated 6474e0540eSJed Brown in the file; or 6574e0540eSJed Brown 6674e0540eSJed Brown(c) The contribution was provided directly to me by some other 6774e0540eSJed Brown person who certified (a), (b) or (c) and I have not modified 6874e0540eSJed Brown it. 6974e0540eSJed Brown 7074e0540eSJed Brown(d) I understand and agree that this project and the contribution 7174e0540eSJed Brown are public and that a record of the contribution (including all 7274e0540eSJed Brown personal information I submit with it, including my sign-off) is 7374e0540eSJed Brown maintained indefinitely and may be redistributed consistent with 7474e0540eSJed Brown this project or the open source license(s) involved. 7574e0540eSJed Brown 7674e0540eSJed Brown 77