Skip to content

Commit 0d732e1

Browse files
committed
doc: reorganize README.md
The README previously mixes information of different levels of details e.g. some are just links, some include detailed instructions and commands. This reorganizes README.md to make it more like a map of links. The release information are moved into a dedicated document. Only the releaser list remains in the README.
1 parent 3c8c1ef commit 0d732e1

File tree

2 files changed

+143
-115
lines changed

2 files changed

+143
-115
lines changed

README.md

Lines changed: 74 additions & 115 deletions
Original file line numberDiff line numberDiff line change
@@ -18,113 +18,50 @@ that discourage, exhaust, or otherwise negatively affect other participants.
1818
## Table of contents
1919

2020
* [Support](#support)
21-
* [Release types](#release-types)
22-
* [Download](#download)
23-
* [Current and LTS releases](#current-and-lts-releases)
24-
* [Nightly releases](#nightly-releases)
25-
* [API documentation](#api-documentation)
26-
* [Verifying binaries](#verifying-binaries)
21+
* [Releases](#releases)
22+
* [Download](#download)
23+
* [Documentation](#documentation)
2724
* [Building Node.js](#building-nodejs)
2825
* [Security](#security)
2926
* [Contributing to Node.js](#contributing-to-nodejs)
3027
* [Current project team members](#current-project-team-members)
3128
* [TSC (Technical Steering Committee)](#tsc-technical-steering-committee)
3229
* [Collaborators](#collaborators)
3330
* [Triagers](#triagers)
34-
* [Release keys](#release-keys)
31+
* [Releasers](#releasers)
32+
* [Security release stewards](#security-release-stewards)
33+
* [Release keys](#release-keys)
3534
* [License](#license)
3635

3736
## Support
3837

39-
Looking for help? Check out the
40-
[instructions for getting support](.github/SUPPORT.md).
38+
Looking for help? Check out the [instructions for getting support](.github/SUPPORT.md).
4139

42-
## Release types
40+
## Releases
4341

44-
* **Current**: Under active development. Code for the Current release is in the
45-
branch for its major version number (for example,
46-
[v22.x](https://github.com/nodejs/node/tree/v22.x)). Node.js releases a new
47-
major version every 6 months, allowing for breaking changes. This happens in
48-
April and October every year. Releases appearing each October have a support
49-
life of 8 months. Releases appearing each April convert to LTS (see below)
50-
each October.
51-
* **LTS**: Releases that receive Long Term Support, with a focus on stability
52-
and security. Every even-numbered major version will become an LTS release.
53-
LTS releases receive 12 months of _Active LTS_ support and a further 18 months
54-
of _Maintenance_. LTS release lines have alphabetically-ordered code names,
55-
beginning with v4 Argon. There are no breaking changes or feature additions,
56-
except in some special circumstances.
57-
* **Nightly**: Code from the Current branch built every 24-hours when there are
58-
changes. Use with caution.
42+
See [RELEASE.md](./RELEASE.md) for an overview of releases and how to verify them,
43+
and the [Release Working Group README](https://github.com/nodejs/Release#readme) for
44+
release schedules and policies.
5945

60-
Current and LTS releases follow [semantic versioning](https://semver.org). A
61-
member of the Release Team [signs](#release-keys) each Current and LTS release.
62-
For more information, see the
63-
[Release README](https://github.com/nodejs/Release#readme).
46+
## Download
6447

65-
### Download
48+
See [how to download and install Node.js](https://nodejs.org/en/download/).
6649

67-
Binaries, installers, and source tarballs are available at
68-
<https://nodejs.org/en/download/>.
50+
## Documentation
6951

70-
#### Current and LTS releases
71-
72-
<https://nodejs.org/download/release/>
73-
74-
The [latest](https://nodejs.org/download/release/latest/) directory is an
75-
alias for the latest Current release. The latest-_codename_ directory is an
76-
alias for the latest release from an LTS line. For example, the
77-
[latest-hydrogen](https://nodejs.org/download/release/latest-hydrogen/)
78-
directory contains the latest Hydrogen (Node.js 18) release.
79-
80-
#### Nightly releases
81-
82-
<https://nodejs.org/download/nightly/>
83-
84-
Each directory and filename includes the version (e.g., `v22.0.0`),
85-
followed by the UTC date (e.g., `20240424` for April 24, 2024),
86-
and the short commit SHA of the HEAD of the release (e.g., `ddd0a9e494`).
87-
For instance, a full directory name might look like `v22.0.0-nightly20240424ddd0a9e494`.
88-
89-
#### API documentation
90-
91-
Documentation for the latest Current release is at <https://nodejs.org/api/>.
92-
Version-specific documentation is available in each release directory in the
93-
_docs_ subdirectory. Version-specific documentation is also at
94-
<https://nodejs.org/download/docs/>.
95-
96-
### Verifying binaries
97-
98-
Download directories contain a `SHASUMS256.txt.asc` file with SHA checksums for the
99-
files and the releaser PGP signature.
100-
101-
You can get a trusted keyring from nodejs/release-keys, e.g. using `curl`:
102-
103-
```bash
104-
curl -fsLo "/path/to/nodejs-keyring.kbx" "https://github.com/nodejs/release-keys/raw/HEAD/gpg/pubring.kbx"
105-
```
106-
107-
Alternatively, you can import the releaser keys in your default keyring, see
108-
[Release keys](#release-keys) for commands to how to do that.
109-
110-
Then, you can verify the files you've downloaded locally
111-
(if you're using your default keyring, pass `--keyring="${GNUPGHOME:-~/.gnupg}/pubring.kbx"`):
112-
113-
```bash
114-
curl -fsO "https://nodejs.org/dist/${VERSION}/SHASUMS256.txt.asc" \
115-
&& gpgv --keyring="/path/to/nodejs-keyring.kbx" --output SHASUMS256.txt < SHASUMS256.txt.asc \
116-
&& shasum --check SHASUMS256.txt --ignore-missing
117-
```
52+
* [Learn how to use Node.js](https://nodejs.org/en/learn/getting-started/introduction-to-nodejs) on the Node.js website.
53+
* Rendered [API documentation](https://nodejs.org/api/) for the latest Current release
54+
* [Index](https://nodejs.org/download/docs/) of version-specific API documentation
55+
* Source code of the API documentation are in [doc/api](./doc/api/).
11856

11957
## Building Node.js
12058

121-
See [BUILDING.md](BUILDING.md) for instructions on how to build Node.js from
122-
source and a list of supported platforms.
59+
* [Building Node.js from source](./BUILDING.md#building-nodejs-on-supported-platforms).
60+
* [List of supported platforms](./BUILDING.md#supported-platforms).
12361

12462
## Security
12563

126-
For information on reporting security vulnerabilities in Node.js, see
127-
[SECURITY.md](./SECURITY.md).
64+
See [information on reporting security vulnerabilities in Node.js](./SECURITY.md).
12865

12966
## Contributing to Node.js
13067

@@ -777,7 +714,59 @@ maintaining the Node.js project.
777714
Triagers follow the [Triage Guide](./doc/contributing/issues.md#triaging-a-bug-report) when
778715
responding to new issues.
779716

780-
### Release keys
717+
### Releasers
718+
719+
<!-- This might be redundant here, the one in Release#readme is properly sync-ed with ncu-team-sync -->
720+
721+
* [juanarbol](https://github.com/juanarbol) -
722+
**Juan José Arboleda** <<[email protected]>> (he/him)
723+
* [marco-ippolito](https://github.com/marco-ippolito) -
724+
**Marco Ippolito** <<[email protected]>> (he/him)
725+
* [RafaelGSS](https://github.com/RafaelGSS) -
726+
**Rafael Gonzaga** <<[email protected]>> (he/him)
727+
* [richardlau](https://github.com/richardlau) -
728+
**Richard Lau** <<[email protected]>>
729+
* [ruyadorno](https://github.com/ruyadorno) -
730+
**Ruy Adorno** <<[email protected]>> (he/him)
731+
* [targos](https://github.com/targos) -
732+
**Michaël Zasso** <<[email protected]>> (he/him)
733+
* [UlisesGascon](https://github.com/UlisesGascon) -
734+
**Ulises Gascón** <<[email protected]>> (he/him)
735+
736+
### Security release stewards
737+
738+
When possible, the commitment to take slots in the
739+
security release steward rotation is made by companies in order
740+
to ensure individuals who act as security stewards have the
741+
support and recognition from their employer to be able to
742+
prioritize security releases. Security release stewards manage security
743+
releases on a rotation basis as outlined in the
744+
[security release process](./doc/contributing/security-release-process.md).
745+
746+
* [Datadog](https://www.datadoghq.com/)
747+
* [bengl](https://github.com/bengl) -
748+
**Bryan English** <<[email protected]>> (he/him)
749+
* [HeroDevs](https://www.herodevs.com/)
750+
* [marco-ippolito](https://github.com/marco-ippolito) -
751+
**Marco Ippolito** <<[email protected]>> (he/him)
752+
* [NodeSource](https://nodesource.com/)
753+
* [juanarbol](https://github.com/juanarbol) -
754+
**Juan José Arboleda** <<[email protected]>> (he/him)
755+
* [RafaelGSS](https://github.com/RafaelGSS) -
756+
**Rafael Gonzaga** <<[email protected]>> (he/him)
757+
* [Platformatic](https://platformatic.dev/)
758+
* [mcollina](https://github.com/mcollina) -
759+
**Matteo Collina** <<[email protected]>> (he/him)
760+
* [Red Hat](https://redhat.com) / [IBM](https://ibm.com)
761+
* [joesepi](https://github.com/joesepi) -
762+
**Joe Sepi** <<[email protected]>> (he/him)
763+
* [mhdawson](https://github.com/mhdawson) -
764+
**Michael Dawson** <<[email protected]>> (he/him)
765+
766+
<!-- The release keys cannot be moved out of this README, because there are scripts
767+
parsing it to get the keys. -->
768+
769+
## Release keys
781770

782771
Primary GPG keys for Node.js Releasers (some Releasers sign with subkeys):
783772

@@ -867,36 +856,6 @@ The project maintains a keyring able to verify all past releases of Node.js at
867856

868857
</details>
869858

870-
### Security release stewards
871-
872-
When possible, the commitment to take slots in the
873-
security release steward rotation is made by companies in order
874-
to ensure individuals who act as security stewards have the
875-
support and recognition from their employer to be able to
876-
prioritize security releases. Security release stewards manage security
877-
releases on a rotation basis as outlined in the
878-
[security release process](./doc/contributing/security-release-process.md).
879-
880-
* [Datadog](https://www.datadoghq.com/)
881-
* [bengl](https://github.com/bengl) -
882-
**Bryan English** <<[email protected]>> (he/him)
883-
* [HeroDevs](https://www.herodevs.com/)
884-
* [marco-ippolito](https://github.com/marco-ippolito) -
885-
**Marco Ippolito** <<[email protected]>> (he/him)
886-
* [NodeSource](https://nodesource.com/)
887-
* [juanarbol](https://github.com/juanarbol) -
888-
**Juan José Arboleda** <<[email protected]>> (he/him)
889-
* [RafaelGSS](https://github.com/RafaelGSS) -
890-
**Rafael Gonzaga** <<[email protected]>> (he/him)
891-
* [Platformatic](https://platformatic.dev/)
892-
* [mcollina](https://github.com/mcollina) -
893-
**Matteo Collina** <<[email protected]>> (he/him)
894-
* [Red Hat](https://redhat.com) / [IBM](https://ibm.com)
895-
* [joesepi](https://github.com/joesepi) -
896-
**Joe Sepi** <<[email protected]>> (he/him)
897-
* [mhdawson](https://github.com/mhdawson) -
898-
**Michael Dawson** <<[email protected]>> (he/him)
899-
900859
## License
901860

902861
Node.js is available under the

RELEASE.md

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# Node.js Releases
2+
3+
<!-- TODO(joyeecheung): merge it into Release#readme? -->
4+
5+
Node.js releases are produced in three different release types: Current, LTS, and Nightly.
6+
7+
Current and LTS releases follow [semantic versioning](https://semver.org).
8+
A member of the Release Team [signs](#release-keys) each Current and LTS release.
9+
For more information, see the [Release README](https://github.com/nodejs/Release#readme).
10+
11+
## Current
12+
13+
Under active development. Code for the Current release is in the
14+
branch for its major version number (for example,
15+
[v22.x](https://github.com/nodejs/node/tree/v22.x)). Node.js releases a new
16+
major version every 6 months, allowing for breaking changes. This happens in
17+
April and October every year. Releases appearing each October have a support
18+
life of 8 months. Releases appearing each April convert to LTS (see below)
19+
each October.
20+
21+
The latest Current releases are available in <https://nodejs.org/download/release/latest>.
22+
23+
## LTS
24+
25+
Releases that receive Long Term Support, with a focus on stability
26+
and security. Every even-numbered major version will become an LTS release.
27+
LTS releases receive 12 months of _Active LTS_ support and a further 18 months
28+
of _Maintenance_. LTS release lines have alphabetically-ordered code names,
29+
beginning with v4 Argon. There are no breaking changes or feature additions,
30+
except in some special circumstances.
31+
32+
LTS releases are available in <https://nodejs.org/download/release/>. They have
33+
the `{ "lts": true }` property in [the index](https://nodejs.org/download/release/index.json).
34+
The `latest-$codename` directory is an alias for the latest release from an LTS line. For example,
35+
the [latest-hydrogen](https://nodejs.org/download/release/latest-hydrogen/)
36+
directory contains the latest Hydrogen (Node.js 18) release.
37+
38+
## Nightly
39+
40+
Code from the Current branch built every 24-hours when there are changes. Use with caution.
41+
42+
The nightly releases are available in <https://nodejs.org/download/nightly/>.
43+
Each directory and filename includes the version (e.g., `v22.0.0`),
44+
followed by the UTC date (e.g., `20240424` for April 24, 2024),
45+
and the short commit SHA of the HEAD of the release (e.g., `ddd0a9e494`).
46+
For instance, a full directory name might look like `v22.0.0-nightly20240424ddd0a9e494`.
47+
48+
## Verifying binaries
49+
50+
Download directories contain a `SHASUMS256.txt.asc` file with SHA checksums for the
51+
files and the releaser PGP signature.
52+
53+
You can get a trusted keyring from nodejs/release-keys, e.g. using `curl`:
54+
55+
```bash
56+
curl -fsLo "/path/to/nodejs-keyring.kbx" "https://github.com/nodejs/release-keys/raw/HEAD/gpg/pubring.kbx"
57+
```
58+
59+
Alternatively, you can import the releaser keys in your default keyring, see
60+
[Release keys](./README.md#release-keys) for commands to how to do that.
61+
62+
Then, you can verify the files you've downloaded locally
63+
(if you're using your default keyring, pass `--keyring="${GNUPGHOME:-~/.gnupg}/pubring.kbx"`):
64+
65+
```bash
66+
curl -fsO "https://nodejs.org/dist/${VERSION}/SHASUMS256.txt.asc" \
67+
&& gpgv --keyring="/path/to/nodejs-keyring.kbx" --output SHASUMS256.txt < SHASUMS256.txt.asc \
68+
&& shasum --check SHASUMS256.txt --ignore-missing
69+
```

0 commit comments

Comments
 (0)