Fix ignoring unstable releases with --prefer-lowest and --prefer-stable#1066
Merged
nicolas-grekas merged 1 commit into2.xfrom Oct 30, 2025
Merged
Fix ignoring unstable releases with --prefer-lowest and --prefer-stable#1066nicolas-grekas merged 1 commit into2.xfrom
nicolas-grekas merged 1 commit into2.xfrom
Conversation
b540ad3 to
73537e7
Compare
Seldaek
reviewed
Oct 30, 2025
Comment on lines
+53
to
+61
| if ($this->ignoreUnstableReleases) { | ||
| $filteredPackages = []; | ||
| foreach ($data as $package) { | ||
| if (\in_array($package->getStability(), ['stable', 'dev'], true)) { | ||
| $filteredPackages[] = $package; | ||
| } | ||
| } | ||
| $data = $filteredPackages; | ||
| } |
Member
There was a problem hiding this comment.
IMO this is very risky and should only be done if the minimum-stability is dev. If not you will for sure break projects using flex together with --prefer-lowest/--prefer-stable. If they require anything that has only an RC/beta/alpha but dev is not allowed, it will fail resolution.
Ideally it would check per package if dev is available and if yes clean pre-release versions, if not keep everything.
Member
Author
There was a problem hiding this comment.
I very much doubt there is a use case where testing with lowest deps and neither dev nor stable are available.
I'd rather wait for a real world use case to be described before doing anything :)
nicolas-grekas
added a commit
that referenced
this pull request
Oct 31, 2025
…e (nicolas-grekas) This PR was merged into the 2.x branch. Discussion ---------- Leverage COMPOSER_PREFER_DEV_OVER_PRERELEASE when possible This leverages composer/composer#12585 The code added in #1066 remains as a fallback. Commits ------- cc37c66 Leverage COMPOSER_PREFER_DEV_OVER_PRERELEASE when possible
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.
This is a behavior that has been broken about one year ago by a change is composer.
The attached implementation is way more robust since it uses a documented hook for plugins.
I tried to explain why this behavior should be the default also for composer without success so far, see:
composer/composer#12581
This is a must when testing lowest deps seriously, backed by years of practice :)