lint: remove unreachable code
[express.git] / Contributing.md
blob214e9070126ea1d9bac033b88aa2272a2007d25a
1 # Express.js Community Contributing Guide 1.0
3 The goal of this document is to create a contribution process that:
5 * Encourages new contributions.
6 * Encourages contributors to remain involved.
7 * Avoids unnecessary processes and bureaucracy whenever possible.
8 * Creates a transparent decision making process that makes it clear how
9 contributors can be involved in decision making.
11 ## Vocabulary
13 * A **Contributor** is any individual creating or commenting on an issue or pull request.
14 * A **Committer** is a subset of contributors who have been given write access to the repository.
15 * A **TC (Technical Committee)** is a group of committers representing the required technical 
16 expertise to resolve rare disputes.
18 # Logging Issues
20 Log an issue for any question or problem you might have. When in doubt, log an issue, and
21 any additional policies about what to include will be provided in the responses. The only
22 exception is security dislosures which should be sent privately.
24 Committers may direct you to another repository, ask for additional clarifications, and
25 add appropriate metadata before the issue is addressed.
27 Please be courteous and respectful. Every participant is expected to follow the
28 project's Code of Conduct.
30 # Contributions
32 Any change to resources in this repository must be through pull requests. This applies to all changes
33 to documentation, code, binary files, etc. Even long term committers and TC members must use
34 pull requests.
36 No pull request can be merged without being reviewed.
38 For non-trivial contributions, pull requests should sit for at least 36 hours to ensure that
39 contributors in other timezones have time to review. Consideration should also be given to 
40 weekends and other holiday periods to ensure active committers all have reasonable time to 
41 become involved in the discussion and review process if they wish.
43 The default for each contribution is that it is accepted once no committer has an objection.
44 During review committers may also request that a specific contributor who is most versed in a 
45 particular area gives a "LGTM" before the PR can be merged. There is no additional "sign off" 
46 process for contributions to land. Once all issues brought by committers are addressed it can 
47 be landed by any committer.
49 In the case of an objection being raised in a pull request by another committer, all involved 
50 committers should seek to arrive at a consensus by way of addressing concerns being expressed 
51 by discussion, compromise on the proposed change, or withdrawal of the proposed change.
53 If a contribution is controversial and committers cannot agree about how to get it to land
54 or if it should land then it should be escalated to the TC. TC members should regularly
55 discuss pending contributions in order to find a resolution. It is expected that only a 
56 small minority of issues be brought to the TC for resolution and that discussion and 
57 compromise among committers be the default resolution mechanism.
59 # Becoming a Committer
61 All contributors who land a non-trivial contribution should be on-boarded in a timely manner,
62 and added as a committer, and be given write access to the repository.
64 Committers are expected to follow this policy and continue to send pull requests, go through
65 proper review, and have other committers merge their pull requests.
67 # TC Process
69 The TC uses a "consensus seeking" process for issues that are escalated to the TC. 
70 The group tries to find a resolution that has no open objections among TC members.
71 If a consensus cannot be reached that has no objections then a majority wins vote
72 is called. It is also expected that the majority of decisions made by the TC are via 
73 a consensus seeking process and that voting is only used as a last-resort.
75 Resolution may involve returning the issue to committers with suggestions on how to 
76 move forward towards a consensus. It is not expected that a meeting of the TC 
77 will resolve all issues on its agenda during that meeting and may prefer to continue
78 the discussion happening among the committers.
80 Members can be added to the TC at any time. Any committer can nominate another committer
81 to the TC and the TC uses its standard consensus seeking process to evaluate whether or
82 not to add this new member. Members who do not participate consistently at the level of 
83 a majority of the other members are expected to resign.