Hive
fix(cache): preserve prerelease dots in registry versions
GitHub issue · Closed
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
Investigate, reproduce, or fix this item in an isolated repository. Each Flight preserves its outcome and agent session.
Start a Flight and preserve its objective, outcome, and session here.