v2.22.0
Fixed
- The phpcs analyzer honors the repo’s own ruleset (#1042). It used to apply the Drupal standard to every PHP repo and ignore
phpcs.xml. On a WordPress plugin this gave High indentation findings on test files that the ruleset does not lint. The analyzer now reads the ruleset as data and gives phpcs a generated ruleset. phpcs never reads the repo file, because a ruleset can load PHP from the workspace. The analyzer keeps the<file>scope, the exclude patterns, and the rules that name installed standards or sniffs. phpcs runs from an empty directory, so no name in a ruleset can resolve to a file in the repo. - A merged finding from two analyzer tools keeps both messages (#1044). Before, the merged finding kept only the highest-severity text. Now the other tool’s message shows as
Also reported by:in the inline comment, the GitLab discussion, the review body, and the Bitbucket annotation.
Changed
- Behavior change: Drupal standards apply only to Drupal repos. With no phpcs ruleset, a repo gets Drupal and DrupalPractice only when it shows Drupal signals (
*.info.yml, a Drupal 7*.infofile, a.modulefile, a composertypeofdrupal-*, or adrupal/corerequirement). Other PHP repos get PSR12. Open pull requests can see new findings and stale threads that resolve. - A ruleset that names a standard the image lacks gets a style-neutral fallback. For example, WordPress is not installed. phpcs runs seven correctness sniffs with no code-style opinion, plus the repo rules that name installed sniffs, and the log names the missing standard.
- Bugfixes now land directly on
main. A defect fix that deserves a patch release no longer goes through a release branch. Features still do. This is a process change with no code change. See the contributing guide. - Dependency updates. Python is 3.15 in the workflows and
ruby/setup-rubyis v1.329.0.
Known limits
- The WordPress standard (WPCS) is not in the image yet (#1043).
- Rule-level
type="relative"exclude patterns are not applied to files that the review gives to phpcs by name.
See CHANGELOG.md for full technical detail.