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

Release 2.3.4 #772

Merged
merged 96 commits into from
Aug 24, 2023
Merged

Release 2.3.4 #772

merged 96 commits into from
Aug 24, 2023

Conversation

GaryJones
Copy link
Contributor

@GaryJones GaryJones commented Aug 24, 2023

The resulting merge commit should be tagged as 2.3.4.

jrfnl and others added 30 commits December 23, 2021 03:13
The `dealerdirect/phpcodesniffer-composer-installer` Composer plugin is used to register external PHPCS standards with PHPCS.

As of Composer 2.2.0, Composer plugins need to be explicitly allowed to run. This adds the necessary configuration for that.

Refs:
* https://blog.packagist.com/composer-2-2/#more-secure-plugin-execution
... for bridging differences in `E_ALL` across PHP versions.
Previously, in Travis, when the same branch was pushed again and the "Auto cancellation" option on the "Settings" page had been turned on (as it was for most repos), any still running builds for the same branch would be stopped in favour of starting the build for the newly pushed version of the branch.

To enable this behaviour in GH Actions, a `concurrency` configuration needs to be added to each workflow for which this should applied to.

More than anything, this is a way to be kind to GitHub by not wasting resources which they so kindly provide to us for free.

Refs:
* https://github.blog/changelog/2021-04-19-github-actions-limit-workflow-run-or-job-concurrency/
* https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions#concurrency
PHP `latest` from SetupPHP is now PHP 8.1 and the earliest PHPCS version which is (runtime) compatible with PHP 8.1 is PHPCS 3.6.1.

This commit makes the necessary adjustments to the test matrix in both the `quicktest` and the `test` workflows to account for that.

Notes:
* Includes minor simplification of the "lint" matrix and `continue-on-error` setting.
* Linting against PHP 8.2 has been turned on (allowed to fail), testing against PHP 8.2 is still disabled for now as it's still quite far away.
* As the tests are based on the PHPCS native test framework and this framework still limits the PHPUnit versions to PHPUnit 4.x - 7.x, some tweaks are needed to get the tests running on PHP 8.1 as the reading of the PHPUnit configuration file by PHPUnit would yield a fatal error otherwise.
* The latest release of WPCS throws a few PHP deprecation notices on PHP 8.1. These have been fixed upstream already and the fixes will be included in WPCS 3.0.0.
    Until WPCS 3.0.0 has been released though, we'll need to ignore deprecation notices on PHP 8.1 as otherwise the ruleset test would fail on the notices coming from WPCS.
The action used to install Composer packages and handle the caching has released a new major (and some follow-up patch releases), which means, the action reference needs to be updated to benefit from it.

Includes adding `--no-interaction` to "plain" Composer commands to potentially prevent CI hanging if, for whatever reason, interaction would be needed in the future.

Refs:
* https://github.com/ramsey/composer-install/releases/tag/2.0.0
* https://github.com/ramsey/composer-install/releases/tag/2.0.1
* https://github.com/ramsey/composer-install/releases/tag/2.0.2
The `dealerdirect/phpcodesniffer-composer-installer` Composer plugin is a non-dev requirement for VIPCS.

As of Composer 2.2.0, Composer plugins need to be explicitly allowed to run.

This commit adds the CLI command to set those permissions to the installation instructions.

Refs:
* https://blog.packagist.com/composer-2-2/#more-secure-plugin-execution
The required version of the VariableAnalysis package was no longer in sync with the actual requirement as per the `composer.json` file.
Add get_theme_file_path to allowed path functions
Add get_theme_file_path to list of allowed include functions
A number of predefined actions have had major release, which warrant an update the workflow(s).

These updates don't actually contain any changed functionality, they are mostly just a change of the Node version used by the action itself (from Node 14 to Node 16).

Refs:
* https://github.com/actions/checkout/releases
Fix failing installation of the xmllint tooling.
PHP Console Highlighter has released version `1.0.0` and PHP Parallel Lint version `1.3.2` is the first PHP Parallel Lint version which supports PHP Console Highlighter `1.0.0`.

As the minimum supported PHP version is still PHP 5.3 for both, we can safely update both dependency requirements.

Refs:
* https://github.com/php-parallel-lint/PHP-Console-Highlighter/releases/tag/v1.0.0
* https://github.com/php-parallel-lint/PHP-Parallel-Lint/releases/tag/v1.3.2
While rare, there are some deprecations which PHP can show when a file is being linted.
By default these are ignored by PHP-Parallel-Lint.

Apparently though, there is an option to show them (wasn't documented until recently), so let's turn that option on.
As per https://getcomposer.org/doc/04-schema.md#keywords by including "static analysis", then later versions of Composer will prompt users if the package is installed with `composer require` instead of `composer require-dev`.
GitHub has deprecated the use of `set-output` (and `set-state`) in favour of new environment files.

This commit updates workflows to use the new methodology.

Refs:
* https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
* https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#environment-files
The `xmllint-problem-matcher` action runner has released a new version which updates it to use node 16.
This gets rid of a warning which was shown in the action logs.

Note: I've [suggested to the author to use long-running branches for the action runner instead](korelstar/xmllint-problem-matcher#7), which would make this update redundant, but no telling if or when they'll respond to that, let alone if they will follow my suggestion.

Refs:
* https://github.com/korelstar/xmllint-problem-matcher/releases/tag/v1.1
GaryJones and others added 23 commits August 23, 2023 14:22
…sn't exist

PHP does not contain a `delete()` function, so searching for it will only yield false positives.

Ref: https://www.php.net/manual/en/function.delete.php
The `$functionList` property is only ever written to, never _read_, so all that work walking all the tokens in the complete class scope is redundant (and was done in a highly inefficient way in the first place).

So, removing all code related to the property should improve performance of the sniff a little.
... and use consistent spacing (blank line between param and return tags).
Definitely not claiming completeness. This is just another iteration step in improving the documented types.
While WP tends to omit `@return void` statements, this is not WP and documenting the function return type is a good thing™.
* Updated to include all PRs in the 2.3.4 milestone, including the currently open PRs.
* Changed the format to align with previous changelogs in the 2.x series.
* Added notification about the (soft) deprecation of the `WordPressVIPMinimum.Performance.BatcacheWhitelistedParams` and the `WordPressVIPMinimum.Compatibility.Zoninator` sniffs.
@GaryJones GaryJones added this to the 2.3.4 milestone Aug 24, 2023
@GaryJones GaryJones requested a review from jrfnl August 24, 2023 11:33
@GaryJones GaryJones requested a review from a team as a code owner August 24, 2023 11:33
Copy link
Collaborator

@jrfnl jrfnl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gone through all files for a visual check and didn't see anything untoward. All good Let's get this puppy released! ✅

@GaryJones GaryJones merged commit b8610e3 into master Aug 24, 2023
@GaryJones GaryJones deleted the release/2.3.4 branch August 24, 2023 15:11
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.

5 participants