Release adoption schedule

Issue sheet

Document location /nhsbsa-digital-playbook/technologies/tech-release-adoption-schedule/
Title Release adoption schedule
Author Software Development Lead
Issued to DDaT
Last reviewed
Next review due

Revision history

Version Date Amended by Approved by Details
1.0 PT Technical Design Authority Initial release

To manage change of our runtimes and downstream services we maintain a release adoption schedule based on these phases:

PENDING
Pending release
ASSESS
Assess the impact of migrating.
Teams may choose to adopt if they understand and accept any risks involved.
ADOPT
Adopt this version.
Teams should schedule migration based on the adoption date.
DEPRECATE
Move off from this version.
When the next version is set for adoption, previous versions will deprecate and teams should migrate forward.
DECOMMISSION
Do not use this version.
The decommission date is a final deadline for moving off this version.
Schedules contain information on decommissioned versions for visibility.

Node.js

Node.js projects should use NVM to manage Node versions in development.
Include a .nvmrc file in the repository to specify the Node.js version in source code.

How we work out the adoption schedule for Node.js

We follow the Node.js release schedule.

ASSESS
on initial release
ADOPT
at active LTS start (6 months after initial release)
DECOMMISSION
by end of life
VersionCurrent phaseRelease dateAdopt fromDecommission date
24 PENDING 22 Apr 2025 28 Oct 2025 30 Apr 2028
22 ADOPT 23 Apr 2024 29 Oct 2024 30 Apr 2027
20 DEPRECATE 18 Apr 2023 24 Oct 2023 30 Apr 2026
18 DEPRECATE 19 Apr 2022 25 Oct 2022 30 Apr 2025
16 DECOMMISSION 20 Apr 2021 26 Oct 2021 11 Sept 2023
14 DECOMMISSION 21 Apr 2020 27 Oct 2020 30 Apr 2023
12 DECOMMISSION 23 Apr 2019 21 Oct 2019 30 Apr 2022

AWS Lambda - Node.js

How we work out the adoption schedule for Node.js Lambdas

AWS Lambdas run on platforms managed by Amazon. They publish release dates and a deprecation policy.

ASSESS
on AWS release
ADOPT
6 months after AWS release
DECOMMISSION
by AWS Phase 1 deprecation
VersionCurrent phaseRelease dateAdopt fromDecommission date
v22 PENDING 1 Dec 2024 31 May 2025 -
v20 ADOPT 14 Nov 2023 14 May 2024 -
v18 DEPRECATE 18 Nov 2022 18 May 2023 31 Jul 2025
v16 DECOMMISSION 11 May 2022 11 Nov 2022 12 Jun 2024
v14 DECOMMISSION 27 Jan 2021 27 Jul 2021 27 Nov 2023
v12 DECOMMISSION 18 Nov 2019 18 May 2020 31 Mar 2023

Java

Java projects define the source and target Java version in the Maven pom.xml file.
Teams may use a Java Version Manager such as JEnv to manage Java versions in development.

How we work out the adoption schedule for Java

We follow the Java SE support roadmap.

Our standard builds use the Temurin Java runtime which maintains its own release roadmap.

ASSESS
on Java SE General Availability (GA) date
ADOPT
6 months after Java SE GA date
DECOMMISSION
by Java SE premier support end date
VersionCurrent phaseRelease dateAdopt fromDecommission date
25 PENDING 1 Sept 2025 1 Mar 2026 1 Sept 2030
21 ADOPT 1 Sept 2023 1 Mar 2024 1 Sept 2028
17 DEPRECATE 1 Sept 2021 1 Mar 2022 1 Sept 2026
11 DECOMMISSION 1 Sept 2018 1 Mar 2019 1 Sept 2023
8 DECOMMISSION 1 Mar 2014 1 Sept 2015 1 Mar 2022

Spring Boot

How we work out the adoption schedule for Spring Boot

We follow the Spring Boot support roadmap.
Spring Boot uses a 6 month release cycle between minor versions with a 3 month overlap for Open Source Software (OSS) support.

ASSESS
on initial release
ADOPT
2 months after initial release
DECOMMISSION
by end of OSS support date
VersionCurrent phaseRelease dateAdopt fromDecommission date
3.4.x ASSESS 21 Nov 2024 21 Jan 2025 21 Nov 2025
3.3.x ADOPT 23 May 2024 23 Jul 2024 23 May 2025
3.2.x DECOMMISSION 23 Nov 2023 23 Jan 2024 23 Nov 2024
3.1.x DECOMMISSION 18 May 2023 18 Jul 2023 18 May 2024
3.0.x DECOMMISSION 24 Nov 2022 24 Jan 2023 24 Nov 2023
2.7.x DECOMMISSION 19 May 2022 19 Jul 2022 18 Nov 2023
2.6.x DECOMMISSION 17 Nov 2021 17 Jan 2022 24 Nov 2022
2.5.x DECOMMISSION 20 May 2021 20 Jul 2021 19 May 2022
2.4.x DECOMMISSION 12 Nov 2020 12 Jan 2021 18 Nov 2021
2.3.x DECOMMISSION 15 May 2020 15 Jul 2020 20 May 2021
2.2.x DECOMMISSION 16 Oct 2019 16 Dec 2019 16 Oct 2020
2.1.x DECOMMISSION 30 Oct 2018 30 Dec 2018 30 Oct 2019
2.0.x DECOMMISSION 1 Mar 2018 1 May 2018 1 Mar 2019
1.5.x DECOMMISSION 30 Jan 2017 30 Mar 2017 6 Aug 2019

