Node.js Collaborator Guide
This document contains information for Collaborators of the Node.js Community Committee regarding maintaining the code, documentation, and issues.
Issues and Pull Requests
Courtesy should always be shown to individuals submitting issues and pull requests to the Node.js Community Committee.
Collaborators should feel free to take full responsibility for managing issues and pull requests they feel qualified to handle, as long as this is done while being mindful of these guidelines, the opinions of other Collaborators and guidance of the Community Committee Members.
Collaborators may close any issue or pull request they believe is not relevant for the future of the Node.js project. Where this is unclear, the issue should be left open for several days to allow for additional discussion. Where this does not yield input from Node.js Collaborators or additional evidence that the issue has relevance, the issue may be closed. Remember that issues can always be re-opened if necessary.
All modifications should be performed via GitHub pull requests.
All pull requests must be reviewed and accepted by a Collaborator with sufficient expertise who is able to take full responsibility for the change. In the case of pull requests proposed by an existing Collaborator, an additional Collaborator, is required for sign-off.
In some cases, it may be necessary to summon a qualified Collaborator to a pull request for review by @-mention.
If you are unsure about the modification and are not prepared to take full responsibility for the change, defer to another Collaborator.
Before landing pull requests, sufficient time should be left for input from other Collaborators. Leave at least 48 hours during the week and 72 hours over weekends to account for international time differences and work schedules. Trivial changes (e.g., typos or content changes) maybe landed after a shorter delay.
Where there is no disagreement amongst Collaborators, a pull request may be landed given appropriate review. Where there is discussion amongst Collaborators, consensus should be sought if possible. The lack of consensus may indicate the need to elevate discussion to the Community Committee Members for resolution (see below).
Involving the Community Committee Members
Collaborators may opt to elevate pull requests or issues to the Community
Committee Members for discussion by mentioning
This should be done where a pull request:
- has a significant impact on the content,
- is inherently controversial; or
- has failed to reach consensus amongst the Collaborators who are actively participating in the discussion.
The CC Members should serve as the final arbiter where required.
Cross-coordination Guidelines to Other Governing Groups
All Board requests should be communicated to the Individual Member Directors from the CommComm Chairperson each month as resolutions or updates. Directors present at the Board session are responsible for championing these items.
The CommComm Chairperson should also coordinate with the TSC Director and Chairperson to ensure all relevant CommComm items have been familiarized ahead of the Board meeting. The Chairperson of the CommComm is responsible for communicating to the TSC chair any cross-concerning discussions, attending meetings to coordinate efforts, and see how we need get input from each group.
The Individual Member Directors need to email agenda items to the Node.js Executive Director the Thursday prior to each Board meeting. The Board meeting occurs the last Tuesday of every month. In-between meetings, Individual Membership Directors, can email important updates to the Board to familiarize topics prior to Board meeting.
Be mindful about timeframes on needing approval across governing groups and the Board. Some initiatives may take weeks, not days, for everything to align.
Developer's Certificate of Origin 1.1
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.
(d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved.