diff --git a/doc/releases.md b/doc/releases.md index 59296fbd937788..b20bf3662e3f8c 100644 --- a/doc/releases.md +++ b/doc/releases.md @@ -32,6 +32,7 @@ official release builds for Node.js, hosted on . * [17. Cleanup](#17-cleanup) * [18. Announce](#18-announce) * [19. Celebrate](#19-celebrate) +* [LTS Releases](#lts-releases) * [Major Releases](#major-releases) ## Who can make a release? @@ -672,6 +673,38 @@ Ping the IRC ops and the other [Partner Communities][] liaisons. _In whatever form you do this..._ +## LTS Releases + +### Marking a Release Line as LTS + +To mark a release line as LTS, the following changes must be made to +`src/node_version.h`: + +* The `NODE_MINOR_VERSION` macro must be incremented by one +* The `NODE_PATCH_VERSION` macro must be set to `0` +* The `NODE_VERSION_IS_LTS` macro must be set to `1` +* The `NODE_VERSION_LTS_CODENAME` macro must be set to the codename selected +for the LTS release. + +For example: + +```diff +-#define NODE_MINOR_VERSION 12 +-#define NODE_PATCH_VERSION 1 ++#define NODE_MINOR_VERSION 13 ++#define NODE_PATCH_VERSION 0 + +-#define NODE_VERSION_IS_LTS 0 +-#define NODE_VERSION_LTS_CODENAME "" ++#define NODE_VERSION_IS_LTS 1 ++#define NODE_VERSION_LTS_CODENAME "Erbium" + +-#define NODE_VERSION_IS_RELEASE 0 ++#define NODE_VERSION_IS_RELEASE 1 +``` + +The changes must be made as part of a new semver-minor release. + ## Major Releases The process for cutting a new Node.js major release has a number of differences