Hello Swift community,
The review of SE-0534: Opt-in Exact Matching for Version Identifiers with Build Metadata ran from June 26, 2026 through July 9, 2026. The Ecosystem Steering Group has decided to reject the proposal, and does not intend to add the proposed API.
The review surfaced broad agreement that the current behavior is a problem: when a developer writes .exact("1.0.0+debug"), SwiftPM silently discards the build metadata and may resolve to a different identifier. Where the group landed differs from the proposal's framing, however. The proposal treats today's behavior as correct-by-SemVer and layers a new opt-in API on top to recover exact matching. We do not think that is the right characterization and agree with the feedback that was brought up by the community during the review.
SemVer defines precedence, and specifies that build metadata is ignored when determining precedence. It does not define what "exact" means for dependency resolution. Exact is Swift Package Manager's own concept. When a developer spells out a full version identifier, including its build metadata, in an exact requirement, the only reasonable interpretation is that they want that identifier. Discarding the part they explicitly wrote is a bug in .exact. Adding .exactLiteral alongside .exact would leave the ecosystem with two forms of "exact," one more exact than the other, and would permanently document that .exact does not do what it says.
For those reasons the group's preference is to fix .exact in place, as a bug, with no new public API. We would encourage a bug fix PR against Swift Package Manager. We expect the behavior change to have a very small blast radius, since the current behavior has no legitimate dependents.
I'd like to thank the community for its thoughtful contributions during the pitch and review of this proposal. The community's involvement helps to make Swift a better language.
Franz
Review Manager