Skip to content

Creates CONTRIBUTOR and MAINTAINERS files #353

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
Jun 20, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 12 additions & 10 deletions CHANGELOG → CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
== 1.3.0
# Change Log

## 1.3.0

* Dropping Ruby 1.8.x support

== 1.2.10
## 1.2.10

* Adding Git::Diff.name_status
* Checking and fixing encoding on commands output to prevent encoding errors afterwards

== 1.2.9
## 1.2.9

* Adding Git.configure (to configure the git env)
* Adding Git.ls_remote [Git.ls_remote(repo_path_or_url='.')]
Expand All @@ -27,13 +29,13 @@
* Git.fetch - supporting --prune
* Git.tag - supporting

== 1.2.8
## 1.2.8

* Keeping the old escape format for windows users
* revparse: Supporting ref names containing SHA like substrings (40-hex strings)
* Fix warnings on Ruby 2.1.2

== 1.2.7
## 1.2.7

* Fixing mesages encoding
* Fixing -f flag in git push
Expand All @@ -45,7 +47,7 @@
* Git.add_tag options - supporting -a, -m and -s
* Added Git.delete_tag

== 1.2.6
## 1.2.6

* Ruby 1.9.X/2.0 fully supported
* JRuby 1.8/1.9 support
Expand All @@ -61,24 +63,24 @@
* Travis configuration
* Licence included with the gem

== 1.0.4
## 1.0.4

* added camping/gitweb.rb frontend
* added a number of speed-ups

== 1.0.3
## 1.0.3

* Sped up most of the operations
* Added some predicate functions (commit?, tree?, etc)
* Added a number of lower level operations (read-tree, write-tree, checkout-index, etc)
* Fixed a bug with using bare repositories
* Updated a good amount of the documentation

== 1.0.2
## 1.0.2

* Added methods to the git objects that might be helpful

== 1.0.1
## 1.0.1

* Initial version

94 changes: 94 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# Contributing to ruby-git

Thank you for your interest in contributing to this project.

These are mostly guidelines, not rules.
Use your best judgment, and feel free to propose changes to this document in a pull request.

#### Table Of Contents

[How Can I Contribute?](#how-can-i-contribute)
* [Submitting Issues](#submitting-issues)
* [Contribution Process](#contribution-process)
* [Pull Request Requirements](#pull-request-requirements)
* [Code Review Process](#code-review-process)
* [Developer Certification of Origin (DCO)](#developer-certification-of-origin-dco)


## How Can I Contribute?

### Submitting Issues

We utilize **GitHub Issues** for issue tracking and contributions. You can contribute in two ways:

1. Reporting an issue or making a feature request [here](https://github.com/ruby-git/ruby-git/issues/new).
2. Adding features or fixing bugs yourself and contributing your code to ruby-git.

### Contribution Process

We have a 3 step process for contributions:

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).
2. Create a GitHub Pull Request for your change, following the instructions in the pull request template.
3. Perform a [Code Review](#code-review-process) with the project maintainers on the pull request.

### Pull Request Requirements
In order to ensure high quality, we require that all pull requests to this project meet these specifications:

1. Unit Testing: We require all the new code to include unit tests, and any fixes to pass previous units.
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.
3. Up-to-date Documentation: New methods as well as updated methods should have [YARD](https://yardoc.org/) documentation added to them

### Code Review Process

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.

Once you open a pull request, project maintainers will review your code and respond to your pull request with any feedback they might have.

The process at this point is as follows:

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>.
2. When ready, your pull request will be merged into `master`, we may require you to rebase your PR to the latest `master`.

### Developer Certification of Origin (DCO)

Licensing is very important to open source projects. It helps ensure the software continues to be available under the terms that the author desired.

ruby-git uses [the MIT license](https://github.com/ruby-git/ruby-git/blob/master/LICENSE)

Detail about the LICENSE can be found [here](https://choosealicense.com/licenses/mit/)

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.

The DCO is an attestation attached to every contribution made by every developer.

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/>.

```
Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(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

(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

(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.

(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.
```
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rvodden I'm not so sure we need the DCO. It feels a bit far-fetched to me. What do you think?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm with you, in that it is a bit far fetched, but on the other hand all the OS projects i work on them have them... its only a check box, and I don't think its much to ask; On the other hand if we miss it out and have no legal protection at all we risk (admittedly and extremely low risk) losing all our work. I'm minded to leave it in...

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree about the legal implications, they are valid. If it was only a check box, I would be fine with it, but as we have it written now:

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/.

...it means more work every time someone makes a single commit and submits it to the project. (OTOH, you can automate it by using git commit -s or --sign-off, but still...)

I think, if we rephrase this to be just a mere checkbox in the PR, I am fine with it.

Copy link
Contributor Author

@tarcinil tarcinil Apr 8, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@perlun I would be hesitate to change the standard for DCO without understand the legal implications that change could introduce. The DCO depends on the git Sign-Off-By because of the integrity that is built into Git, removing that could nullify the protections that are given to the maintainers of the project.

The IDE that I use has the ability to sign-off a commit built-in, but I do not believe that the addition of a -s in a command line string is asking too much either. GitHub has tools that can check for DCO on a commit.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The IDE that I use has the ability to sign-off a commit built-in, but I do not believe that the addition of a -s in a command line string is asking too much either. GitHub has tools that can check for DCO on a commit.

Alright, I'm willing to give it a try. We can drop this requirement later if it turns out to be too burdensome.

15 changes: 15 additions & 0 deletions ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
### Subject of the issue
Describe your issue here.

### Your environment
* version of git and ruby-git
* version of ruby

### Steps to reproduce
Tell us how to reproduce this issue.

### Expected behaviour
What did you expect to happen?

### Actual behaviour
What actually happened?
8 changes: 8 additions & 0 deletions MAINTAINERS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Maintainers

When making changes to the system, this file tells you who needs to review your patch - you need at least two maintainers to provide a :+1: on your pull request.

### Maintainers

* [Per Lundberg](https://github.com/perlun)
* [Vern Burton](https://github.com/tarcinil)
9 changes: 9 additions & 0 deletions PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
### Your checklist for this pull request
🚨Please review the [guidelines for contributing](../CONTRIBUTING.md) to this repository.

- [ ] Ensure all commits include DCO sign-off.
- [ ] Ensure that your contributions pass unit testing.
- [ ] Ensure that your contributions contain documentation if applicable.

### Description
Please describe your pull request.
4 changes: 3 additions & 1 deletion git.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,9 @@ Gem::Specification.new do |s|
s.rdoc_options = ['--charset=UTF-8']

s.files = [
'CHANGELOG',
'CHANGELOG.md',
'CONTRIBUTING.md',
'MAINTAINERS.md',
'LICENSE',
'README.md',
'VERSION',
Expand Down