Hive
fix(cache): preserve prerelease dots in registry versions
GitHub issue · Closed
Source
tuist/tuist #11136
Updated
Jun 24, 2026
Domains
Cache
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