Hive Hive
Sign in

fix(cache): preserve prerelease dots in registry versions

GitHub issue · Closed

Metadata
Source
tuist/tuist #11136
Updated
Jun 24, 2026
Domains
Cache
Details

Resolves no tracked issue.

Fixes Swift package registry version normalization so prerelease identifiers keep their SemVer dot separators instead of being rewritten as build metadata separators. The previous behavior turned versions like 1.0.0-beta.5 into 1.0.0-beta+5, which made registry metadata disagree with package manifests that depend on exact prerelease versions.

This updates the cache registry normalizer to only normalize the core numeric version components while preserving prerelease and build metadata suffixes. It also tightens storage-version validation around SemVer-compatible prerelease/build forms and updates registry controller and disk tests to cover the corrected storage keys and response versions.

How to test locally

cd cache
mix test test/cache/registry/key_normalizer_test.exs test/cache/registry/disk_test.exs test/cache_web/controllers/registry_controller_test.exs
Comments
TA
tuist-atlas[bot] Jun 9, 2026

The fix for preserving prerelease dots in registry versions is now available in version cache@0.32.7. Update to this version to get the corrected behavior.