diff --git a/cep-0044.md b/cep-0044.md index d40996b0..3beecca9 100644 --- a/cep-0044.md +++ b/cep-0044.md @@ -9,8 +9,8 @@ Jaime Rodríguez-Guerra <jaime.rogue@gmail.com> Created Feb 5, 2025 - Updated May 14, 2026 - Discussion https://github.com/conda/ceps/pull/111, https://github.com/conda/ceps/pull/165 + Updated Jul 15, 2026 + Discussion https://github.com/conda/ceps/pull/111, https://github.com/conda/ceps/pull/165, https://github.com/conda/ceps/pull/181 Implementation NA @@ -32,11 +32,11 @@ Instead of overloading the repodata documents with more package names (which cau ## Rationale -The chosen keyword in CEP 29 `MatchSpec`, keywords is `extras` given its popularity in Python packaging. For CEP 34 `info/index.json` records is `extra-depends` to avoid ambiguity with a hypothetical `extra-constraints`. +The chosen keyword in CEP 29 `MatchSpec`, keywords is `extras` given its popularity in Python packaging. For CEP 34 `info/index.json` records is `extra_depends` to avoid ambiguity with a hypothetical `extra_constraints`. ## Specification -The `info/index.json` dictionary of each conda artifact MUST allow a new field, `extra-depends`, the value of which MUST be a dictionary that maps the group names (expressed as a string that MUST match the regex `[a-z0-9_.+-]{1,64}`) to a list of `MatchSpec` strings encoding the optional dependencies. Since this is backwards incompatible behavior-wise, the `schema_version` value MUST be bumped to `3`. +The `info/index.json` dictionary of each conda artifact MUST allow a new field, `extra_depends`, the value of which MUST be a dictionary that maps the group names (expressed as a string that MUST match the regex `[a-z0-9_.+-]{1,64}`) to a list of `MatchSpec` strings encoding the optional dependencies. Since this is backwards incompatible behavior-wise, the `schema_version` value MUST be bumped to `3`. The `extras` field MUST also be exposed in recipe formats v1 and above, under the `requirements.extras` section (sibling to `build`, `host`, `run`, etc), that renders to the same schema (`dict[str, list[MatchSpec]]`). @@ -44,7 +44,7 @@ This new field must be selectable by `MatchSpec` syntax using the `extras` keywo ## Examples -A repodata record with `extra-depends`: +A repodata record with `extra_depends`: ```js { @@ -56,7 +56,7 @@ A repodata record with `extra-depends`: "depends": [ "main-dependency" ] - "extra-depends": { + "extra_depends": { "group-name": [ "extra-dependency>=2", "another-dependency>=1" @@ -104,4 +104,6 @@ All CEPs are explicitly [CC0 1.0 Universal](https://creativecommons.org/publicdo ## Changelog -- May 29, 2026: Fixed regex for valid extra group names. +- 2026-07-15: Changed `extra-depends` to `extras_depends` for consistency with other undescore-separated field names in `index.json`. +- 2026-05-29: Fixed regex for valid extra group names. +- 2026-05-14: Accepted.