Versions Compared

Key

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

...

This policy was approved by the TSC on 1/16/19

This policy was updated with TSC approval on 6/19/19.

Release Cycle / Cadence

The EdgeX Foundry community publishes new releases of EdgeX on a regular cadence, enabling the community, businesses and developers to plan their roadmaps with certainty of access to new features.

Releases of the collection of central or core EdgeX micro services get a development codename (example:  ‘Edinburgh’). EdgeX micro services that are part of this collection include:

...

EdgeX's versioning scheme is based on semantic versioning (https://semver.org/).  However, the project may, at times, decide to release a major version due to significance-based changes or marketing decision.  

The EdgeX codenamed release should not be confused with MAJOR version!  Per semantic versioning definition, a MAJOR version is typically a significant milestone in the product that includes key features or updates and may include non-backward compatible changes (features, APIs, etc).  Not all of the EdgeX codenamed releases completed each six months will be “significant” or contain “non-backward compatible changes”. See major, minor and patch version information below.
Note, it is not determined whether the new Application Services will be part of the EdgeX release or live as independent tools and services (as defined below).  TSC decision is pending.

Independent Tools and Services Release Cycle/Cadence

Some EdgeX services (and tooling) have a separate release cycle.  The Device Service SDKs and , Device Services, Application Services and Application Functions SDK, for example, are not necessarily released with the EdgeX release.  Which services are allowed to have their own release cycles is at the discretion of the EdgeX Technical Steering Committee (TSC).  Services or tools that have their own release cycle may choose to release at the same time as the EdgeX release (the code named release) but are not required to and the version of these services or tools may not be the same as the versions of the services and tools associated to the EdgeX release.  Today, the following tools and services are released on independent release cycles:

  • Device Service SDKs (Go and C)

  • Device Services

  • Application Functions SDK (Go)

  • Application Services

When appropriate, a working group chairperson requests permission to release these tools and services.  The release manager, at the request of the working group chairperson, are responsible for the release of these tools and services.  Again these independent tools and services are versioned by semantic versioning to indicate what is included with the release (and specifically whether it includes compatible or non-compatible features and APIs).  Disagreements with a release manager decision about when to release is adjudicated by the TSC.

While the release cycle for these independent services varies from the EdgeX release, the rules on major, minor, and patch releases and versioning (as discussed below) still apply.   As an example, the SDK decides to release 1.0 with Edinburgh. There are no other changes to the SDK for two years. SDK remains 1.0 during that period. After 2 years, when EdgeX “Indiana” is released at version 5.0, the SDK decides to also make a minor version release.  They release 1.1 under semantic versioning rules (backward compatible, etc). The SDK (and DS) are separate from EdgeX release and therefore the versions may not coincide. They can elect to release and version at the same time as EdgeX release, but they are not part of EdgeX release by definition.

...