|
| 1 | +# Contributing to ruby-git |
| 2 | + |
| 3 | +Thank you for your interest in contributing to this project. |
| 4 | + |
| 5 | +These are mostly guidelines, not rules. |
| 6 | +Use your best judgment, and feel free to propose changes to this document in a pull request. |
| 7 | + |
| 8 | +#### Table Of Contents |
| 9 | + |
| 10 | +[How Can I Contribute?](#how-can-i-contribute) |
| 11 | + * [Submitting Issues](#submitting-issues) |
| 12 | + * [Contribution Process](#contribution-process) |
| 13 | + * [Pull Request Requirements](#pull-request-requirements) |
| 14 | + * [Code Review Process](#code-review-process) |
| 15 | + * [Developer Certification of Origin (DCO)](#developer-certification-of-origin-dco) |
| 16 | + |
| 17 | + |
| 18 | +## How Can I Contribute? |
| 19 | + |
| 20 | +### Submitting Issues |
| 21 | + |
| 22 | +We utilize **GitHub Issues** for issue tracking and contributions. You can contribute in two ways: |
| 23 | + |
| 24 | +1. Reporting an issue or making a feature request [here](https://github.com/ruby-git/ruby-git/issues/new). |
| 25 | +2. Adding features or fixing bugs yourself and contributing your code to ruby-git. |
| 26 | + |
| 27 | +### Contribution Process |
| 28 | + |
| 29 | +We have a 3 step process for contributions: |
| 30 | + |
| 31 | +1. Commit changes to a git branch in your fork. Making sure to sign-off those changes for the [Developer Certificate of Origin](#developer-certification-of-origin-dco). |
| 32 | +2. Create a GitHub Pull Request for your change, following the instructions in the pull request template. |
| 33 | +3. Perform a [Code Review](#code-review-process) with the project maintainers on the pull request. |
| 34 | + |
| 35 | +### Pull Request Requirements |
| 36 | +In order to ensure high quality, we require that all pull requests to this project meet these specifications: |
| 37 | + |
| 38 | +1. Unit Testing: We require all the new code to include unit tests, and any fixes to pass previous units. |
| 39 | +2. Green CI Tests: We are using [Travis CI](https://travis-ci.org/ruby-git/ruby-git) to run unit tests on various ruby versions, we expect them to all pass before a pull request will be merged. |
| 40 | +3. Up-to-date Documentation: New methods as well as updated methods should have [YARD](https://yardoc.org/) documentation added to them |
| 41 | + |
| 42 | +### Code Review Process |
| 43 | + |
| 44 | +Code review takes place in GitHub pull requests. See [this article](https://help.github.com/articles/about-pull-requests/) if you're not familiar with GitHub Pull Requests. |
| 45 | + |
| 46 | +Once you open a pull request, project maintainers will review your code and respond to your pull request with any feedback they might have. |
| 47 | + |
| 48 | +The process at this point is as follows: |
| 49 | + |
| 50 | +1. One thumbs-up (:+1:) is required from project maintainers. See the master maintainers document for the ruby-git project at <https://github.com/ruby-git/ruby-git/blob/master/MAINTAINERS.md>. |
| 51 | +2. When ready, your pull request will be merged into `master`, we may require you to rebase your PR to the latest `master`. |
| 52 | + |
| 53 | +### Developer Certification of Origin (DCO) |
| 54 | + |
| 55 | +Licensing is very important to open source projects. It helps ensure the software continues to be available under the terms that the author desired. |
| 56 | + |
| 57 | +ruby-git uses [the MIT license](https://github.com/ruby-git/ruby-git/blob/master/LICENSE) |
| 58 | + |
| 59 | +Detail about the LICENSE can be found [here](https://choosealicense.com/licenses/mit/) |
| 60 | + |
| 61 | +To make a good faith effort to ensure these criteria are met, ruby-git requires the Developer Certificate of Origin (DCO) process to be followed. |
| 62 | + |
| 63 | +The DCO is an attestation attached to every contribution made by every developer. |
| 64 | + |
| 65 | +In the commit message of the contribution, the developer simply adds a Signed-off-by statement and thereby agrees to the DCO, which you can find below or at <http://developercertificate.org/>. |
| 66 | + |
| 67 | +``` |
| 68 | +Developer's Certificate of Origin 1.1 |
| 69 | +
|
| 70 | +By making a contribution to this project, I certify that: |
| 71 | +
|
| 72 | +(a) The contribution was created in whole or in part by me and I |
| 73 | + have the right to submit it under the open source license |
| 74 | + indicated in the file; or |
| 75 | +
|
| 76 | +(b) The contribution is based upon previous work that, to the |
| 77 | + best of my knowledge, is covered under an appropriate open |
| 78 | + source license and I have the right under that license to |
| 79 | + submit that work with modifications, whether created in whole |
| 80 | + or in part by me, under the same open source license (unless |
| 81 | + I am permitted to submit under a different license), as |
| 82 | + Indicated in the file; or |
| 83 | +
|
| 84 | +(c) The contribution was provided directly to me by some other |
| 85 | + person who certified (a), (b) or (c) and I have not modified |
| 86 | + it. |
| 87 | +
|
| 88 | +(d) I understand and agree that this project and the contribution |
| 89 | + are public and that a record of the contribution (including |
| 90 | + all personal information I submit with it, including my |
| 91 | + sign-off) is maintained indefinitely and may be redistributed |
| 92 | + consistent with this project or the open source license(s) |
| 93 | + involved. |
| 94 | +``` |
0 commit comments