-
Notifications
You must be signed in to change notification settings - Fork 1k
Open
Labels
Milestone
Description
Right now we have a few issues scattered across multiple repositories, so I figured I'd create one to combine them all.
To-do
- Update requirements on the wp-cli.org website.
Expected breaking changes in v3.0.0
PHP version bump
In our next release, we’ll bump the minimum PHP version to 7.2.24+.
Previous groundwork for that in v2.12.0
- PHP 8.4 Compatibility #5946
- The
mustache/mustachelibrary remains a blocker. A PR exists to ensure PHP 8.4 compatibility, but there is no activity. -> We should consider forking or look for an alternative.- Alternatives often require newer PHP versions
- The
- Require Behat v3.15.0+ wp-cli-tests#228
- The new Behat version works on 8.4 without warnings, but requires PHP 7.2
- Tests: Failing install on PHP 5.6 due to conflict with
symfony/process#6018- A dependency of
wp-cli/package-commandcan no longer be installed on 5.6 because of security advisories
- A dependency of
- Smarter auto-updating re. PHP requirements #6004
- We need to harden the updater so that older PHP versions can still update to the latest possible compatible version. This obviously needs to happen before 3.0.0.
With this bump we can:
- Drop support for older WordPress versions, likely WordPress 4.8 and below
- According to https://make.wordpress.org/core/handbook/references/php-compatibility-and-wordpress-versions/, WordPress 4.9 is the first version to support PHP 7.2
- We can check whether older versions like WordPress 4.7 still work ok with that version though. There might be some wiggle room.
- Most notably, we'll stop testing the WordPress 3.7 & PHP 5.6 combination
- Consider increasing minimum supported WordPress version #5705
- Remove a lot of old compatibility code throughout the codebase
- For example the
wp-settings-cli.phpfile inwp-cli/wp-cli, which is for WP < 4.6
- For example the
- Slowly adopt new language features such as new type declarations, null coalescing operator, and much more
- Keep public APIs as-is to avoid unnecessary breaking changes
- Do this only where it makes sense
- Remove the https://github.com/wp-cli/process fork again
- Use PHPStan 1.x
- Use the oldest still maintained PHPUnit version, PHPUnit 8, requires PHP 7.2, so we'll be able to use that
- Re-Add roave/security-advisories after PHP requirement bump #6087
To do this bump:
- Update test matrix in https://github.com/wp-cli/.github to remove anything below PHP 7.2. Add new entries with PHP 7.2 & WP 4.9 or so.
- Bump requirement in
wp-cli/wp-cli-bundle - Bump requirement in
wp-cli/wp-cli - Bump requirements in all the packages
- ... and probably many more steps
ernilambar, mrsdizzie, GaryJones, Soean, chris-bateman and 2 more