Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Composer/PHPCS: update to YoastCS 3.0.0 #73

Merged
merged 1 commit into from
Dec 14, 2023

Conversation

jrfnl
Copy link
Collaborator

@jrfnl jrfnl commented Dec 14, 2023

YoastCS 3.0.0 has been released and is based on WordPressCS 3.0.0.

This commit makes the necessary updates for that:

  • Composer: update the requirements.
  • PHPCS ruleset: - Exclude new (and more) WP specific rules which don't apply to this package. - Exclude code modernization sniffs which can't be applied to this package yet. - Enforce strict PSR-4 for both src and tests. - Update a few property names for new names in WordPressCS 3.0. - Remove a few exclusions which are no longer needed. - Add a few selective exclusions for specific situations.
  • GHA CS workflow: run the CS check on the latest PHP version. No need to run on PHP 7.4 any more as the deprecations previously encountered were all fixed.

While YoastCS 3.0.0 contains lots of goodies, it also has a downside: a minimum PHP requirement of PHP 7.2, which conflicts with the minimum supported PHP version of this package.

This causes two issues:

  1. A plain composer install will no longer work on PHP < 7.2. This means the YoastCS package will need to be removed for the CI test workflow.
  2. As the (Parallel) linting packages are "inherited" from YoastCS, removing YoastCS would break the linting command in CI, so we need to require-dev the Parallel Lint packages in WP Test Utils itself to allow the workflow to continue to work.

With those two work-arounds in place, everything should work again.

Refs:

YoastCS 3.0.0 has been released and is based on WordPressCS 3.0.0.

This commit makes the necessary updates for that:
* Composer: update the requirements.
* PHPCS ruleset:
    - Exclude new (and more) WP specific rules which don't apply to this package.
    - Exclude code modernization sniffs which can't be applied to this package yet.
    - Enforce strict PSR-4 for both src and tests.
    - Update a few property names for new names in WordPressCS 3.0.
    - Remove a few exclusions which are no longer needed.
    - Add a few selective exclusions for specific situations.
* GHA CS workflow: run the CS check on the latest PHP version.
    No need to run on PHP 7.4 any more as the deprecations previously encountered were all fixed.

While YoastCS 3.0.0 contains lots of goodies, it also has a downside: a minimum PHP requirement of PHP 7.2, which conflicts with the minimum supported PHP version of this package.

This causes two issues:
1. A plain `composer install` will no longer work on PHP < 7.2.
    This means the YoastCS package will need to be removed for the CI test workfows.
2. As the (Parallel) linting packages are "inherited" from YoastCS, removing YoastCS would break the linting command in CI, so we need to `require-dev` the Parallel Lint packages in PHPUnit Polyfills itself to allow the workflow to continue to work.

With those two work-arounds in place, everything should work again.

Refs:
* https://github.com/Yoast/yoastcs/releases/tag/3.0.0
* https://github.com/WordPress/WordPress-Coding-Standards/releases/tag/3.0.0
@jrfnl jrfnl added this to the 1.x Next Release milestone Dec 14, 2023
@coveralls
Copy link

Coverage Status

coverage: 99.167%. remained the same
when pulling 2c9e056 on JRF/CS/update-phpcs-ruleset-yoastcs-3.0.0
into d0a8e4c on develop.

@jrfnl jrfnl merged commit 4656688 into develop Dec 14, 2023
15 checks passed
@jrfnl jrfnl deleted the JRF/CS/update-phpcs-ruleset-yoastcs-3.0.0 branch December 14, 2023 23:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants