Fix registry resolution of major alternate package manifests #8188
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation:
Let's take the following
Package.swift
:You can find the
OHHTTPStubs
dependency at that version here.The dependency has two manifests:
Package.swift
withswift-tools-version
at4.0
[email protected]
withswift-tools-version
at5.0
When resolving packages via the registry, SwiftPM should use the
[email protected]
. However, instead SwiftPM fails with:Modifications:
The reason for the error is because when looking up the alternate package manifests from the downloaded source archive, SwiftPM doesn't try to find
[email protected]
– only[email protected]
and[email protected]
.When both minor and patch versions of the swift tools version are 0, SwiftPM should try to use the
[email protected]
alternate manifest.Result:
[After your change, what will change.]
swift package resolve
will work for packages in a registry that have alternate manifests in the format of[email protected]
.