Skip to content

Forward-ported 15 commits from 'main' onto '2.x'. - #2877

Merged
AlexSkrypnyk merged 16 commits into
2.xfrom
feature/propagate-main-20260731
Jul 31, 2026
Merged

Forward-ported 15 commits from 'main' onto '2.x'.#2877
AlexSkrypnyk merged 16 commits into
2.xfrom
feature/propagate-main-20260731

Conversation

@AlexSkrypnyk

@AlexSkrypnyk AlexSkrypnyk commented Jul 31, 2026

Copy link
Copy Markdown
Member

Summary

Forward-ports 15 commits from main onto 2.x, covering container image, GitHub Actions and PHP dependency bumps, a documentation glob-quoting fix that restores linting and spellchecking coverage to 74 pages, Hadolint version pinning with justified per-line ignores, the multi-version wiring that lets one Vortex - Test docs definition serve both majors, and CLI installer changes that make dclint/hadolint optional tools and suppress Composer noise during initial tooling install. Seven commits cherry-picked cleanly, three required conflict resolution against 2.x's diverged CI configuration and tooling scripts, and five were hand-adapted to 2.x's relocated CLI structure (.vortex/cli/ rather than .vortex/installer/). Ten further main commits were evaluated and deliberately skipped, either because 2.x already carries the change under a different commit, the change is superseded by 2.x's own architecture, or it is owned by tooling (Renovate, BATS) that does not exist on 2.x. Full rationale for every applied and skipped commit is below.

Changes

Applied (15)

Clean cherry-picks:

  • 3ca7c572 Update uselagoon/mysql-8.4 to v26.8.0 - 2.x was at 26.7.0.
  • f5d99606 Update container images to v26.8.0 - .docker/ clamav, database and solr were at 26.7.0.
  • d41596ac Update GitHub Actions - release-drafter v7.6.0 to v7.7.0, renovate v46.1.21 to v46.2.0.
  • 6816fc3b Update rhysd/actionlint to v1.7.12 - 2.x was at 1.7.10. Worth noting this pin was unreachable by Renovate until c98f69d7 below landed its customManager, so it could not have been picked up automatically.
  • 8bd16d31 Quoted the content/**/*.mdx lint and spellcheck globs - 2.x carried the identical unquoted globs, so sh (which has no globstar) collapsed ** to * and every page deeper than one level below content/ went unchecked while both tools still exited 0. Brings the new lint-globs.test.js regression test plus the markdownlint and cspell fixes the wider glob surfaces. Docs linting now covers 74 pages.
  • 7840b3c4 Update PHP packages except core - search_api_solr ^4.3.13 to ^4.4.0, phpstan/phpstan ^2.2.6 to ^2.2.7, rector/rector ^2.5.8 to ^2.5.9. 2.x sat on exactly the pre-image constraints, so this applied without conflict.

Cherry-picks with conflict resolution:

  • 759754103 Update uselagoon/valkey-8 to v26.8.0 - resolved to keep 2.x's renamed cache service (SERVICE_CACHE).
  • c98f69d7 Pinned Hadolint to v2.15.0 and replaced its global ignores with justified per-line ones. This is the highest-value item in the batch: 2.x invoked hadolint/hadolint untagged in three places (.circleci/config.yml, .github/workflows/build-test-deploy.yml, .vortex/tests/lint.dockerfiles.sh), so it resolved to latest and an upstream release could break the default branch on a commit that changed nothing. It also adds the renovate.json customManager that tracks docker run <image>:<tag> pins, which 2.x lacked entirely - without it these pins are invisible to Renovate and silently rot.
  • d4e62457 Pinned the seed script, asciinema and sharp-cli versions - replaces releases/latest/download with a tagged URL plus a sha256sum --check, pins SEED_URL to the 26.7.0 release with a checksum, and moves sharp-cli from a global npm i -g into package.json. Retargeted onto 2.x's vortex-test-cli.yml (the workflow main still calls vortex-test-installer.yml) and kept 2.x's update-videos.php cli-install target.

