Skip to content

chore(deps-dev): bump wp-coding-standards/wpcs from 3.3.0 to 3.4.1 in the composer group across 1 directory - #70

Merged
dknauss merged 1 commit into
mainfrom
dependabot/composer/composer-0fc88b6ec5
Aug 2, 2026
Merged

chore(deps-dev): bump wp-coding-standards/wpcs from 3.3.0 to 3.4.1 in the composer group across 1 directory#70
dknauss merged 1 commit into
mainfrom
dependabot/composer/composer-0fc88b6ec5

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 31, 2026

Copy link
Copy Markdown
Contributor

Bumps the composer group with 1 update in the / directory: wp-coding-standards/wpcs.

Updates wp-coding-standards/wpcs from 3.3.0 to 3.4.1

Release notes

Sourced from wp-coding-standards/wpcs's releases.

3.4.1 - 2026-07-27

This is a security release and all users are advised to update their WordPressCS install as soon as possible.

Changed

  • The minimum required PHPCSUtils version to 1.2.3 (was 1.2.2). #2770
  • The minimum required PHPCSExtra version to 1.5.1 (was 1.5.0). #2770
  • Various housekeeping, including documentation improvements.

Fixed

  • SECURITY FIX: Running the WordPress.WP.EnqueuedResourceParameters sniff over untrusted PHP code, for example, in a CI pipeline that lints pull requests, or on a developer machine reviewing third-party code, could lead to arbitrary command execution on the scanning host. #2771 This affects users of the WordPress and WordPress-Extra rulesets. The WordPress-Core ruleset and the WordPress-Docs ruleset are not affected. For more details, see the security advisory Thanks to @​FORIMOC for responsibly disclosing the vulnerability.

3.4.0

We're happy to welcome @​rodrigoprimo as co-maintainer of WordPressCS as of this release.

Added

Changed

  • The minimum required PHP_CodeSniffer version to 3.13.5 (was 3.13.4). #2761
  • The minimum required PHPCSUtils version to 1.2.2 (was 1.1.0). #2761
  • The default value for minimum_wp_version, as used by a number of sniffs detecting usage of deprecated WP features, has been updated to 6.7. #2757
  • WordPress.NamingConventions.PrefixAllGlobals has been updated to recognize pluggable functions introduced in WP up to WP 7.0.0. #2747
  • WordPress.WP.ClassNameCase has been updated to recognize classes introduced in WP up to WP 7.0.0. #2747
  • WordPress.WP.DeprecatedFunctions now detects functions deprecated in WordPress up to WP 7.0.0. #2747
  • The ConstantsHelper::is_use_of_global_constant() method will no longer flag a constant alias created via an import use statement as it were the use of a global constant. #2579
  • The ConstantsHelper::is_in_function_call() method will now act fully case-agnostic for the function names being checked. #2706 Previously, the $valid_functions parameter would need to be passed with the function names as keys in lowercase.
  • WordPress.PHP.NoSilencedErrors: error silencing is no longer accepted for the parse_url() function. #2701
  • Improved the wording of the error message for WordPress.Arrays.ArrayDeclarationSpacing.AssociativeArrayFound. #2688
  • Improved the wording of the error message for WordPress.PHP.RestrictedPHPFunctions. #2702
  • Various housekeeping, including documentation and test improvements. Includes a contribution by @​dd32.

Deprecated

  • WordPress.Arrays.ArrayDeclarationSpacing: the allow_single_item_single_line_associative_arrays property has been deprecated in favor of the new allow_single_item_single_line_explicit_key_arrays property. #2696 This is a name change only. The functionality of these properties is the same.

Fixed

  • WordPress.DB.PreparedSQL and WordPress.DB.PreparedSQLPlaceholders: false positive for static method calls to a non-global class named wpdb. #2753
  • WordPress.Security.EscapeOutput: false positive for get_search_query() when the $escaped parameter was passed as fully qualified or non-lowercase true. #2618
  • WordPress.Security.EscapeOutput: false negative for _deprecated_file() calls when the basename( __FILE__ ) pattern used non-standard casing for either basename() and/or __FILE__. #2729
  • WordPress.WP.AlternativeFunctions: false negative when class functions/constants/properties use the same name as select global WP constants/functions. #2617
  • WordPress.WP.AlternativeFunctions: false positive for fully qualified references to the global PHP stream constants \STDIN, \STDOUT, and \STDERR. #2617
  • WordPress.WP.CronInterval: false positive when the callback function reference used a different case than the function declaration, even though they are in the same file. #2730
Changelog

Sourced from wp-coding-standards/wpcs's changelog.

[3.4.1] - 2026-07-27

This is a security release and all users are advised to update their WordPressCS install as soon as possible.

Changed

  • The minimum required PHPCSUtils version to 1.2.3 (was 1.2.2). #2770
  • The minimum required PHPCSExtra version to 1.5.1 (was 1.5.0). #2770
  • Various housekeeping, including documentation improvements.

Fixed

  • SECURITY FIX: Running the WordPress.WP.EnqueuedResourceParameters sniff over untrusted PHP code, for example, in a CI pipeline that lints pull requests, or on a developer machine reviewing third-party code, could lead to arbitrary command execution on the scanning host. #2771 This affects users of the WordPress and WordPress-Extra rulesets. The WordPress-Core ruleset and the WordPress-Docs ruleset are not affected. For more details, see the security advisory. Thanks to [@​FORIMOC] for responsibly disclosing the vulnerability.

#2770: WordPress/WordPress-Coding-Standards#2770 #2771: WordPress/WordPress-Coding-Standards#2771

[3.4.0] - 2026-07-16

We're happy to welcome [@​rodrigoprimo] as co-maintainer of WordPressCS as of this release.

Added

Changed

  • The minimum required PHP_CodeSniffer version to 3.13.5 (was 3.13.4). #2761
  • The minimum required PHPCSUtils version to 1.2.2 (was 1.1.0). #2761
  • The default value for minimum_wp_version, as used by a number of sniffs detecting usage of deprecated WP features, has been updated to 6.7. #2757
  • WordPress.NamingConventions.PrefixAllGlobals has been updated to recognize pluggable functions introduced in WP up to WP 7.0.0. #2747
  • WordPress.WP.ClassNameCase has been updated to recognize classes introduced in WP up to WP 7.0.0. #2747
  • WordPress.WP.DeprecatedFunctions now detects functions deprecated in WordPress up to WP 7.0.0. #2747
  • The ConstantsHelper::is_use_of_global_constant() method will no longer flag a constant alias created via an import use statement as it were the use of a global constant. #2579
  • The ConstantsHelper::is_in_function_call() method will now act fully case-agnostic for the function names being checked. #2706 Previously, the $valid_functions parameter would need to be passed with the function names as keys in lowercase.
  • WordPress.PHP.NoSilencedErrors: error silencing is no longer accepted for the parse_url() function. #2701
  • Improved the wording of the error message for WordPress.Arrays.ArrayDeclarationSpacing.AssociativeArrayFound. #2688
  • Improved the wording of the error message for WordPress.PHP.RestrictedPHPFunctions. #2702
  • Various housekeeping, including documentation and test improvements. Includes a contribution by [@​dd32].

Deprecated

  • WordPress.Arrays.ArrayDeclarationSpacing: the allow_single_item_single_line_associative_arrays property has been deprecated in favor of the new allow_single_item_single_line_explicit_key_arrays property. #2696 This is a name change only. The functionality of these properties is the same.

Fixed

... (truncated)

