Node.js Core Collaborators maintain the nodejs/node GitHub repository. The GitHub team for Node.js Core Collaborators is @nodejs/collaborators. Collaborators have:
Both Collaborators and non-Collaborators may propose changes to the Node.js source code. The mechanism to propose such a change is a GitHub pull request. Collaborators review and merge (land) pull requests.
Two Collaborators must approve a pull request before the pull request can land. (One Collaborator approval is enough if the pull request has been open for more than 7 days.) Approving a pull request indicates that the Collaborator accepts responsibility for the change. Approval must be from Collaborators who are not authors of the change.
If a Collaborator opposes a proposed change, then the change cannot land. The exception is if the TSC votes to approve the change despite the opposition. Usually, involving the TSC is unnecessary. Often, discussions or further changes result in Collaborators removing their opposition.
The TSC can remove inactive Collaborators or provide them with Emeritus status. Emeriti may request that the TSC restore them to active status.
A subset of the Collaborators forms the Technical Steering Committee (TSC). The TSC has final authority over this project, including:
The current list of TSC members is in the project README.
The TSC Charter governs the operations of the TSC. All changes to the Charter need approval by the OpenJS Foundation Board of Directors.
The TSC meets in a voice conference call. Each year, the TSC elects a chair to run the meetings. The TSC streams its meetings for public viewing on YouTube or a similar service.
The TSC agenda includes issues that are at an impasse. The intention of the agenda is not to review or approve all patches. Collaborators review and approve patches on GitHub.
Any community member can create a GitHub issue asking that the TSC review something. If consensus-seeking fails for an issue, a Collaborator may apply the
tsc-agenda label. That will add it to the TSC meeting agenda.
Before each TSC meeting, the meeting chair will share the agenda with members of the TSC. TSC members can also add items to the agenda at the beginning of each meeting. The meeting chair and the TSC cannot veto or remove items.
The TSC may invite people to take part in a non-voting capacity.
During the meeting, the TSC chair ensures that someone takes minutes. After the meeting, the TSC chair ensures that someone opens a pull request with the minutes.
The TSC seeks to resolve as many issues as possible outside meetings using the TSC issue tracker. The process in the issue tracker is:
Existing Collaborators can nominate someone to become a Collaborator. Nominees should have significant and valuable contributions across the Node.js organization.
To nominate a new Collaborator, open an issue in the nodejs/node repository. Provide a summary of the nominee's contributions. For example:
Mention @nodejs/collaborators in the issue to notify other Collaborators about the nomination.
The nomination passes if no Collaborators oppose it after one week. Otherwise, the nomination fails.
There are steps a nominator can take in advance to make a nomination as frictionless as possible. Use the Collaborators discussion page to request feedback from other Collaborators in private. A nominator may also work with the nominee to improve their contribution profile.
Collaborators might overlook someone with valuable contributions. In that case, the contributor may open an issue or contact a Collaborator to request a nomination.
After the nomination passes, a TSC member onboards the new Collaborator. See the onboarding guide for details of the onboarding process.