Skip to content
This repository was archived by the owner on Apr 18, 2018. It is now read-only.

Commit f933781

Browse files
committed
doc: additional cleanup
Additional cleanup and restructuring based on the ongoing conversation.
1 parent 8a53049 commit f933781

File tree

1 file changed

+19
-41
lines changed

1 file changed

+19
-41
lines changed

README.md

Lines changed: 19 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -14,66 +14,44 @@ Individuals can self-nominate the TSC for Collaborator status by submitting an i
1414

1515
Collaborators can be nominated to become members of the TSC following the same nomination and approval model. However, Collaborators cannot nominate themselves for TSC membership.
1616

17-
### Consensus Seeking Process
17+
### Accepting Modifications through a Consensus Seeking Process
1818

19-
Like the TSC governance, all issues and pull requests follow a Consensus Seeking decision making model as described in the Project TSC Charter.
19+
A "Contribution" to the Project is any work that is voluntarily submitted to the project. These include not only source code in the form of bug fixes, code improvements, new functions, etc, but contributions to documentation, design etc that are intended for the overall improvement of the project.
2020

21-
Collaborators may opt to elevate significant or controversial modifications, or modifications that have not found consensus to the TSC for discussion by assigning the tsc-agenda tag to a pull request or issue. The TSC should serve as the final arbiter where required.
21+
Contributions to the Project are made on a collaborative basis. Any individual with a GitHub account may propose a contribution by submitting a Pull Request (PR). Like the TSC governance, acceptance of Contributions (a.k.a. "landing a Pull Request") into the Project follow the Consensus Seeking decision making model as described in the Project TSC Charter.
2222

23-
If full TSC review is not required, and there is a Working Group whose charter covers the subject of the issue or pull request, then it can be tagged using a Working Group specific tag (to be selected by the Working Group itself). In such cases, the WG can decide whether to further elevate the item to the full tsc (using the *tsc-agenda* tag) or decide on the matter itself.
23+
All Pull Requests submitted by individuals who are not Collaborators must be signed-off on by an existing Collaborator before the PR will be considered. The sponsoring Collaborator becomes responsible for the PR. Pull Requests from an existing Collaborator must be signed-off on by at least one other Collaborator.
2424

25-
In either case, issues or PR’s for which additional review is required should have the review-required tag added and removed only after either the Working Group or TSC decision has been made.
25+
Before any Pull Request is landed, sufficient time should be given to receive input from other Collaborators with sufficient expertise to evaluate the changes. Specifically, at least 48 hours during the typical working week and 72 hours over weekends should be given to account for international time differences and work schedules. Trivial Pull Requests may be landed after a shorter delay.
2626

27-
### Accepting Modifications
28-
29-
A "Contribution" to the project is any work that is voluntarily submitted to the project. These include not only source code in the form of bug fixes, code improvements, new functions, etc, but contributions to documentation, design etc that are intended for the overall improvement of the project.
30-
31-
Contributions to the Project are made on a collaborative basis. Any individual with a GitHub account may propose a contribution by submitting a Pull Request (PR). Contributions must be evaluated by project Collaborators with sufficient expertise and approved using the Consensus Seeking Process described above.
32-
33-
All Pull Requests submitted by individuals who are not currently Collaborators must be signed-off on by an existing Collaborator before the PR will be considered. The sponsoring Collaborator becomes responsible for the PR.
34-
35-
Pull Requests from an existing Collaborator must be signed-off on by at least one other Collaborator with sufficient expertise to evaluate the specific PR. Collaborators are encouraged to seek additional review and sign-off for non-trivial changes. A Trivial Change is any which fixes minor bugs or improves performance without affecting API or causing other wide-reaching impact.
36-
37-
Before any Pull Request is landed, sufficient time should be given to receive input from other Collaborators. Specifically, at least 48 hours during the typical working week and 72 hours over weekends should be given to account for international time differences and work schedules. Trivial Pull Requests may be landed after a shorter delay.
38-
39-
If any Collaborator feels that a particular PR is controversial and needs to be reviewed further, the Collaborator can call attention to the Pull Request by attaching either the *tsc-agenda* tag (to put the Pull Request on the TSC agenda) or a Working Group specific tag to indicate that the PR requires review from a specific Working Group. PR’s that are put onto the TSC or WG agenda cannot be landed until the tagged WG or TSC has the opportunity to review and decide using the Consensus Seeking Model.
40-
41-
Elevationg of Pull Requests or issues to the TSC or WG should occur when the Pull Request:
42-
43-
* has a significant impact on the codebase,
44-
* is inherently controversial; or
45-
* has failed to reach consensus amongst the Collaborators who are actively participating in the discussion.
46-
47-
The TSC serves as the final arbiter where required but it is expected that most changes reaching a lazy consensus are merged without TSC intervention.
27+
If it becomes apparent that the changes proposed by a given Pull Request: (a) have significant impact on the project as a whole; (b) are inherently controversial; or (c) have failed to reach consensus amongst Collaborators, the Pull Request can be elevated for review by either a specific Working Group (by attaching a WG specific tag to the PR) or the TSC (by attaching the *tsc-agenda* tag to the PR). Pull Requests that have been flagged for TSC or Working Group review must not be landed until the TSC or Working Group has had sufficient opportunity to review the issue and render a decision. A Working Group may choose to defer the issue to the TSC.
4828

4929
Specific Collaborators or Working Groups can be requested to review any PR by using an *@-mention* either within the PR text itself or the associated comment stream.
5030

51-
Collaborators sign off on a PR by explicitly stating their approval in the PR text or associated comment stream. If a Collaborator is unsure about the modification or is not prepared to take full responsibility for the change, they should defer to another Collaborator.
31+
Collaborators sign-off on a Pull Request by explicitly stating their approval in the PR text or associated comment stream. If a Collaborator is unsure about the modification or is not prepared to take full responsibility for the change, they should defer to another Collaborator.
5232

