Skip to content

Discovery: Repodata v3 Backwards Compatibility for Wheels #15380

@danyeaw

Description

@danyeaw

Checklist

  • I added a descriptive title
  • I searched open requests and couldn't find a duplicate

What is the idea?

Determine if repodata v3 format, proposed in the draft CEP, can be backwards compatible with existing clients. Can older clients parse v3 files by ignoring new fields for wheels (extras, conditional dependencies, flags) while still using basic package metadata?

Why is this needed?

We want to make use of the repodata v3 format for supporting extras and conditionals when extending the repodata to include wheels, so this discovery should be focused on that use case.

Repodata v3 adds extras, conditional dependencies (pywin32; if __win), and flags. Currently, conda blocks any repodata_version > 2 with a CondaUpgradeError, which means deploying v3 would break all existing clients immediately. Backwards compatibility would enable gradual adoption without breaking users.

What should happen?

Investigate whether current parsing can handle v3 gracefully. For MatchSpec parsing - conditional dependencies extend syntax with ; if <CONDITION> in the depends list. Can existing parsers handle this or will they fail? Also verify solver compatibility and test with sample v3 repodata files.

Additional Context

No response

Metadata

Metadata

Assignees

Labels

source::contributorcreated by a frequent contributorspikeissue is for doing research work or prototyping; outcome is optional and not required

Type

No type

Projects

Status

Done 💪🏾

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions