Artifacts published under the org.scalameta
Maven groupId must belong to one
of the following categories:
- "Releases", i.e. artifacts that have Maven versions that follow the
x.y.z
format, wherex
is called "major version",y
is called "minor version" andz
is called "patch version". - "Prereleases", i.e. artifacts that have Maven versions that follow the
x.y.z-suffix
format, wherex
,y
andz
are called the same as above, andsuffix
is an arbitrary suffix created by a human or generated by a tool. - All other Maven versions are prohibited.
"Major releases" are artifacts published as x.0.0
:
- An artifact must be released as
x.0.0
if and only if the difference between the current Scalameta code and the Scalameta code that has been published as{x-1}.0.0
contains changes that don't satisfy the compatibility policy. - Major releases require a milestone cycle:
- At least one
x.0.0-M1
prerelease must be published before it is allowed to publish anx.0.0
release. - At least 168 hours (7 calendar days) must pass after the last
x.0.0-suffix
prerelease before it is allowed to publish anx.0.0
release.
- At least one
"Minor releases" are artifacts published as x.y.0
:
- An artifact must be released as
x.y.0
if and only if the difference between the current Scalameta code and the Scalameta code that has been published asx.0.0
contains changes to the public API or the SemanticDB schema that don't require a major release. - Minor releases do not require a milestone cycle and can be published at any time.
"Patch releases" are artifacts published as x.y.z
:
- An artifact must be released as
x.y.z
if and only if the difference between the current Scalameta code and the Scalameta code that has been published asx.y.0
does not contain changes to the public API or the SemanticDB schema. - Patch releases do not require a milestone cycle and can be published at any time.
"Prereleases" are artifacts published as x.y.z-suffix
:
- An artifact may be published as
x.y.z-suffix
if and only if:- There exists an
x.y.z
release, and - There exist neither
{x+1}.0.0
, norx.{y+1}.0
, norx.y.{z+1}
releases. suffix
is in compliance with semantic versioning.suffix
does not equalSNAPSHOT
.
- There exists an
- Prereleases do not have to satisfy any compatibility requirements.
- Prereleases do not require a milestone cycle and can be published at any time.