versions: Requested versions eligible only if they were already present#5
Merged
apparentlymart merged 1 commit intomainfrom Jul 6, 2023
Merged
Conversation
The versions.MeetingConstraints method tried to permit selection of any prereleases explicitly requested by an exact version constraint, but it didn't also check that those prereleases were included in the original set. That worked okay for positive exact version constraints, like "1.0.0-beta.1", but was incorrect for negative ones like "! 1.0.0-beta.1" which still get counted as "requested" in certain cases but that should not cause them to then be included in the overall result set. Now we'll filter the list of requested versions first by membership of the "exact" set, so that the requested status of a version can only return versions that would've been eligible for inclusion in the original unfiltered set.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
The
versions.MeetingConstraintsmethod tried to permit selection of any prereleases explicitly requested by an exact version constraint, but it didn't also check that those prereleases were included in the original set.That worked okay for positive exact version constraints, like
1.0.0-beta.1, but was incorrect for negative ones like! 1.0.0-beta.1which still get counted as "requested" in certain cases but that should not cause them to then be included in the overall result set.Now we'll filter the list of requested versions first by membership of the "exact" set, so that the requested status of a version can only return versions that would've been eligible for inclusion in the original unfiltered set.
Fixes #4.