Approved by with TSC consent on 4/6/22

From time to time, advances in the project will dictate that modules, services, documentation, code repository or other artifact of the project are no longer to be used going forward.

Deprecation

When a module, service or similar artifact is determined to be no longer part of a future release, it is “deprecated”.  Deprecation of any module, service, etc. requires the approval vote by the majority of the TSC.  When a module, service, etc. is voted to be deprecated by the TSC,

Deprecation is a warning to adopters that the module, service, etc. is nearing its end of life.

Deprecation does not mean that the artifact cannot be worked on.  Specifically, bug fixes, security issues, etc. may require the code of a deprecated artifact to continue to receive new issues/commits/PRs/etc.  Significant change, such as adding new features, of a deprecated item will generally be rejected.  Deprecation is an indication to the EdgeX community and adopters that the artifact is slated for eventual archival.  Continued use of, certainly continued reliance on, the artifact is discouraged.

Archival

When a module, service or similar artifact is officially retired and no longer to be used as part of the project, it is archived.  In most cases, a module, service, etc. is archived only after being deprecated for a period of time.

Archival of any module, service, etc. requires the approval vote by the majority of the TSC.  When a module, service, etc. is voted to be deprecated by the TSC,

Work on archived modules, services, etc. is prohibited.  An artifact that is part of the current LTS release cannot be archived until the support period expires.