feat: definitions for the framework versions that still run on PHP 7.4 - #30
Merged
Conversation
Definitions only covered the recent majors, so a project on an older release had none of its own and borrowed the nearest. A borrowed definition describes a different release, and lerd has to treat its PHP range as not applying, which leaves those projects with no declared range, no workers and no doctor checks of their own. Added every version back to the oldest that still runs on PHP 7.4: Laravel 6 through 9, Symfony 4 through 6, Drupal 8 and 9, Statamic 3 and 4, CakePHP 3 and CodeIgniter 3. Each is the nearest existing definition with its version and PHP range corrected, which holds for Laravel 6 through 9 because they share the CACHE_DRIVER key, the schedule:run command and the absence of Reverb. CodeIgniter 3 is written rather than copied. Version 4 is built around spark, which 3 does not ship, so a copy would have declared a console, a queue worker and setup commands that cannot run. It declares detection, the PHP range and where the logs are, and claims nothing else. WordPress is unchanged, since both its majors already declare 7.4 as the floor. Magento is left alone: 2.4.0 through 2.4.3 ran on 7.4 while the current 2 definition starts at 8.1, and separating them changes how that framework's version is detected rather than adding a file.
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.
Closes #29
Thirteen definitions, covering every version back to the oldest that still runs on PHP 7.4: Laravel 6 through 9, Symfony 4 through 6, Drupal 8 and 9, Statamic 3 and 4, CakePHP 3, CodeIgniter 3.
Each is the nearest existing definition with its version and PHP range corrected. That holds for Laravel 6 through 9 because they share what matters: the CACHE_DRIVER key rather than CACHE_STORE,
schedule:runrather thanschedule:work, and no Reverb.CodeIgniter 3 is written rather than copied. Version 4 is built around spark, which 3 does not ship, so a copy would have declared a console, a queue worker and setup commands that cannot run. It declares detection, the PHP range and where the logs are, and claims nothing else.
The ranges, which are the part worth checking:
WordPress is untouched, since both its majors already declare 7.4 as the floor. Magento is left alone deliberately: 2.4.0 through 2.4.3 ran on 7.4 while the current 2 definition starts at 8.1, and separating those changes how that framework's version is detected rather than adding a file. Worth its own change.
This pairs with lerd-env/lerd#1204, which stops a borrowed definition's range being applied to a project it does not describe. That fix means an unrecognised version falls back to the project's own composer requirement, and these definitions mean fewer projects need the fallback at all.