Test against lowest and highest dependency versions#16
Merged
Conversation
A library's committed composer.lock has no effect on consumers, so CI should verify the declared constraint range rather than one pinned set. Add a lowest/highest dependency dimension to the matrix (via ramsey/composer-install) so the floor of each constraint (e.g. illuminate/support 12.0, mercadopago 6.0) is exercised alongside the latest resolvable versions. Job names change to "PHP <version> (<lowest|highest> deps)"; branch protection required checks are updated to match. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
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.
What
Add a
lowest/highestdependency dimension to the CI matrix so the suite runs against both the floor and the ceiling of the declared Composer constraints, on PHP 8.4 and 8.5 (4 jobs total).A library's committed
composer.lockhas no effect on consumers — they resolve fromcomposer.jsonconstraints. So CI should verify the range works, not just the pinned lock. This catches "green on my lock, broken for a consumer on newer (or older) versions within range".Uses
ramsey/composer-installwhich handles caching and thedependency-versions: lowest|highestinput.Verified locally: the suite passes on
--prefer-lowest(illuminate/support 12.0, mercadopago 6.0, ...) on PHP 8.4.Branch protection
Job names change to
PHP <version> (<lowest|highest> deps), so the required status checks onmainare updated fromPHP 8.4/PHP 8.5to the 4 new contexts.🤖 Generated with Claude Code