[6.1] Handle paginated registry metadata responses (#8219) #8262
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.
In 4.1 List Package
Releases it is stated that a server may respond with a
Link
header that contains a pointer to a subsequent page of results. SwiftPM is not checking for thenext
link in theLink
header and so if a registry returns paginated results, only the first page of versions is searched when resolving. This would result in a "version not found" error when in reality the version is present in a subsequent page of results.Respect the
next
link in theLink
header by loading the next page of results and building up a list of versions, continuing until there is nonext
link present in theLink
header of the last result.Registry servers that serve paginated results now have all their results read.
Issue: #8215