This is a draft working document that is still to be approved by the TSC and adopted by the community.
Updated 2/10 based on comments from Tony Espy
LTS is an abbreviation for “Long Term Support”.
STS is an abbreviation for “Short Term Support”.
EdgeX Foundry plans to produce and release a new named version (like Delhi, Edinburgh, Fuji, etc.) of EdgeX every six (6) months. Named versions will also have a version number in the form of X.Y (example 1.0 or 2.1). Depending on the features and compatibility with the prior release, the named release may be a major or minor release (see releases, versions and patches), but the semi-annual release schedule gives you, our user community, assurance that new EdgeX features and capabilities are delivered at least every six months.
EdgeX Foundry offers a new long-term support (LTS) release every two (2) years. The TSC will select the release (major or minor - see Releases, Versions & Patches for definition of releases) for the LTS release. When an LTS is released, new branches are created for the LTS release code allowing its independent maintenance and allowing development of EdgeX to continue on the projects' master branches.
No new functionality will be added to an LTS release. Only significant security and bug fixes will be added to the LTS. WG chairpersons, in consultation with the release manager, will coordinate work on LTS bug fixes and make determinations on new LTS minor releases or patches. Disagreements on whether a bug fix should be made on an LTS release and/or on the need for a new LTS minor release or patch will be adjudicated by the EdgeX TSC. An LTS release is meant to be a stable release for which organizations typically base products and for which the EdgeX community offers “support” as defined below.
Tony E has recommended the following: "to simplify things, we should publish a patch release once a quarter for LTS releases. The TSC also reserves the right to release patch releases on-demand if/when security or critical bugs are discovered."
The user community (developers) is encouraged to use the latest EdgeX development releases when creating new products and services. Businesses and organizations are encouraged to use the latest LTS release when releasing their own products and services on top of or including EdgeX. The EdgeX Foundry community makes announcements on its website about upcoming release end of life LTS events. Users are encouraged to watch the EdgeX Foundry web site and Wiki for support notifications. The Releases page of the EdgeX Wiki will always provide the latest status and news regarding EdgeX LTS releases.
Unless otherwise determined by the EdgeX TSC, any EdgeX LTS release will reach end of its maintenance commitment ("end of life") after five (5) years. This is newly added - does 5 years feel right?
Support is defined as:
- Community members best effort and development priority to fix a security or system bug or major flaw (as determined by the project’s appropriate working group chairperson(s) in consultation with the release manager) as soon as possible.
- Availability of the source code, test code and artifacts, and program artifacts such as micro service executables, shared libraries, container images (Docker), packages (snaps), etc. through the support period that were created and made available at the time of the release.
- Availability of the platform documentation through the support period that were created to explain and operate the release and all associated artifacts that were made available at the time of the release.
- Subject to legal restrictions, make available any supporting 3rd party component used by EdgeX as part of the release. Examples include MongoDB, Consul, Kong, Vault, any 3rd party library, etc. Where possible, EdgeX will provide archived binaries of the 3rd party components (MongoDB, Redis, Consul, Kong, Vault, etc.) used with LTS versions of EdgeX. Where possible, EdgeX will also keep an archive snapshot of 3rd party source code used in the creation of LTS versions of EdgeX (ex: code in the vendor directory of Go Lang repositories).
What is the cost of this? Can we set up an area of Nexus for archives?
- EdgeX will not offer support around 3rd party products. For example, EdgeX will not fix bugs or address issues directly associated to the 3rd party code like Kong, Vault, Consul, etc.
Additional professional support (LTS or STS) may be provided by other members of the EdgeX Foundry community. The EdgeX Foundry project and Linux Foundation can provide connections to providers as necessary.