Hand-adapted to 2.x's structure:

  • f9415793 Made dclint and hadolint optional development tools - reapplied against .vortex/cli/ (2.x relocated the installer out of .vortex/installer/), adding the DCLINT/HADOLINT constants, defaults, tool definitions and TOOL_DCLINT/TOOL_HADOLINT fences in both CI providers. Also fixes a live typo on 2.x: getToolDefinitions('goups') in Tools.php.
  • fa098d09 Suppressed Composer output of the initial tooling install - added the progress helpers and the composer_run wrapper onto 2.x's diverged scripts/vortex-tooling.sh, preserving its compgen guard and its VORTEX_DEV 2.x tooling marker check. The upstream test half was dropped because ToolingBootstrapTest.php does not exist on 2.x.
  • ece81600 Removed the page content model when the demo and search modules are deselected - 2.x's .gitignore carried !recipes/page unfenced, so the recipe was retained even with both modules deselected. Adds the CONTENT_MODEL fence and the guard in .vortex/cli's CustomModules.php.
  • ab2ae942 Added the visual regression report to the GitHub Actions run summary - source-only port; also fixes the pages_changed jq expression.
  • dc399b62 Added opt-in for visual regression on non-PR deployments - functional on 2.x because vortex-notify-diffy already sends branch in its client_payload.
  • 9a888310 Triggered Vortex - Test docs from both per-major test workflows. Only the major-agnostic hunks were taken: the both-workflow trigger, the BINARY_ARTIFACT/BINARY_FILE env vars, the run_id-pinned artifact download, the BINARY_FILE copy step and the zizmor comment. main's other-major build leg was deliberately not taken - that leg is correctly inverted per branch (on 2.x the other major is 1.x and builds the installer, not the CLI), so importing main's version would have broken it. Beyond the multi-version wiring this carries a real defect 2.x also had: downloading the artifact by workflow: name resolves to the most recent successful run across all branches rather than the triggering run, so the docs job could publish a binary built from a different commit.

Skipped (10)

  • 0140556f git-artifact 1.7.0 and stale branch cleanup - already present in 2.x's PHP vortex-deploy-artifact and its docs.
  • 2e855edf Update GitHub Actions - already present as f060a79be.
  • 8e186fed zizmor-action v0.6.1 - 2.x already at v0.6.1.
  • 62235616 PHP package updates - Renovate-owned; 2.x's composer.json has diverged and its own Renovate raises these.
  • 94f1da89 CI runner disk pressure - already forward-ported as ea34080d8.
  • 332dc85f Lagoon CLI error on failed deploy - already forward-ported as 9ce3afbe3.
  • ebe25197 BATS credential isolation - test-only; the BATS harness does not exist on 2.x, where tooling tests are PHPUnit.
  • 10b840e1 Anchored environment name matching in provision scripts - scripts/provision-NN-*.sh were removed on 2.x and its deploy steps compare with an exact $this->environment() === 'prod', so the unanchored-substring defect cannot occur.
  • e94fde1e Split provision example scripts - already realised by 2.x's deploy-step classes.
  • b04386ab Docs workflows building the v2 binary - a main-side fix for building 2.x's CLI; 2.x already carries the mirror-image.

Snapshots

ahoy update-snapshots was run twice. The first pass regenerated and committed 43 fixtures with 0 failures, including new tools_no_dclint, tools_no_hadolint, tools_no_docker_linters (plus CircleCI variants) and custom_modules_none/recipes/page scenarios that confirm the two installer ports work end to end. The second pass, after the final two commits, reported Updated: 0, Failed: 0 across all 149 scenarios - correct, because the fixtures mask dependency versions as __VERSION__ and vortex-test-docs.yml is a maintenance workflow that is not part of the scaffolded fixture set. No template file was deleted, so no SutTrait.php follow-up is outstanding.

Gates

.vortex lint passed (phpcs, phpstan, rector across cli/tests/tooling, shellcheck, hadolint, markdownlint, cspell, CI config check). Docs tests passed (10 suites, 191 tests). CLI handler tests passed (422 tests, 1321 assertions). The full template-test matrix is CI's job and runs on this PR.

Screenshots

N/A

Before / After

┌─ BEFORE - 2.x, 25 commits behind main ─────────────────────────────
│
│  hadolint/hadolint     untagged, resolves to :latest at build time
│  content/**/*.mdx      unquoted glob, sh collapses ** to *
│  dclint / hadolint     mandatory tools, no opt-out
│  container images      mysql-8.4 / valkey-8 / clamav @ v26.7.0
│  Composer install      verbose, unsuppressed output
│  page content model    retained even when demo + search deselected
│  docs artifact         fetched by workflow name -> newest run on
│                        ANY branch, not the triggering commit
│
└──────────────────────────────────────────────────────────────────────

┌─ AFTER - 2.x, synced (15 forward-ported, 10 confirmed unneeded) ───
│
│  hadolint/hadolint     pinned to v2.15.0, tracked by Renovate
│  content/**/*.mdx      quoted, full recursive match, 74 pages linted
│  dclint / hadolint     optional, TOOL_DCLINT / TOOL_HADOLINT fences
│  container images      mysql-8.4 / valkey-8 / clamav @ v26.8.0
│  Composer install      suppressed via shared progress helpers
│  page content model    removed when demo + search both deselected
│  docs artifact         pinned to run_id -> always the triggering
│                        commit; one definition serves both majors
│
└──────────────────────────────────────────────────────────────────────

renovate Bot and others added 14 commits July 31, 2026 15:26
| datasource | package            | from   | to     |
| ---------- | ------------------ | ------ | ------ |
| docker     | uselagoon/valkey-8 | 26.7.0 | 26.8.0 |

(cherry picked from commit 7597541)
| datasource | package             | from   | to     |
| ---------- | ------------------- | ------ | ------ |
| docker     | uselagoon/mysql-8.4 | 26.7.0 | 26.8.0 |

(cherry picked from commit 3ca7c57)
)

Co-authored-by: Renovate Self Hosted <deploy+renovatebot@drevops.com>
(cherry picked from commit f5d9960)
… the standard progress helpers.

Forward-ported from main fa098d0.
| datasource  | package                         | from     | to      |
| ----------- | ------------------------------- | -------- | ------- |
| github-tags | release-drafter/release-drafter | v7.6.0   | v7.7.0  |
| github-tags | renovatebot/github-action       | v46.1.21 | v46.2.0 |

(cherry picked from commit d41596a)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
(cherry picked from commit 6816fc3)
…mentation page is checked.

Forward-ported from main 8bd16d3.
@coderabbitai

coderabbitai Bot commented Jul 31, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 12 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Repository UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 15045bdf-4b85-43be-a999-756323843c16

📥 Commits

Reviewing files that changed from the base of the PR and between 08a9809 and d9449a8.

⛔ Files ignored due to path filters (1)
  • .vortex/docs/yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (129)
  • .circleci/config.yml
  • .claude/skills/prepare-vortex-release/SKILL.md
  • .docker/clamav.dockerfile
  • .docker/cli.dockerfile
  • .docker/database.dockerfile
  • .docker/nginx-drupal.dockerfile
  • .docker/php.dockerfile
  • .docker/solr.dockerfile
  • .github/workflows/build-test-deploy.yml
  • .github/workflows/draft-release-notes.yml
  • .github/workflows/test-vr.yml
  • .github/workflows/update-dependencies.yml
  • .github/workflows/vortex-release.yml
  • .github/workflows/vortex-test-cli.yml
  • .github/workflows/vortex-test-common.yml
  • .github/workflows/vortex-test-docs.yml
  • .gitignore
  • .vortex/cli/src/Prompts/Handlers/CustomModules.php
  • .vortex/cli/src/Prompts/Handlers/Tools.php
  • .vortex/cli/tests/Fixtures/handler_process/_baseline/.docker/clamav.dockerfile
  • .vortex/cli/tests/Fixtures/handler_process/_baseline/.docker/cli.dockerfile
  • .vortex/cli/tests/Fixtures/handler_process/_baseline/.docker/database.dockerfile
  • .vortex/cli/tests/Fixtures/handler_process/_baseline/.docker/nginx-drupal.dockerfile
  • .vortex/cli/tests/Fixtures/handler_process/_baseline/.docker/php.dockerfile
  • .vortex/cli/tests/Fixtures/handler_process/_baseline/.docker/solr.dockerfile
  • .vortex/cli/tests/Fixtures/handler_process/_baseline/.github/workflows/build-test-deploy.yml
  • .vortex/cli/tests/Fixtures/handler_process/_baseline/renovate.json
  • .vortex/cli/tests/Fixtures/handler_process/_baseline/scripts/vortex-tooling.sh
  • .vortex/cli/tests/Fixtures/handler_process/ciprovider_circleci/.circleci/config.yml
  • .vortex/cli/tests/Fixtures/handler_process/code_coverage_provider_codecov_circleci/.circleci/config.yml
  • .vortex/cli/tests/Fixtures/handler_process/code_provider_other/renovate.json
  • .vortex/cli/tests/Fixtures/handler_process/custom_modules_none/.gitignore
  • .vortex/cli/tests/Fixtures/handler_process/custom_modules_none/recipes/page/-recipe.yml
  • .vortex/cli/tests/Fixtures/handler_process/custom_modules_none/recipes/page/config/-core.entity_form_display.node.page.default.yml
  • .vortex/cli/tests/Fixtures/handler_process/custom_modules_none/recipes/page/config/-core.entity_view_display.node.page.default.yml
  • .vortex/cli/tests/Fixtures/handler_process/custom_modules_none/recipes/page/config/-core.entity_view_display.node.page.teaser.yml
  • .vortex/cli/tests/Fixtures/handler_process/custom_modules_none/recipes/page/config/-field.field.node.page.body.yml
  • .vortex/cli/tests/Fixtures/handler_process/custom_modules_none/recipes/page/config/-field.storage.node.body.yml
  • .vortex/cli/tests/Fixtures/handler_process/custom_modules_none/recipes/page/config/-node.type.page.yml
  • .vortex/cli/tests/Fixtures/handler_process/deploy_types_all_circleci/.circleci/config.yml
  • .vortex/cli/tests/Fixtures/handler_process/deploy_types_none_circleci/.circleci/config.yml
  • .vortex/cli/tests/Fixtures/handler_process/deps_updates_provider_ci_circleci/.circleci/config.yml
  • .vortex/cli/tests/Fixtures/handler_process/hosting_acquia/.docker/cli.dockerfile
  • .vortex/cli/tests/Fixtures/handler_process/hosting_acquia/.docker/nginx-drupal.dockerfile
  • .vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/.docker/cli.dockerfile
  • .vortex/cli/tests/Fixtures/handler_process/hosting_project_name___acquia/.docker/nginx-drupal.dockerfile
  • .vortex/cli/tests/Fixtures/handler_process/migration_disabled_circleci/.circleci/config.yml
  • .vortex/cli/tests/Fixtures/handler_process/migration_enabled_circleci/.circleci/config.yml
  • .vortex/cli/tests/Fixtures/handler_process/names/.docker/cli.dockerfile
  • .vortex/cli/tests/Fixtures/handler_process/provision_profile_circleci/.circleci/config.yml
  • .vortex/cli/tests/Fixtures/handler_process/theme_claro/.docker/cli.dockerfile
  • .vortex/cli/tests/Fixtures/handler_process/theme_custom/.docker/cli.dockerfile
  • .vortex/cli/tests/Fixtures/handler_process/theme_olivero/.docker/cli.dockerfile
  • .vortex/cli/tests/Fixtures/handler_process/theme_stark/.docker/cli.dockerfile
  • .vortex/cli/tests/Fixtures/handler_process/timezone_circleci/.circleci/config.yml
  • .vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_lint_circleci/.circleci/config.yml
  • .vortex/cli/tests/Fixtures/handler_process/tools_groups_no_be_tests_circleci/.circleci/config.yml
  • .vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_circleci/.circleci/config.yml
  • .vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme/.docker/cli.dockerfile
  • .vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/.circleci/config.yml
  • .vortex/cli/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/.docker/cli.dockerfile
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_behat_circleci/.circleci/config.yml
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_dclint/-.dclintrc
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_dclint/.github/workflows/build-test-deploy.yml
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_dclint_circleci/-.dclintrc
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_dclint_circleci/.circleci/config.yml
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_dclint_circleci/.circleci/post-coverage-comment.sh
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_dclint_circleci/.dockerignore
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_dclint_circleci/.github/workflows/-build-test-deploy.yml
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_dclint_circleci/README.md
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_dclint_circleci/docs/ci.md
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_dclint_circleci/tests/phpunit/CircleCiConfigTest.php
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_dclint_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_docker_linters/-.dclintrc
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_docker_linters/.github/workflows/build-test-deploy.yml
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_docker_linters_circleci/-.dclintrc
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_docker_linters_circleci/.circleci/config.yml
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_docker_linters_circleci/.circleci/post-coverage-comment.sh
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_docker_linters_circleci/.dockerignore
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_docker_linters_circleci/.github/workflows/-build-test-deploy.yml
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_docker_linters_circleci/README.md
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_docker_linters_circleci/docs/ci.md
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_docker_linters_circleci/tests/phpunit/CircleCiConfigTest.php
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_docker_linters_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_circleci/.circleci/config.yml
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_eslint_no_theme/.docker/cli.dockerfile
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_hadolint/.github/workflows/build-test-deploy.yml
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_hadolint_circleci/.circleci/config.yml
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_hadolint_circleci/.circleci/post-coverage-comment.sh
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_hadolint_circleci/.dockerignore
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_hadolint_circleci/.github/workflows/-build-test-deploy.yml
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_hadolint_circleci/README.md
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_hadolint_circleci/docs/ci.md
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_hadolint_circleci/tests/phpunit/CircleCiConfigTest.php
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_hadolint_circleci/tests/phpunit/Drupal/EnvironmentSettingsTest.php
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_jest_circleci/.circleci/config.yml
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_phpcs_circleci/.circleci/config.yml
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_phpstan_circleci/.circleci/config.yml
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_phpunit_circleci/.circleci/config.yml
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_rector_circleci/.circleci/config.yml
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_circleci/.circleci/config.yml
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_stylelint_no_theme/.docker/cli.dockerfile
  • .vortex/cli/tests/Fixtures/handler_process/tools_no_twig_circleci/.circleci/config.yml
  • .vortex/cli/tests/Fixtures/handler_process/tools_none/-.dclintrc
  • .vortex/cli/tests/Fixtures/handler_process/tools_none/.github/workflows/build-test-deploy.yml
  • .vortex/cli/tests/Fixtures/handler_process/visual_regression_enabled/.github/workflows/test-vr.yml
  • .vortex/cli/tests/Functional/Handlers/CustomModulesHandlerProcessTest.php
  • .vortex/cli/tests/Functional/Handlers/ToolsHandlerProcessTest.php
  • .vortex/cli/tests/Unit/Handlers/AbstractHandlerDiscoveryTestCase.php
  • .vortex/cli/tests/Unit/Handlers/ToolsHandlerDiscoveryTest.php
  • .vortex/docs/.utils/VideoRecorder.php
  • .vortex/docs/content/architecture.mdx
  • .vortex/docs/content/contributing/maintenance/cli.mdx
  • .vortex/docs/content/contributing/maintenance/release.mdx
  • .vortex/docs/content/contributing/maintenance/template.mdx
  • .vortex/docs/content/development/visual-regression.mdx
  • .vortex/docs/content/support.mdx
  • .vortex/docs/content/tools/dclint.mdx
  • .vortex/docs/content/tools/hadolint.mdx
  • .vortex/docs/cspell.json
  • .vortex/docs/package.json
  • .vortex/docs/tests/unit/lint-globs.test.js
  • .vortex/tests/lint.dockerfiles.sh
  • .vortex/tests/update-test-assets
  • .vortex/tests/zizmor.yml
  • composer.json
  • docker-compose.yml
  • renovate.json
  • scripts/vortex-tooling.sh

Comment @coderabbitai help to get the list of available commands.

@github-actions

This comment has been minimized.

@AlexSkrypnyk

This comment has been minimized.

1 similar comment
@AlexSkrypnyk

This comment has been minimized.

@codecov

codecov Bot commented Jul 31, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 95.45455% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 88.15%. Comparing base (08a9809) to head (d9449a8).

Files with missing lines Patch % Lines
...Unit/Handlers/AbstractHandlerDiscoveryTestCase.php 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##              2.x    #2877      +/-   ##
==========================================
+ Coverage   88.11%   88.15%   +0.04%     
==========================================
  Files          98       98              
  Lines        5392     5412      +20     
  Branches        3        3              
==========================================
+ Hits         4751     4771      +20     
  Misses        641      641              

☔ 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.

@AlexSkrypnyk AlexSkrypnyk added the Needs review Pull request needs a review from assigned developers label Jul 31, 2026
@AlexSkrypnyk
AlexSkrypnyk enabled auto-merge (rebase) July 31, 2026 06:41
@AlexSkrypnyk
AlexSkrypnyk disabled auto-merge July 31, 2026 09:02
AlexSkrypnyk and others added 2 commits July 31, 2026 19:51
Co-authored-by: Renovate Self Hosted <deploy+renovatebot@drevops.com>
(cherry picked from commit 7840b3c)
@AlexSkrypnyk AlexSkrypnyk changed the title Forward-ported 13 commits from 'main' onto '2.x'. Forward-ported 15 commits from 'main' onto '2.x'. Jul 31, 2026
@github-actions

Copy link
Copy Markdown

Code coverage (threshold: 90%)

  Classes: 100.00% (1/1)
  Methods: 100.00% (2/2)
  Lines:   100.00% (153/153)
Per-class coverage
Drupal\ys_demo\Plugin\Block\CounterBlock
  Methods: 100.00% ( 2/ 2)   Lines: 100.00% ( 10/ 10)

@AlexSkrypnyk

This comment has been minimized.

2 similar comments
@AlexSkrypnyk

This comment has been minimized.

@AlexSkrypnyk

Copy link
Copy Markdown
Member Author

Code coverage (threshold: 90%)

  Classes: 100.00% (1/1)
  Methods: 100.00% (2/2)
  Lines:   100.00% (153/153)
Per-class coverage
Drupal\ys_demo\Plugin\Block\CounterBlock
  Methods: 100.00% ( 2/ 2)   Lines: 100.00% ( 10/ 10)

@github-actions

Copy link
Copy Markdown

📖 Documentation preview for this pull request has been deployed to Netlify:

https://6a6c76e40cfcbecac79baedc--vortex-docs.netlify.app

This preview is rebuilt on every commit and is not the production documentation site.

@AlexSkrypnyk
AlexSkrypnyk merged commit 8ff4348 into 2.x Jul 31, 2026
37 checks passed
@github-project-automation github-project-automation Bot moved this from BACKLOG to Release queue in Vortex 1.x Jul 31, 2026
@AlexSkrypnyk
AlexSkrypnyk deleted the feature/propagate-main-20260731 branch July 31, 2026 11:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Needs review Pull request needs a review from assigned developers

Projects

Status: Release queue

Development

Successfully merging this pull request may close these issues.

1 participant