Skip to content

Commit f3d99a4

Browse files
mikealdougwilson
authored andcommitted
docs: add base contributing guide
closes #2918
1 parent dd2b897 commit f3d99a4

File tree

2 files changed

+115
-23
lines changed

2 files changed

+115
-23
lines changed

Collaborator-Guide.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
2+
## Website Issues
3+
4+
Issues for the expressjs.com website go here https://github.com/strongloop/expressjs.com
5+
6+
## PRs and Code contributions
7+
8+
* Tests must pass.
9+
* Follow existing coding style.
10+
* If you fix a bug, add a test.
11+
12+
## Branches
13+
14+
* Use the `master` branch for bug fixes or minor work that is intended for the current release stream
15+
* Use the correspondingly named branch, e.g. `5.0`, for anything intended for a future release of Express
16+
17+
## Steps for contributing
18+
19+
* [Create an issue](https://github.com/strongloop/express/issues/new) for the bug you want to fix or the feature that you want to add.
20+
* Create your own [fork](https://github.com/strongloop/express) on github, then checkout your fork.
21+
* Write your code in your local copy. It's good practice to create a branch for each new issue you work on, although not compulsory.
22+
* To run the test suite, first install the dependencies by running `npm install`, then run `npm test`.
23+
* If the tests pass, you can commit your changes to your fork and then create a pull request from there. Make sure to reference your issue from the pull request comments by including the issue number e.g. #123.
24+
25+
## Issues which are questions
26+
27+
We will typically close any vague issues or questions that are specific to some app you are writing. Please double check the docs and other references before being trigger happy with posting a question issue.
28+
29+
Things that will help get your question issue looked at:
30+
31+
* Full and runnable JS code.
32+
* Clear description of the problem or unexpected behavior.
33+
* Clear description of the expected result.
34+
* Steps you have taken to debug it yourself.
35+
36+
If you post a question and do not outline the above items or make it easy for us to understand and reproduce your issue, it will be closed.

Contributing.md

Lines changed: 79 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,92 @@
1+
# Node.js Community Contributing Guide 1.0
12

2-
## Website Issues
3+
This document describes a very simple process suitable for most projects
4+
in the Node.js ecosystem. Projects are encouraged to adopt this whether they
5+
are hosted in the Node.js Foundation or not.
36

4-
Issues for the expressjs.com website go here https://github.com/strongloop/expressjs.com
7+
The goal of this document is to create a contribution process that:
58

6-
## PRs and Code contributions
9+
* Encourages new contributions.
10+
* Encourages contributors to remain involved.
11+
* Avoids unnecessary processes and bureaucracy whenever possible.
12+
* Creates a transparent decision making process which makes it clear how
13+
contributors can be involved in decision making.
714

8-
* Tests must pass.
9-
* Follow existing coding style.
10-
* If you fix a bug, add a test.
15+
This document is based on much prior art in the Node.js community, io.js,
16+
and the Node.js project.
1117

12-
## Branches
18+
## Vocabulary
1319

14-
* Use the `master` branch for bug fixes or minor work that is intended for the current release stream
15-
* Use the correspondingly named branch, e.g. `5.0`, for anything intended for a future release of Express
20+
* A **Contributor** is any individual creating or commenting on an issue or pull request.
21+
* A **Committer** is a subset of contributors who have been given write access to the repository.
22+
* A **TC (Technical Committee)** is a group of committers representing the required technical
23+
expertise to resolve rare disputes.
1624

17-
## Steps for contributing
25+
# Logging Issues
1826

19-
* [Create an issue](https://github.com/strongloop/express/issues/new) for the bug you want to fix or the feature that you want to add.
20-
* Create your own [fork](https://github.com/strongloop/express) on github, then checkout your fork.
21-
* Write your code in your local copy. It's good practice to create a branch for each new issue you work on, although not compulsory.
22-
* To run the test suite, first install the dependencies by running `npm install`, then run `npm test`.
23-
* If the tests pass, you can commit your changes to your fork and then create a pull request from there. Make sure to reference your issue from the pull request comments by including the issue number e.g. #123.
27+
Log an issue for any question or problem you might have. When in doubt, log an issue,
28+
any additional policies about what to include will be provided in the responses. The only
29+
exception is security dislosures which should be sent privately.
2430

25-
## Issues which are questions
31+
Committers may direct you to another repository, ask for additional clarifications, and
32+
add appropriate metadata before the issue is addressed.
2633

27-
We will typically close any vague issues or questions that are specific to some app you are writing. Please double check the docs and other references before being trigger happy with posting a question issue.
34+
Please be courteous, respectful, and every participant is expected to follow the
35+
project's Code of Conduct.
2836

29-
Things that will help get your question issue looked at:
37+
# Contributions
38+
39+
Any change to resources in this repository must be through pull requests. This applies to all changes
40+
to documentation, code, binary files, etc. Even long term committers and TC members must use
41+
pull requests.
42+
43+
No pull request can be merged without being reviewed.
44+
45+
For non-trivial contributions, pull requests should sit for at least 36 hours to ensure that
46+
contributors in other timezones have time to review. Consideration should also be given to
47+
weekends and other holiday periods to ensure active committers all have reasonable time to
48+
become involved in the discussion and review process if they wish.
49+
50+
The default for each contribution is that it is accepted once no committer has an objection.
51+
During review committers may also request that a specific contributor who is most versed in a
52+
particular area gives a "LGTM" before the PR can be merged. There is no additional "sign off"
53+
process for contributions to land. Once all issues brought by committers are addressed it can
54+
be landed by any committer.
55+
56+
In the case of an objection being raised in a pull request by another committer, all involved
57+
committers should seek to arrive at a consensus by way of addressing concerns being expressed
58+
by discussion, compromise on the proposed change, or withdrawal of the proposed change.
59+
60+
If a contribution is controversial and committers cannot agree about how to get it to land
61+
or if it should land then it should be escalated to the TC. TC members should regularly
62+
discuss pending contributions in order to find a resolution. It is expected that only a
63+
small minority of issues be brought to the TC for resolution and that discussion and
64+
compromise among committers be the default resolution mechanism.
65+
66+
# Becoming a Committer
67+
68+
All contributors who land a non-trivial contribution should be on-boarded in a timely manner,
69+
and added as a committer, and be given write access to the repository.
70+
71+
Committers are expected to follow this policy and continue to send pull requests, go through
72+
proper review, and have other committers merge their pull requests.
73+
74+
# TC Process
75+
76+
The TC uses a "consensus seeking" process for issues that are escalated to the TC.
77+
The group tries to find a resolution that has no open objections among TC members.
78+
If a consensus cannot be reached that has no objections then a majority wins vote
79+
is called. It is also expected that the majority of decisions made by the TC are via
80+
a consensus seeking process and that voting is only used as a last-resort.
81+
82+
Resolution may involve returning the issue to committers with suggestions on how to
83+
move forward towards a consensus. It is not expected that a meeting of the TC
84+
will resolve all issues on its agenda during that meeting and may prefer to continue
85+
the discussion happening among the committers.
86+
87+
Members can be added to the TC at any time. Any committer can nominate another committer
88+
to the TC and the TC uses its standard consensus seeking process to evaluate whether or
89+
not to add this new member. Members who do not participate consistently at the level of
90+
a majority of the other members are expected to resign.
3091

31-
* Full and runnable JS code.
32-
* Clear description of the problem or unexpected behavior.
33-
* Clear description of the expected result.
34-
* Steps you have taken to debug it yourself.
3592

36-
If you post a question and do not outline the above items or make it easy for us to understand and reproduce your issue, it will be closed.

0 commit comments

Comments
 (0)