Skip to main content

CEP 25 - Versioning of Existing conda Standards

Title CEP 25 - Versioning of Existing conda Standards and Specs
Status Approved
Author(s) Matthew R. Becker <becker.mr@gmail.com>
Created Mar 14, 2025
Updated Mar 31, 2025
Discussion https://github.com/conda/ceps/pull/119
Implementation NA

Abstract

As the conda ecosystem is being standardized and evolving, the existing standards (in many cases only documented by the code that implements them) have been called v1 in some cases (e.g., .tar.bz2 versus .conda) and v0 in others (e.g., v0 versus v1 recipe formats). This differing nomenclature is confusing. In this CEP, we resolve this issue by establishing conventions on how to number existing and future conda standards.

Specification

All existing conda standards which satisfy the following conditions

  • are documented formally in CEPs or are only effectively documented through code implementations
  • have not been superseded by a newer standard labeled v1

MUST be versioned at v1.

The numbering of build recipe formats is exempt from this CEP due to the fact that the new recipe format in CEP 14 specified schema_version: 1.

Standards MUST use a version specifier that consists only of numbers and a single period ., has a major version, and has at most a minor version (i.e. matches the regex ^[0-9]+($|\.[0-9]+$)). A v MAY be prepended for clarity, but MUST be removed before comparing versions. Version comparisons and ordering MUST follow conda's version comparison and ordering conventions.

Backwards Compatibility

The v1 versioning is fully backwards compatible with all current standards, except recipe formats which have been explicitly excluded.

All CEPs are explicitly CC0 1.0 Universal.