From 8aac9d6766d499eb049fcafb667a96910977f45a Mon Sep 17 00:00:00 2001 From: Travis Hathaway Date: Tue, 2 May 2023 12:15:52 +0200 Subject: [PATCH] CEP 10: Conda Version Support (#25) Co-authored-by: Ken Odegard Co-authored-by: Brett Cannon Co-authored-by: Jannis Leidel --- cep-10.md | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 cep-10.md diff --git a/cep-10.md b/cep-10.md new file mode 100644 index 00000000..d1c1536b --- /dev/null +++ b/cep-10.md @@ -0,0 +1,94 @@ + + + + + + + + +
Title Conda Version Support
Status Accepted
Author(s) Travis Hathaway <thathaway@anaconda.com>
Created May 19, 2022
Updated March 23, 2023
Discussion https://github.com/conda-incubator/ceps/pull/25
Implementation NA
+ +## Abstract + +This CEP introduces an official version support policy to promote transparency and certainty +about which versions of conda are supported. The policy itself states that only the latest +released version of conda will be supported. Instead of patching previous releases, maintainers +will only focus their efforts on new and current releases. The implications of +this and how this looks will be outlined below. + +## Specification + +The latest version of conda will be the only officially supported version of conda. This relates +only to the conda project itself (i.e. conda-build is not included). This means that the only +time patch releases will be made are soon after a release goes out. For example, if a +bug is identified soon after releasing conda `23.11.0` and fixed, a subsequent `23.11.1` +release will be made. Patch releases for conda versions older than the current version +will not be made. + +When a user is using a version older than the current version, we make no guarantees that +patches for this release will be made. If bugs are encountered with this particular release, +users will be encouraged to upgrade to the most recent release. + +The conda project already commits to maintain backwards compatibility per CEP-9. +Any breaking changes will be announced ahead of time and go through our established +[deprecation schedule][deprecation-schedule]. + + +## Motivation + +The primary motivation for this CEP is setting clear expectations about how long +a particular version of conda will be supported. We do not expect our users to +always be running the latest version of conda, but we also do not want to give +users the impression that every version of conda will be supported indefinitely. +Therefore, we felt it necessary to outline with this CEP exactly which versions +will be supported and how. This not only helps set expectations for our users but +also eases our development efforts knowing we no longer have to support older versions +of conda. + +## Rationale + +For many projects (more information here: https://endoflife.date), either +the latest version is supported or the projects have a sliding window of time +for their supported versions. This window is a guarantee saying that the +version in question will be supported for a specific amount of time. For most who +use a version window, they further specify the types of fixes a version will receive +as it ages. + +For conda, we decided to not pursue a sliding window of supported versions. Instead, +we opted to only support the latest version. This was decided for a few reasons: + +1. This is effectively what conda has already been doing. Very rarely in conda's history has a bugfix or security patch been released for an older version of conda, the standing policy has been to ask users to upgrade to the latest version. +2. It's relatively easy for users to update conda, so regular updates are highly encouraged. +3. Supporting multiple versions at any one point in time is burdensome, time consuming, and distracts from other valuable work our maintainers can be focused on instead. + +## Alternatives + +- **Indefinitely support all conda versions ever:** not sustainable or practical for our community stakeholders. +- **Support a sliding window of versions:** also not sustainable or practical for our community stakeholders. + +## Resolution + +This was a standard, non-timed-out vote. + +- Among [Steering Council](https://github.com/conda-incubator/governance/blob/99471e2e05151f44fe31696677d45b05a428ca66/steering.csv) members there are 10 "yes", 0 "no", and no abstentions. +- No [Emeritus Steering](https://github.com/conda-incubator/governance/blob/99471e2e05151f44fe31696677d45b05a428ca66/emeritus.csv) member voted. + +This vote has reached quorum (10 + 0 = 10 which is at least 60% of 14). + +It has also passed since it recorded 10 "yes" votes and 0 "no" votes giving 10/10 which is greater than 60% of 14. + +## Reference + +Helpful websites and articles: + +- https://endoflife.date +- https://pip.pypa.io/en/latest/development/release-process/#supported-versions +- https://devguide.python.org/versions/ + + +## Copyright + +All CEPs are explicitly [CC0 1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/). + + +[deprecation-schedule]: https://github.com/conda-incubator/ceps/blob/main/cep-9.md \ No newline at end of file