Skip to content

Cache downloaded conda-forge-pinning versions - #202

Merged
Tobias-Fischer merged 1 commit into
RoboStack:masterfrom
Tobias-Fischer:pinning-cache
Nov 13, 2026
Merged

Tobias-Fischer merged 1 commit into
RoboStack:masterfrom
Tobias-Fischer:pinning-cache

Conversation

@Tobias-Fischer

Copy link
Copy Markdown
Contributor

download_pinning_package now keeps each conda-forge-pinning version in a cache, so it's only downloaded once. Rendering every distribution of a repository, or rendering again, reads it from there.

  • Where: $VINCA_CACHE_DIR, defaulting to ~/.cache/vinca (or $XDG_CACHE_HOME/vinca).
  • Key: the version. A version's contents don't change, so there's nothing to invalidate. An explicit artifact_url still downloads into a temporary directory, as before.
  • No partial entries: each version is extracted next to its cache entry and then renamed into place. A concurrent download of the same version is tolerated.
  • Test: test_download_pinning_package_downloads_a_version_once. All tests, ruff format --check and ruff check pass.

Effect for RoboStack: rendering humble's conda_build_config.yaml takes 2.0 s, then 0.6 s from the cache, with identical output. rs check renders all four distributions, which share one pinning version. The monorepo's current pin (74d1e85, before the move to py-rattler) took about 13 s per distribution.

🤖 Generated with Claude Code

A version's contents don't change, so download_pinning_package keeps it in
$VINCA_CACHE_DIR (default ~/.cache/vinca) and every later render of the same
version (e.g. every distribution of a repository) reads it from there. RoboStack's
humble render: 2.0 s, then 0.6 s.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Tobias-Fischer
Tobias-Fischer merged commit 49cad0c into RoboStack:master Nov 13, 2026
3 checks passed
@Tobias-Fischer
Tobias-Fischer deleted the pinning-cache branch November 13, 2026 05:14
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.

1 participant