Status 
Version 
Issue(s) 
Sources 
Developer(s)Stephen Connolly


Version number policy

Apache Maven components and plugins will follow a semver-ish version number policy.

Version lines

In order to limit the size of the code base that we need to maintain, we will adopt the following policy for version lines. If there are issues identified in a Maven component then those issues will be fixed in active versions only. There are three types of version lines:

 

Maven Core

The development line is the highest MAJOR.MINOR

There can be at most two maintenance lines:

The security only lines are any remaining MAJOR.MINOR that is within 18 months since the first release of that line.

 

The development line of Maven core should require a minimum JRE version that is no older than 18 months after the end of Oracle's public updates for that JRE version at the time that the first version of the development line was released, but may require a higher minimum JRE version if other requirements dictate a higher JRE version

e.g. Maven core 3.2.1 (the first release of the 3.2.x line) was released in Feb 2014 and JRE 1.6 was EOL in Feb 2013 thus the minimum version of the JRE for the Maven 3.2.x line could be 1.6. Any new Maven release lines after Aug 2014 will have a minimum JRE requirement of 1.7 (or higher if other technical requirements dictate)

Maven Plugins

The development line is the highest MAJOR.MINOR

The maintenance line is the previous MAJOR.MINOR

 The security only line is the previous MAJOR.MINOR to the maintenance line if within 18 months since the first release of that line.


The development line of a Maven plugin should require a version of Maven that is at most 36 months since the first release of that line but may require a newer version if the API/JRE requirements dictate a newer version.

Maven Shared Components

The development line is the highest MAJOR.MINOR

Shared components maintenance line needs are determined by the Maven Core and Maven Plugin lines that depend on the shared components.

i.e. if a shared component is used by both Maven Core and two Maven Plugins, the maintenance lines follow from the development and maintenance lines of those plugins.

e.g. Maven Wagon is used by Maven Core and the Maven Site Plugin. If

Then

If a bug fix to Site Plugin 6.1 requires an upgrade of Wagon from the 5.4 line then that bug fix is out of scope for back-porting. The only changes to Site Plugin's 6.1.x dependency on Wagon must stay in the range [5.4,5.5) as moving out of this range would represent an increase in functionality and is thus out of scope for a maintenance line.

Shared component security only line needs are determined by the Maven Core and Maven Plugin lines that depend on the shared components.