Skip to content
This repository has been archived by the owner on Apr 22, 2023. It is now read-only.

Latest commit

 

History

History
88 lines (59 loc) · 6.67 KB

CONTRIBUTING.md

File metadata and controls

88 lines (59 loc) · 6.67 KB

Node.js Community Committee Contributing Guide 1.1

First things first: If you're unsure of anything, please don't hesitate to ask a question in a discussion or create an issue. Nobody will be upset with you; we'll always try to include you in the work you care about. The worst that can happen is that you'll be politely asked to change something. Any kind of contribution, no matter how big or small, helps!

Code of Conduct

The Code of Conduct explains the bare minimum behavior expectations the Node.js Foundation requires from all contributors. Please read it before participating.

Vocabulary

  • A Guest is any individual who has requested or been requested to attend a CommComm meeting.
  • A Contributor is any individual creating or commenting on an issue or pull request.
  • A Collaborator is a contributor who has been given write access to the the repo(s) relevant to Community Committee initiatives or working groups.
  • A Member is a collaborator with voting rights who has met the requirements of participation to be considered for acceptance, and subsequently voted in by the CommComm voting process.

Choosing a good first Issue to work on

Take a look at any issues tagged as good first issue to have an easier time getting started on your first contribution!

Below are links to good first issues in several initiatives.

Initiative Good first issues
i18n https://github.com/nodejs/i18n/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22
User Feedback https://github.com/nodejs/user-feedback/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22
Website Redesign https://github.com/nodejs/website-redesign/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22
Badges https://github.com/nodejs/badges/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22

The Community Committee repo also has issues tagged as good first issue.

Teams and Working Groups

The Community Committee represents a collection of teams and working groups that are expressly working toward growing and supporting the overall Node.js community. Node.js as a whole needs a broad range of skills and contributions, which are not necessarily technical in nature, to thrive.

You can see the current teams and working groups in the "Teams and Working Groups" section of the README.md file - if there is one that seems to cover an area of particular interest to you, you should take a look at the Team or Working Group's repo to see how you can get further involved.

Logging Issues

Log an issue for any question or problem you might have. When in doubt, log an issue, any additional policies about what to include will be provided in the responses. The only exception is security disclosures which should be sent privately. If you have a concern that is Code of Conduct related and do not feel comfortable reporting publicly, please reach out to an individual listed under Community Committee Collaborators

Collaborators may direct you to another repository, ask for additional clarifications, and add appropriate metadata before the issue is addressed.

Please be courteous, respectful, and every participant is expected to follow the project's Code of Conduct.

Contributions

Any change to resources in this repository must be through pull requests (colloquially referred to as "PRs"). This applies to all changes, both non-code and code: documentation, process-related contributions, binary files, etc. Even long term collaborators and WG members must use pull requests.

No pull request can be merged without being reviewed.

For non-trivial contributions, pull requests should sit for at least 72 hours to ensure that contributors in other timezones have time to review. Consideration should also be given to weekends and other holiday periods to ensure active collaborators all have reasonable time to become involved in the discussion and review process if they wish.

The default for each contribution is that it is accepted once no collaborator has an objection. During review collaborators may also request that a specific contributor who is most versed in a particular area gives a "LGTM" before the PR can be merged. There is no additional "sign off" process for contributions to land. Once all issues brought by collaborators are addressed, it can be landed by any collaborator.

In the case of an objection being raised in a pull request by another collaborator, all involved collaborators should seek to arrive at a consensus by way of addressing concerns being expressed by discussion, compromise on the proposed change, or withdrawal of the proposed change.

If a contribution is controversial and collaborators cannot agree about how to get it to land or if it should land then it should be escalated to the CommComm. CommComm members should regularly discuss pending contributions in order to find a resolution. It is expected that only a small minority of issues be brought to the CommComm for resolution and that discussion and compromise among collaborators be the default resolution mechanism.

Collaborators are expected to follow this policy and continue to send pull requests, go through proper review, and have other collaborators merge their pull requests.

The CommComm Process

The CommComm uses a "consensus seeking" process for issues that are escalated to the CommComm. The group tries to find a resolution that has no open objections among the CommComm members. If a consensus cannot be reached that has no objections then a majority wins vote is called. It is also expected that the majority of decisions made by the CommComm are via a consensus seeking process and that voting is only used as a last-resort.

Resolution may involve returning the issue to collaborators with suggestions on how to move forward towards a consensus. It is not expected that a meeting of the CommComm will resolve all issues on its agenda during that meeting and may prefer to continue the discussion happening among the collaborators.

Members can be added to the CommComm at any time. Any collaborator can nominate another collaborator to the CommComm and the CommComm uses its standard consensus seeking process to evaluate whether or not to add this new member. Members who do not participate consistently at the level of a majority of the other members are expected to resign.