Spring Cloud

How we work out the adoption schedule for Spring Cloud

We follow the Spring Cloud Supported Version roadmap.

There is often a delay between Spring Boot releases and compatible Spring Cloud versions. This may impact the ability to keep up to date with Spring Boot and is unavoidable.

ASSESS
on initial release
ADOPT
2 months after initial release
DECOMMISSION
by end of OSS support date (3 years from the major release date and 12 months from minor release date)
VersionCurrent phaseRelease dateAdopt fromDecommission date
2024.0 (Moorgate) PENDING 5 Dec 2024 5 Feb 2025 1 Dec 2026
2023.0 (Leyton) ADOPT 6 Dec 2023 6 Feb 2024 1 Dec 2026
2022.0 (Kilburn) DEPRECATE 16 Dec 2022 16 Feb 2023 16 Dec 2025
2021.0 (Jubilee) DEPRECATE 1 Dec 2021 1 Feb 2022 1 Dec 2024
2020.0 (ilford) DECOMMISSION 22 Dec 2020 22 Feb 2021 22 Dec 2023

AWS Lambda - Java

How we work out the adoption schedule for Java Lambdas

AWS Lambdas run on platforms managed by Amazon. They publish release dates and a deprecation policy.

ASSESS
on AWS release
ADOPT
6 months after AWS release
DECOMMISSION
by AWS Phase 1 deprecation
VersionCurrent phaseRelease dateAdopt fromDecommission date
21 ADOPT 16 Nov 2023 16 May 2024 -
17 DEPRECATE 27 Apr 2023 27 Oct 2023 -
11 DEPRECATE 18 Nov 2019 18 May 2020 -
8 (Amazon Linux 2) DEPRECATE 1 Jun 2015 1 Dec 2016 -
8 (Amazon Linux) DECOMMISSION 1 Jun 2015 1 Dec 2016 8 Feb 2024

Ruby

Ruby is a deprecated language for use in the NHSBSA. Existing projects using Ruby should maintain versions in accordance with this schedule.

Ruby projects should use rbenv to manage Ruby versions.
Include a .ruby-version file in the repository to specify the Ruby version in source code.

How we work out the adoption schedule for Ruby

We follow the Ruby release schedule.

Since Ruby 2.1, a new major version of Ruby has been released every year on December 25th, and EOLed 3 years, 3 months later.

ASSESS
on release date
ADOPT
6 months after release date
DECOMMISSION
by end of life date
VersionCurrent phaseRelease dateAdopt fromDecommission date
3.3 ADOPT 25 Dec 2023 25 Jun 2024 31 Mar 2027
3.2 DEPRECATE 25 Dec 2022 25 Jun 2023 31 Mar 2026
3.1 DEPRECATE 25 Dec 2021 25 Jun 2022 31 Mar 2025
3 DECOMMISSION 25 Dec 2020 25 Jun 2021 31 Mar 2024
2.7 DECOMMISSION 25 Dec 2019 25 Jun 2020 31 Mar 2023

PostgreSQL

How we work out the adoption schedule for PostgreSQL

We follow the PostgreSQL versioning policy.

ASSESS
on release date
ADOPT
6 months after release date
DECOMMISSION
by final Release date
VersionCurrent phaseRelease dateAdopt fromDecommission date
17 ASSESS 26 Sept 2024 26 Mar 2025 8 Nov 2029
16 ADOPT 14 Sept 2023 14 Mar 2024 9 Nov 2028
15 DEPRECATE 13 Oct 2022 13 Apr 2023 11 Nov 2027
14 DEPRECATE 30 Sept 2021 30 Mar 2022 12 Nov 2026
13 DEPRECATE 24 Sept 2020 24 Mar 2021 13 Nov 2025
12 DECOMMISSION 3 Oct 2019 3 Apr 2020 14 Nov 2024
11 DECOMMISSION 18 Oct 2018 18 Apr 2019 9 Nov 2023
10 DECOMMISSION 5 Oct 2017 5 Apr 2018 10 Nov 2022
9.6 DECOMMISSION 29 Sept 2016 29 Mar 2017 11 Nov 2021

Improve the playbook

If you spot anything factually incorrect with this page or have ideas for improvement, please share your suggestions.

Before you start, you will need a GitHub account. Github is an open forum where we collect feedback.