Skip to content

refactor: experimental repodata v3 - #2093

Merged
baszalmstra merged 2 commits into
conda:mainfrom
baszalmstra:experimental-v3
Feb 20, 2026
Merged

refactor: experimental repodata v3#2093
baszalmstra merged 2 commits into
conda:mainfrom
baszalmstra:experimental-v3

Conversation

@baszalmstra

Copy link
Copy Markdown
Collaborator

Description

This PR implements experimental support for a combination of:

The PR introduces the "v3" key in repodata (including shards) with subkeys "conda", "tar.bz2", and "whl". Things still missing are:

Caution

Breaking: The packages.whl key is no longer supported. Any repodata using packages.whl must migrate wheel records to v3.whl. This affects the experimental wheel support that was not yet widely deployed.

Note that the syntax for conditional dependencies has also changed in #2007 to follow the CEPs more closely.

@danyeaw This will affect your work.

How Has This Been Tested?

CI runs tests that should verify correctness.

AI Disclosure

  • This PR contains AI-generated content.
    • I have tested any AI-generated content in my PR.
    • I take responsibility for any AI-generated content in my PR.

Tools: Claude Code Opus 4.6 Extended

Checklist:

  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • I have added sufficient tests to cover my changes.

Remove the packages.whl top-level key from RepoData, Shard, and
PatchInstructions. Wheel packages should now be stored under
experimental_v3.whl instead.
@baszalmstra
baszalmstra requested a review from wolfv February 20, 2026 13:24
Add a new `v3` top-level key to repodata that uses extension-less
`ArchiveIdentifier` keys (name-version-build) with `tar.bz2`, `conda`,
and `whl` sub-keys. This enables a backwards-compatible path for
evolving the repodata format.

Changes:
- Add `ExperimentalV3Packages` struct with tar_bz2, conda, whl sub-maps
- Add `experimental_v3` field to `RepoData`, `Shard`, and `PatchInstructions`
- Add `DistArchiveIdentifier::new()` constructor
- Update sparse loader with `LazyV3Packages` for deferred parsing
- Update sharded subdir gateway to chain v3 packages
- Update `SubdirRunExportsJson` to look up v3 run exports
- Migrate test data from `packages.whl` to `v3.whl` format
@baszalmstra
baszalmstra merged commit f7e7c3c into conda:main Feb 20, 2026
20 checks passed
@github-actions github-actions Bot mentioned this pull request Feb 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants