LTS

Long Term Support

<a id="lts"></a>

Fastify’s Long Term Support (LTS) is provided according to the schedule laid out in this document:

  1. Major releases, “X” release of semantic versioning X.Y.Z release versions, are supported for a minimum period of six months from their release date. The release date of any specific version can be found at https://github.com/fastify/fastify/releases.
  2. Major releases will receive security updates for an additional six months from the release of the next major release. After this period we will still review and release security fixes as long as they are provided by the community and they do not violate other constraints, e.g. minimum supported Node.js version.
  3. Major releases will be tested and verified against all Node.js release lines that are supported by the Node.js LTS policy within the LTS period of that given Fastify release line. This implies that only the latest Node.js release of a given line is supported.
  4. In addition to Node.js runtime, major releases of Fastify will also be tested and verified against alternative runtimes that are compatible with Node.js. The maintenance teams of these alternative runtimes are responsible for ensuring and guaranteeing these tests work properly.
    1. N|Solid, maintained by NodeSource, commits to testing and verifying each Fastify major release against the N|Solid LTS versions that are current at the time of the Fastify release. NodeSource guarantees that Fastify will be compatible and function correctly with N|Solid, aligning with the support and compatibility scope of the N|Solid LTS versions available at the time of the Fastify release. This ensures users of N|Solid can confidently use Fastify.

A “month” is defined as 30 consecutive days.

Security Releases and Semver

As a consequence of providing long-term support for major releases, there are occasions where we need to release breaking changes as a minor version release. Such changes will always be noted in the release notes.

To avoid automatically receiving breaking security updates it is possible to use the tilde (~) range qualifier. For example, to get patches for the 3.15 release, and avoid automatically updating to the 3.16 release, specify the dependency as "fastify": "~3.15.x". This will leave your application vulnerable, so please use with caution.

Schedule

<a id="lts-schedule"></a>

VersionRelease DateEnd Of LTS DateNode.jsNsolid(Node)
1.0.02018-03-062019-09-016, 8, 9, 10, 11
2.0.02019-02-252021-01-316, 8, 10, 12, 14
3.0.02020-07-072023-06-3010, 12, 14, 16, 18v5(18)
4.0.02022-06-08TBD14, 16, 18, 20v5(18), v5(20)

CI tested operating systems

<a id="supported-os"></a>

Fastify uses GitHub Actions for CI testing, please refer to GitHub’s documentation regarding workflow runners for further details on what the latest virtual environment is in relation to the YAML workflow labels below:

OSYAML Workflow LabelPackage ManagerNode.jsNsolid(Node)
Linuxubuntu-latestnpm14,16,18,20v5(18),v5(20)
Linuxubuntu-latestyarn,pnpm14,16,18,20v5(18),v5(20)
Windowswindows-latestnpm14,16,18,20v5(18),v5(20)
MacOSmacos-latestnpm14,16,18,20v5(18),v5(20)

Using yarn might require passing the --ignore-engines flag.