53-
For high priority changes that address security vulnerabilities, a shorter review period may be necessary depending on the nature of the change and severity of the issue. It is recommended that the TSC establish a special Security Working Group of Collaborators with recognized security expertise that can be tasked with reviewing security related Pull Requests.
33+
Exception to this process is allowed for high-priority changes that address security vulnerabilities. A shorter review period and modified sign-off process may be necessary depending on the nature of the change and severity of the issue. It is recommended that the TSC establish a Security Working Group of Collaborators with recognized security expertise that can be tasked with reviewing security related Pull Requests and determining an appropriate review process.
5434

55-
Where there is no disagreement amongst Collaborators, a PR may be landed given appropriate review. Where there is disagreement amongst Collaborators, consensus should be sought if possible. The lack of consensus may indicate the need to elevate discussion to the either a Working Group or TSC for resolution (see below).
35+
All Pull Requests that either fix bugs or introduce new functionality require at least one test case demonstrating the defect or validating the intended functionality. For bug fixes, the test should fail before the change, and pass after the change.
5636

57-
All Pull Requests that either fix bugs or introduce new functionality require at least one test case demonstrating the defect or validating the intended functionality. For bug fixes, the test should fail before the change, and pass after the change. Pull Requests for changes intended to improve performance should contain a benchmark demonstrating the performance impact. The test should demonstrate improved performance after the change is applied.
37+
Pull Requests for changes intended to improve performance require a benchmark demonstrating the performance impact. The benchmark should demonstrate improved performance after the change is applied.
5838

5939
### Branches
6040

61-
The Project source repository will be organized into a single *master* branch and multiple Release branches. All modifications intended for the current major release line must be made to the master branch and must follow the guidelines detailed in this document. Modifications to Release branches are limited to bug fixes, with priority given to PR’s that address specific security vulnerabilities. Oversight of the Release branches belongs to the Long Term Support (LTS) Working Group. The LTS Working Group will establish policies for landing Pull Requests into Release branches.
41+
The Project source repository will be organized into a single *master* branch, multiple Release branches, and multiple Development Branches. All modifications intended for the current major release line must be made to the *master* branch and must follow the guidelines detailed in this document. Modifications to Release branches are limited to bug fixes, with priority given to changes that address specific security vulnerabilities. Oversight of the Release branches belongs to the Long Term Support (LTS) Working Group. The LTS Working Group will establish policies for landing Pull Requests into Release branches.
6242

6343
### Landing Pull Requests
6444

65-
When Landing a Pull Request, always modify the original commit message to include additional meta information regarding the change process:
45+
When Landing a Pull Request, a Collaborator must modify the original commit message to include the following additional meta information regarding the change process:
6646

6747
* A `Reviewed-By: Name <email>` line for yourself and any other Collaborators who have reviewed the change.
68-
* 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.
69-
* A `Fixes: X` line as appropriate, where `X` includes the full GitHub URL for an issue, and/or the hash and commit message if the commit fixes a bug in a previous commit. Multiple Fixes: lines may be added if appropriate.
70-
71-
See the commit log for examples such as this one if unsure exactly how to format your commit messages.
48+
* 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.
49+
* 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.
7250

73-
Additionally:
51+
Additionally, Collaborators should:
7452

75-
* Double check PR's to make sure the author's full name and email address are correct before merging.
76-
* Except when updating dependencies, all commits should be self contained. Meaning, every commit should pass all tests. This makes it much easier when bisecting to find a breaking change.
53+
* Double check Pull Requests to make sure the author's full name and email address are correct before merging.
54+
* Verify that every commit passes all tests.
7755

7856
### Issue and Pull Request Tagging
7957

@@ -101,7 +79,7 @@ Before a new major release master is branched for LTS releases of the prior majo
10179

10280
Additionally there are branches for stable release lines prior to 1.0 of minor versions. Example: `0.8.x`, `0.10.x`, `0.12.x`.
10381

104-
All release branches other than master are managed by the LTS Working Group and fall under the LTS release policy.
82+
All Release Branches other than master are managed by the LTS Working Group and fall under the LTS release policy.
10583

10684
### Release Versioning
10785

@@ -151,7 +129,7 @@ To avoid introducing unnecessary problems for users, the interim releases should
151129

152130
To facilitate and oversee the Convergence effort, the TSC will charter a Convergence Work Group. This WG will ensure that appropriate steps are being made in each of the two release lines to bring the projects back together. The Convergence WG will work directly with both release line WG’s. As soon as the release lines converge, the charters for the separate release line WG’s and the convergence WG will expire, and responsibility for the continued evolution of the converged release line will be with the project TSC itself. The initial membership of the Convergence WG will be a subset of members from each of the two release line WG’s.
153131

154-
For the Converged Project, a new Github organization owned and managed by the Node.js Foundation will be created. Once the new Github organization is established, ownership of the existing iojs/io.js and joyent/node repositories should be transferred. From there, the Convergence WG will be responsible for determining the exact next steps for creating the Converged repository.
132+
For the Converged Project, a new Github organization owned and managed by the Node.js Foundation will be created. Once the new Github organization is established, ownership of the existing iojs/io.js and joyent/node repositories should be transferred. From there, the Convergence WG will be responsible for determining the exact next steps for creating the Converged repository. Additional repositories from each of the existing joyent/* and iojs/* organizations may need to be transferred to the Node.js Foundation organization as well.
155133

156134
The Converged repository must contain release branches for all prior stable lines from both release lines.
157135

0 commit comments

Comments
 (0)