What does .RELEASE mean in Spring Framework versions

The ".RELEASE" suffix was used in older Spring releases, but was dropped in 2020. It indicates that the version is the release version of the software, rather than a pre-release version.

Pre-2020 naming scheme

Per this (now-defunct) documentation, the pre-2020 naming scheme was {major}.{minor}.{micro}.{release_type}, where release_type was one of the following:

  • BUILD-SNAPSHOT: A release currently in development. Such artifacts are typically produced by a nightly CI build, such as SPR-TRUNKSNAPSHOT or INT-NIGHTLY, and deployed to http://maven.springframework.org/snapshot.
  • M#: A 'milestone' release. Such artifacts are usually produced manually, following the release process and are deployed to http://maven.springframework.org/milestone.
  • RC#: A 'GA release candidate'. Such artifacts are produced with the exact same release process as milestones, and are also deployed to http://maven.springframework.org/milestone.
  • RELEASE: A GA (Generally Available) release. Again, produced using the same release process. In this case, deployment happens (a) to http://maven.springframework.org/release and (b) to Maven Central.

Current naming scheme

The current naming scheme used for new Spring releases is MAJOR.MINOR.PATCH[-MODIFIER], with no modifier used for release versions.

  • MODIFIER is an optional modifier such that <COUNT> is an incremented 1-based number:
    • For milestones, we will use M<COUNT> .
    • For release candidates, we will use RC<COUNT> .
    • For snapshots, we will use -SNAPSHOT. Note that .BUILD that was present in our previous scheme has been removed.
    • For releases, there will be no modifier.

Naming scheme comparison

Release Type Current Previous
Snapshot 5.2.0-SNAPSHOT 5.2.0.BUILD-SNAPSHOT
Milestone 5.2.0-M1 5.2.0.M1
Release Candidate 5.2.0-RC1 5.2.0.RC1
Release 5.2.0 5.2.0.RELEASE