Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

All API versions of a given meta-release shall be aligned to the Commonalities and Identity and Consent Management releases that are part of that same meta-release.

...

API

...

version tag

An API version

...

The following picture gives an overview of the API versions that an API can go through from inception to release.

Image Removed

The following section describe the details on naming, release assets, and the steps to produce a public-release API version as part of a meta-release.

...

tag is a GitHub tag placed on the main or a selected branch to allow locating the corresponding API version in the repository.

API version release package

An API version release package is created using the GitHub release mechanism. It consists in a zip file that has a snapshot of the API Sub-project repository with the content located using the API version's tag.

Releasing API versions

API version throughout the release process

During the development, release preparation and release of an API version,

  • multiple intermediate pre-releases for initial, alpha or release-candidate API versions may be created, and
  • a final public-release API version is created.

...

The following picture gives an overview of the API versions that an API can go through from inception to release.

Image Added

The following section describe the details on naming, release assets, and the steps to produce a public-release API version as part of a meta-release.

API release assets & naming conventions

For a given API version, its release consists in creating the following set of API release assets :

  • the API version in the OAS version field in the API definition file
  • the API major version in the URL defined in the API definition file
  • the API version GitHub tag on that branch api-x.y.z, with extension as applicable
  • a GitHub release package, tagged "latest" or "pre-release", containing the API Sub-project repo for the branch

In case of multiple APIs managed in the same API Sub-project, each API shall be developed in a separate folder.

Release are handled per API, and the API name is part of the tags names to distinguish releases of APIs in the same API family.

To create an API version (pre-)release, the API (pre-)release assets need to be created with naming rules as indicated in the below table.

...

GitHub tag

(api = API name)

...

GitHub release package (name = GitHub tag)

...

 none

-alpha.m

-rc.n

...

v0.y.z (exception)

v0alpham

v0rcn

...

api-0.y.z

api-0.y.z-alpha.m

api-0.y.z-rc.n

...

optional

...

optional

...

with naming as indicated in the below table.

API version typeAPI version (OAS file)API version extension (OAS file)API version in URL (OAS file)

API version tag (GitHub)

(api = API name)

API version release package (name = API version tag) (GitHub)

API version release package tag
initial (x=0)0.y.z

 none

-alpha.m

-rc.n

v0.y.z (exception)

v0alpham

v0rcn

api-0.y.z

api-0.y.z-alpha.m

api-0.y.z-rc.n

optional

optional [ pre-release ]
alphax.y.z-alpha.mvxalphamapi-x.y.z-alpha.m

optional

optional [ pre-release ] 
release-candidate x.y.z-rc.nvxrcnapi-x.y.z-rc.nmandatorypre-release
public-releasex.y.znonevxapi-x.y.zmandatorylatest
work-in-progresswipN/AvwipN/AN/AN/A

In the above API release asset table, the column headers mean the following:

  • the API version (OAS file) is the version field of the API OAS definition file
  • the API version extension (OAS file) is the extension that can be added to the version field of the API OAS definition file
  • the API version in URL (OAS file) is the a "v" followed by the API major version number placed in the URL field of the API OAS definition file
  • the API version tag is the GitHub tag put on the main or update branch allowing to retrieve the API version, e.g. api-x.y.z, with extension as applicable
  • the API version release package, tagged "pre-release" or "latest", containing the zipped version of the whole API Sub-project repository.

In case of multiple APIs managed in the same API Sub-project, each API shall be developed in a separate folder.

Release are handled per API, and the API name is part of the tags names to distinguish releases of APIs in the same API family.

To create an API version (pre-)release, the API (pre-)release assets need to be created with naming rules as indicated in the below table.

This is illustrated in the following figure:

...

  • With the exception of initial API versions, all pre-release API versions must have an API extension.
  • An initial or alpha API version may have a GitHub release package, which must have the "pre-release" tag
  • A release-candidate and public-release API version must have a GitHub release package
  • Only the latest release packages of an API version may have the tag "latest".

Exception cases

Usually an API an API will go through the above described evolution API version steps.

However, there are some exceptions that may occur and are suggested to be handled as described below.

Image Removed

steps in the evolution of its version.

However, for For initial API versions (with x=0), there are some exception cases that may occur. The below table provides guidelines on how to handled the API version in these cases:

API versionnext API version for breaking change

...

next API version for non-breaking change
api-0.y.z

...

...

api-0.y

...

+1.0

api-0.y.z+1

...

...

api-

...

0.y.z–alpha.m

...

api-

...

0.y+1.

...

0-

...

alpha.

...

1

api-

...

0.y.z+1

...

-alpha.1

...

api-

...

0.y.

...

z-rc.n

api-

...

0.y+1.0-alpha.1

...

api-x.y+1.0-alpha.1


Special case: initial API versions (0.y.z)

...