This is an important release which makes significant changes to improve the accuracy, performance, stability and maintainability of all sniffs, as well as making WordPressCS much better at handling modern PHP.
WordPressCS 3.0.0 contains breaking changes, both for people using ignore annotations, people maintaining custom rulesets, as well as for sniff developers who maintain a custom PHPCS standard based on WordPressCS.
If you are an end-user or maintain a custom WordPressCS based ruleset, please start by reading the Upgrade Guide to WordPressCS 3.0.0 for ruleset maintainers which lists the most important changes and contains a step by step guide for upgrading.
If you are a maintainer of an external standard based on WordPressCS and any of your custom sniffs are based on or extend WordPressCS sniffs, please read the Upgrade Guide to WordPressCS 3.0.0 for Developers.
In all cases, please read the complete changelog carefully before you upgrade.
Added
Dependencies on the following packages: PHPCSUtils, PHPCSExtra and the [Composer PHPCS plugin].
A best effort has been made to add support for the new PHP syntaxes/features to all WordPressCS native sniffs and utility functions (or to verify/improve existing support).
While support in external sniffs used by WordPressCS has not be exhaustively verified, a lot of work has been done to try and add support for new PHP syntaxes to those as well.
WordPressCS native sniffs and utilities have received fixes for the following syntaxes:
PHP 7.2
Keyed lists.
PHP 7.3
Flexible heredoc/nowdoc (providing the PHPCS scan is run on PHP 7.3 or higher).
Trailing commas in function calls.
PHP 7.4
Arrow functions.
Array unpacking in array expressions.
Numeric literals with underscores.
Typed properties.
Null coalesce equals operator.
PHP 8.0
Nullsafe object operators.
Match expressions.
Named arguments in function calls.
Attributes.
Union types // including supporting the false and null types.
This is an important release which makes significant changes to improve the accuracy, performance, stability and maintainability of all sniffs, as well as making WordPressCS much better at handling modern PHP.
WordPressCS 3.0.0 contains breaking changes, both for people using ignore annotations, people maintaining custom rulesets, as well as for sniff developers who maintain a custom PHPCS standard based on WordPressCS.
If you are an end-user or maintain a custom WordPressCS based ruleset, please start by reading the Upgrade Guide to WordPressCS 3.0.0 for end-users which lists the most important changes and contains a step by step guide for upgrading.
If you are a maintainer of an external standard based on WordPressCS and any of your custom sniffs are based on or extend WordPressCS sniffs, please read the Upgrade Guide to WordPressCS 3.0.0 for Developers.
In all cases, please read the complete changelog carefully before you upgrade.
Added
Dependencies on the following packages: PHPCSUtils, PHPCSExtra and the [Composer PHPCS plugin].
A best effort has been made to add support for the new PHP syntaxes/features to all WordPressCS native sniffs and utility functions (or to verify/improve existing support).
While support in external sniffs used by WordPressCS has not be exhaustively verified, a lot of work has been done to try and add support for new PHP syntaxes to those as well.
WordPressCS native sniffs and utilities have received fixes for the following syntaxes:
PHP 7.2
Keyed lists.
PHP 7.3
Flexible heredoc/nowdoc (providing the PHPCS scan is run on PHP 7.3 or higher).
Trailing commas in function calls.
PHP 7.4
Arrow functions.
Array unpacking in array expressions.
Numeric literals with underscores.
Typed properties.
Null coalesce equals operator.
PHP 8.0
Nullsafe object operators.
Match expressions.
Named arguments in function calls.
Attributes.
Union types // including supporting the false and null types.
Constructor property promotion.
$object::class
Throw as an expression.
PHP 8.1
Enumerations.
Explicit octal notation.
Final class constants
First class callables.
Intersection types.
PHP 8.2
... (truncated)
Commits
bb792cb Merge pull request #2369 from WordPress/develop
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Updates the requirements on wp-coding-standards/wpcs to permit the latest version.
Release notes
Sourced from wp-coding-standards/wpcs's releases.
... (truncated)
Changelog
Sourced from wp-coding-standards/wpcs's changelog.
... (truncated)
Commits
bb792cb
Merge pull request #2369 from WordPress/develope36e0ea
Changelog for WordPressCS 3.0.0 (#2368)c2d244c
Merge pull request #2366 from WordPress/replace-non-inclsuive-test-function-name1413982
Merge pull request #2367 from WordPress/feature/docs-update-readme-contributi...71dc238
Docs: miscellaneous changes4a33d46
CONTRIBUTING: updates for WordPressCS 3.0.0d847317
README: updates for WordPressCS 3.0.0d3a58e9
Tests: Remove redundant placeholder function185308a
Merge pull request #2364 from WordPress/feature/sniff-remove-init-methodafbd469
Merge pull request #2365 from WordPress/feature/helpers-use-type-declarations...Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show