Open-Source Wikis

/

Node.js

/

How to contribute

nodejs/node

How to contribute

This section orients a new contributor in the Node.js core development workflow. The authoritative documents are at CONTRIBUTING.md, doc/contributing/pull-requests.md, and doc/contributing/collaborator-guide.md. This page summarises them and points to the surrounding tooling.

Before you start

Sub-pages

  • Development workflow — fork → branch → commit → PR → land.
  • Testingtools/test.py, the categories under test/, fixtures, common helpers, CI tiers.
  • Debugging — debug builds, ASan, GDB/LLDB, --inspect, sanitizer suppressions.
  • Patterns and conventions — primordials, error codes, snapshot-friendliness, C++ idioms.
  • Tooling — the build system, the doctool, the linters, the dependency updaters.

Where work is tracked

  • GitHub issues and pull requests are the primary work surface.
  • Each subsystem has a GitHub team (see .github/CODEOWNERS) which gets a courtesy ping on relevant PRs.
  • Working groups (TSC, Build, Security, Releasers, …) coordinate in their own repos under https://github.com/nodejs/.
  • Slack: #nodejs-core on the OpenJS Foundation Slack.

What CI runs

@nodejs-github-bot orchestrates GitHub-side checks. The full Jenkins run is started by @<collaborator> posting @nodejs-github-bot run CI. The commit landing flow is encoded in the workflows under .github/workflows/:

Workflow Purpose
.github/workflows/commit-lint.yml Validates commit subject format
.github/workflows/linters.yml All linters (markdown, JS, C++, YAML)
.github/workflows/test-linux.yml Linux smoke + JS test suite
.github/workflows/test-macos.yml macOS test suite
.github/workflows/test-shared.yml Reusable matrix of tests
.github/workflows/coverage-*.yml Code coverage
.github/workflows/build-tarball.yml Source tarball / artifact build
.github/workflows/commit-queue.yml Auto-land for commit-queue labelled PRs
.github/workflows/auto-start-ci.yml Kicks Jenkins on label
.github/workflows/scorecard.yml OpenSSF scorecard

The non-blocking but important coverage and tooling jobs are in .github/workflows/tools.yml and the daily .github/workflows/daily*.yml.

Landing a PR

Only Collaborators can land PRs. The flow:

  1. PR gets at least two approvals from Collaborators.
  2. Wait the minimum 48 hours (or 72 over weekends).
  3. CI is green.
  4. The merger uses git node land (from @nodejs/node-core-utils) to rewrite the commits with PR-URL, Reviewed-By, and Refs: metadata, then pushes to main.

External contributors do not push directly. The Collaborator who lands the PR adjusts commit messages as needed. See Patterns and conventions for the format.

Backports

A fix landed on main may need to be backported to active LTS branches (v22.x, v20.x, …). git node backport <pr-num> from node-core-utils automates the cherry-pick + branch-prep step. The release proposal flow lives in .github/workflows/create-release-proposal.yml. Maintenance is delegated to the Releasers team.

Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.

How to contribute – Node.js wiki | Factory