Skip to content

Commit

Permalink
First draft of a new contribution policy.
Browse files Browse the repository at this point in the history
  • Loading branch information
mikeal authored and isaacs committed Oct 8, 2014
1 parent 25702ab commit f60abb0
Showing 1 changed file with 131 additions and 4 deletions.
135 changes: 131 additions & 4 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ through the process.

### FORK

Fork the project [on GitHub](https://github.com/joyent/node) and check out
Fork the project [on GitHub](https://github.com/node-forward/node) and check out
your copy.

```sh
$ git clone [email protected]:username/node.git
$ cd node
$ git remote add upstream git://github.com/joyent/node.git
$ git remote add upstream git://github.com/node-forward/node.git
```

Now decide if you want your feature or bug fix to go into the master branch
Expand Down Expand Up @@ -148,7 +148,134 @@ not send out notifications when you add commits.


[stability index page]: https://github.com/joyent/node/blob/master/doc/api/documentation.markdown
[issue tracker]: https://github.com/joyent/node/issues
[issue tracker]: https://github.com/node-forward/node/issues
[node.js mailing list]: http://groups.google.com/group/nodejs
[IRC]: http://webchat.freenode.net/?channels=node.js
[project maintainers]: https://github.com/joyent/node/wiki/Project-Organization

### COMMITTER GUIDE

Committers who are merging their work and the work of others have a few other
rules to follow.

- Always include the `Reviewed-by: You Name <your-email>` in the commit
message.
- In commit messages also include `Fixes:` that either includes the
**full url** (e.g. `https://github.com/joyent/node/issues/...`), and/or
the hash and commit message if the commit fixes a bug in a previous commit.
- PR's should include their full `PR-URL:` so it's easy to trace a commit
back to the conversation that lead up to that change.
- Double check PR's to make sure the persons **full name** and email
address are correct before merging.
- Except when updating dependencies, all commits should be self contained.
Meaning, every commit should pass all tests. Makes it much easier when
bisecting to find a breaking change.

# Governance

This repository (node-forward/node) is jointly governed by a technical
committee, commonly referred to as the "TC."

Initial membership invitations to the TC were given to individuals who had
been active contributors to Node. Current membership is:

```
Fedor Indutny
Trevor Norris
Ben Noordhuis
Isaac Z. Schlueter
Nathan Rajlich
Bert Belder
```

Invitations were also given to `TJ Fontaine` and `Alexis Campailla` who have
not accepted but are still invited to participate without accepting a role or
officially endorsing this effort.

The TC has final authority over this project including:

* Project governance and process
* Contribution policy
* GitHub repository hosting

The TC can change its governance model if they deem it necessary. The current
governance rules are:

* [Consensus Seeking](http://en.wikipedia.org/wiki/Consensus-seeking_decision-making)
* Motions with voting when consensus cannot be reached.
* Quorum of 60%, simple majority wins.
* No more than 30% of the TC membership can be affiliated with the same
employer.

## TC Meetings

The TC meets weekly on a Google hangout. The meeting is run by a designated
moderator, currently @mikeal. Each meeting should be published to Youtube.

## Contributor Policy

Individuals making significant and valuable contributions are given
commit-access to the project. These individuals are identified by the TC and
discussed during the weekly TC meeting.

If you make a significant contribution and are not considered for commit-access
log an issue and it will be brought up in the next TC meeting.

Internal pull-requests to solicit feedback are required for any other
non-trivial contribution but left to the discretion of the contributor.

For significant changes wait a full 48 hours (72 hours if it spans a weekend)
before merging so that active contributors who are distributed throughout the
world have a chance to weigh in.

Controversial changes and **very** significant changes should not be merged
until they have been discussed by the TC which will make any final decisions.

TC members nominate contributors to be added to the TC which the TC will vote
on. They can nominate any individual during any meeting.

## Developer's Certificate of Origin 1.0

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.

## Code of Conduct

This Code of Conduct is adapted from [Rust's wonderful CoC](https://github.com/rust-lang/rust/wiki/Note-development-policy#conduct).

* We are committed to providing a friendly, safe and welcoming environment for
all, regardless of gender, sexual orientation, disability, ethnicity, religion,
or similar personal characteristic.
* Please avoid using overtly sexual nicknames or other nicknames that might
detract from a friendly, safe and welcoming environment for all.
* Please be kind and courteous. There's no need to be mean or rude.
* Respect that people have differences of opinion and that every design or
implementation choice carries a trade-off and numerous costs. There is seldom
a right answer.
* Please keep unstructured critique to a minimum. If you have solid ideas you
want to experiment with, make a fork and see how it works.
* We will exclude you from interaction if you insult, demean or harass anyone.
That is not welcome behaviour. We interpret the term "harassment" as including
the definition in the [Citizen Code of Conduct](http://citizencodeofconduct.org/);
if you have any lack of clarity about what might be included in that concept,
please read their definition. In particular, we don't tolerate behavior that
excludes people in socially marginalized groups.
* Private harassment is also unacceptable. No matter who you are, if you feel
you have been or are being harassed or made uncomfortable by a community
member, please contact one of the channel ops or any of the TC members
immediately with a capture (log, photo, email) of the harassment if possible.
Whether you're a regular contributor or a newcomer, we care about making this
community a safe place for you and we've got your back.
* Likewise any spamming, trolling, flaming, baiting or other attention-stealing
behaviour is not welcome.
* Avoid the use of personal pronouns in code comments or documentation. There
is no need to address persons when explaining code (e.g. "When the developer")

0 comments on commit f60abb0

Please sign in to comment.