Skip to content
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

Clarify and simplify contribution rules #552

Closed
wants to merge 1 commit into from
Closed
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
104 changes: 60 additions & 44 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,19 @@ functionality for IDE-like applications, like a file system or a navigator
view, most functionality doesn't necessarily need to be put into the core
repository but can be developed separately.

* [How Can I Contribute?](#how-can-i-contribute)
* [Asking Questions](#asking-questions)
* [Reporting Bugs](#reporting-bugs)
* [Reporting Feature Requests](#reporting-feature-requests)
* [Pull Requests](#pull-requests)
* [Contributions](#contributions)
* [Reviewing](#reviewing)
* [Signing off](#signing-off)
* [Landing](#signing-off)
* [Becoming a Committer](#becoming-a-committer)
* [Coding Guidelines](#coding-guidelines)
* [Developer's Certificate of Origin 1.1](#developers-certificate-of-origin-11)

## How Can I Contribute?

In the following some of the typical ways of contribution are described.
Expand Down Expand Up @@ -42,63 +55,66 @@ an issue. Simply choose the issue you would want to work on, and tell everyone
that you are willing to do so and how you would approach it. The team will be
happy to guide you and give feedback.

## Coding Guidelines
## Contributions

We follow the coding guidelines described
[here](https://github.com/theia-ide/theia/wiki/Coding-Guidelines).
All contributions to the project must be through pull requests. This applies to all changes to documentation, code, binary files, etc. Even long term committers must use pull requests.

## Sign your work
No pull request can be merged without being reviewed.

The sign-off is a simple line at the end of the explanation for the patch. Your
signature certifies that you wrote the patch or otherwise have the right to
pass it on as an open-source patch. The rules are pretty simple: if you can
certify the below (from
[developercertificate.org](http://developercertificate.org/)):
### Reviewing

```
Developer Certificate of Origin
Version 1.1
For non-trivial contributions, pull requests should sit for at least 24 hours to ensure that committers in other timezones have time to review. Trivial pull requests may be landed after a shorter delay.

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129
The default for each contribution is that it is accepted once no committer has an objection. Once all issues brought by committers are addressed it can be signed-off and landed by any committer.

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
### Signing off

Developer's Certificate of Origin 1.1
Committers sign-off on a pull request by explicitly stating their approval in the PR text or associated comment stream.
Copy link
Contributor

Choose a reason for hiding this comment

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

I having a committer sign-off is additional process about responsibility / code ownership, but has nothing to do with copyright. I don't think we need that.

Copy link
Member Author

Choose a reason for hiding this comment

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

I having a committer sign-off is additional process about responsibility / code ownership, but has nothing to do with copyright.

I am not sure about it. Any sign-off is about copyright. If one signs other unsigned work he declares that he reviewed it and the work is developed under an open-source license to his knowledge. If he is not sure he should not sign but ask the originator.

At node.js they use a PR approval as the sign-off. The DCO does not say that github sign off should be used. The process is very simple a PR should be revied by a committer and approved to be signed.


By making a contribution to this project, I certify that:
All pull requests submitted by individuals who are not committers must be signed-off on by an existing committer before the PR can be landed. The sponsoring committer becomes responsible for the PR.
Copy link
Contributor

Choose a reason for hiding this comment

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

see my comment above.


Pull requests from an existing committer must be signed-off on by at least one other committer.

(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
### Landing

(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
When Landing a pull request, a committer may modify the original commit message to include the following additional meta information regarding the change process:

(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
- A `PR-URL:` line that references the full GitHub URL of the original Pull Request being merged so it's easy to trace a commit back to the conversation that lead up to that change.
- A `Fixes: X` line as appropriate, where X includes the full GitHub URL for an issue, and/or the complete or abbreviated hash identifier and commit message if the commit fixes a bug in a previous commit. Multiple Fixes: lines may be added if appropriate.

(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.
```
## Becoming a Committer

Then you just add a line to every git commit message:
All contributors who land a non-trivial contribution should be on-boarded in a timely manner and added as a committer. The invitation to become a committer must include a copy of the project Developer’s Certificate of Origin ([DCO]((#developers-certificate-of-origin-11))). Assuming the individual accepts the invitation, they are granted commit-access to the project.

Signed-off-by: Joe Smith <[email protected]>
Committers are expected to follow this policy and continue to send pull requests, go through proper review, and have other committers sign-off and land their pull requests.

Use your real name (sorry, no pseudonyms or anonymous contributions.)
## Coding Guidelines

We follow the coding guidelines described
[here](https://github.com/theia-ide/theia/wiki/Coding-Guidelines).

## Developer's Certificate of Origin 1.1

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

If you set your `user.name` and `user.email` git configs, you can sign your
commit automatically with `git commit -s`.
* (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.