Commits
  • ec2ff94 Merge pull request #2773 from WordPress/develop
  • b558639 Merge pull request #2772 from WordPress/feature/changelog-3.4.1
  • 1696dc8 Changelog for the release of WordPressCS 3.4.1
  • a29048d Merge pull request #2771 from WordPress/security/enqueuedresourceparams-fix-i...
  • 7262444 WP/EnqueuedResourceParameters: remove eval() from is_falsy()
  • 54719c0 Merge pull request #2770 from WordPress/feature/composer-update-versions
  • 267d84e Composer: update minimum version PHPCSUtils + PHPCSExtra
  • e8064a6 Add SECURITY.md file (#2766)
  • 7ac8973 Merge pull request #2768 from WordPress/dependabot/github_actions/action-runn...
  • 9466b4b GH Actions: Bump actions/checkout in the action-runners group
  • Additional commits viewable in compare view

Dependabot compatibility score

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 show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore <dependency name> major version will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
  • @dependabot ignore <dependency name> minor version will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
  • @dependabot ignore <dependency name> will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
  • @dependabot unignore <dependency name> will remove all of the ignore conditions of the specified dependency
  • @dependabot unignore <dependency name> <ignore condition> will remove the ignore condition of the specified dependency and ignore conditions
    You can disable automated security fix PRs for this repo from the Security Alerts page.

Bumps the composer group with 1 update in the / directory: [wp-coding-standards/wpcs](https://github.com/WordPress/WordPress-Coding-Standards).


Updates `wp-coding-standards/wpcs` from 3.3.0 to 3.4.1
- [Release notes](https://github.com/WordPress/WordPress-Coding-Standards/releases)
- [Changelog](https://github.com/WordPress/WordPress-Coding-Standards/blob/develop/CHANGELOG.md)
- [Commits](WordPress/WordPress-Coding-Standards@3.3.0...3.4.1)

---
updated-dependencies:
- dependency-name: wp-coding-standards/wpcs
  dependency-version: 3.4.1
  dependency-type: direct:development
  dependency-group: composer
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file php Pull requests that update php code labels Jul 31, 2026
@codecov

codecov Bot commented Jul 31, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 81.01%. Comparing base (a5a5824) to head (77c8240).

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #70   +/-   ##
=======================================
  Coverage   81.01%   81.01%           
=======================================
  Files          43       43           
  Lines        3113     3113           
  Branches      522      522           
=======================================
  Hits         2522     2522           
  Misses        185      185           
  Partials      406      406           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@dknauss dknauss left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Dev-dependency bump, CI fully green. Approving.

@dknauss
dknauss merged commit 4f35461 into main Aug 2, 2026
16 checks passed
@dknauss
dknauss deleted the dependabot/composer/composer-0fc88b6ec5 branch August 2, 2026 15:26
dknauss added a commit that referenced this pull request Aug 3, 2026
The doc was last verified 2026-07-05 at 49f623b; #66, #67, #68 and #70
have landed since. Re-derive every figure with the command the doc itself
documents.

Lines of code moved with the BAC v4 integration: main plugin file
1,881 -> 1,928, all first-party PHP 1,979 -> 2,026, JS source
8,851 -> 8,802.

The installed footprint is smaller than recorded rather than larger:
release vendor/ 792 KB (was documented ~1.0 MB), total ~1.9 MB (was
~2.1 MB), and the distributed ZIP ~461 KB (was ~0.9-1 MB). The ZIP was
checked for completeness -- 242 entries, unzip -t clean, all citeproc and
CSL payloads present -- so this is a real reduction, not a short archive.
Record the exact byte count alongside the rounded figure so the next
check is unambiguous.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
dknauss added a commit that referenced this pull request Aug 3, 2026
…t never ran (#71)

* docs: record BAC v4 integration and document the 4.0+ requirement

PR #68 updated the Block Accessibility Checks integration for BAC 4.0 but
left no changelog trace, and readme.txt had no unreleased section at all.
Record both, along with the docs/current-metrics.md addition from #67.

BAC 4.0 replaced the registration API, so Borges now needs that plugin at
4.0+ for its four checks to load. On 3.x the function_exists guard makes
the integration a silent no-op, which is invisible to the user, so state
the requirement in the readme description, a new FAQ entry, and README.md.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* docs: refresh current-metrics.md against main HEAD

The doc was last verified 2026-07-05 at 49f623b; #66, #67, #68 and #70
have landed since. Re-derive every figure with the command the doc itself
documents.

Lines of code moved with the BAC v4 integration: main plugin file
1,881 -> 1,928, all first-party PHP 1,979 -> 2,026, JS source
8,851 -> 8,802.

The installed footprint is smaller than recorded rather than larger:
release vendor/ 792 KB (was documented ~1.0 MB), total ~1.9 MB (was
~2.1 MB), and the distributed ZIP ~461 KB (was ~0.9-1 MB). The ZIP was
checked for completeness -- 242 entries, unzip -t clean, all citeproc and
CSL payloads present -- so this is a real reduction, not a short archive.
Record the exact byte count alongside the rounded figure so the next
check is unambiguous.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* ci: gate docs/current-metrics.md against drift

The metrics doc is hand-verified and had gone stale across three merges
with nothing to catch it. Add verify-metrics.sh, wired into the Quality
job and exposed as composer verify:metrics, so drift fails CI instead.

The gate checks the three lines-of-code figures and re-runs the
persistence/hook audit that underpins the zero-query runtime claim. It
deliberately does not assert the du-based footprint figures or built
asset byte sizes: du reports allocated blocks and differs between macOS
and the Linux runner, and webpack output is only byte-stable for a fixed
toolchain. Asserting those would produce failures that say nothing about
the repository, so they stay hand-verified and the script says so.

Placed before the build steps so it cannot false-fail on a checkout with
no build artifacts. Verified in both directions: exit 0 on a clean tree,
exit 1 on a perturbed figure and on an introduced update_option call.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* test(a11y): make the BAC integration test actually run

The accessibility Playground booted with no blueprint, so Block
Accessibility Checks was never installed, so the test that covers the BAC
integration skipped itself on every run -- including CI, which still
reported green. The integration shipped in #68 had no end-to-end coverage
at all, which matters because BAC 4.0 silently ignores hooks registered
under their pre-4.0 names: every check just passes.

Install BAC in the a11y environment and assert against the
block-accessibility-checks data store rather than BAC's markup. The old
assertions targeted .ba11y-block-indicator--error/--warning, classes v4
removed in favour of a validation toolbar button, so the negative
assertions could not have failed. Verified in both directions: renaming
the editor filter back to ba11yc_validate_block makes the test fail.

Installing BAC also exposed a race in the publish helper. BAC registers
an error-level post_title_required editor check that holds core's
post-saving lock while the title is empty; the helper set the title and
saved in the same tick and the save was rejected. This is not a Borges
defect -- a plain paragraph post with no bibliography block fails the
same way, and publishing through the UI works. Wait for the lock to lift,
and verify the post reached publish instead of returning an auto-draft
permalink that 404s later in the test.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* fix(security): resolve PMID records through wp_safe_remote_get

The PMID resolver follows up to three redirects. wp_remote_get follows
them anywhere, including a host on the site's own network; only
wp_safe_remote_get runs each hop through wp_http_validate_url.

The exposure was narrow -- the PMID is validated against ^\\d{1,8}$
before use and the endpoint host is a fixed constant, so the redirect
chain was the one part of the request an upstream change could have
pointed somewhere unintended -- but the safe variant is the correct
default for an outbound call the plugin does not fully control.

The test bootstrap now records which HTTP helper a call reached for, so
the assertion is on the function rather than only the URL, and fails if
the call site regresses.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* test(a11y): fail rather than skip when BAC is missing in CI

The previous commit fixed why the BAC integration test never ran. This
fixes how that went unnoticed: the test skipped itself whenever Block
Accessibility Checks was absent, and a skip is indistinguishable from a
pass on a green run.

Keep the graceful skip for local runs without the plugin, but throw when
CI is set, naming the blueprint and the script flag to check. If
blueprint provisioning ever breaks again, the run goes red instead of
quietly reporting success over no coverage.

Verified by booting Playground with no blueprint and CI=1: the test fails
with the intended message rather than skipping.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file php Pull requests that update php code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant