Skip to content

Forward-ported 42 commits from 'main' onto '2.x'. - #3072

Merged
AlexSkrypnyk merged 57 commits into
2.xfrom
feature/propagate-main-20260831
Aug 31, 2026
Merged

Forward-ported 42 commits from 'main' onto '2.x'.#3072
AlexSkrypnyk merged 57 commits into
2.xfrom
feature/propagate-main-20260831

Conversation

@AlexSkrypnyk

@AlexSkrypnyk AlexSkrypnyk commented Aug 31, 2026

Copy link
Copy Markdown
Member

Summary

Forward-ports 42 commits from main onto 2.x, the first pass since the August run. main and 2.x have diverged substantially - 2.x replaced the installer with a multi-verb CLI, rewrote the shipped tooling from Bash to PHP, replaced the scripts/provision-*.sh chain with deploy_steps plugins, dropped the drevops/ci-runner container executor, and moved environment detection into drevops/environment-detector. Most commits therefore needed adaptation rather than a clean cherry-pick, and every port keeps this line's architecture and facts.

git cherry lists 167 commits on main that are not patch-present on 2.x. 114 of those were settled in earlier propagation runs, leaving 53 undecided: 42 are applied here and 11 are deliberately excluded and listed below.

Applied

Bug fixes

  • 732619293 Restored the Lagoon database override flag to the state it was discovered in - adapted: re-implemented in the PHP rewrite, BATS coverage replaced with PHPUnit.
  • 93d422ed4 Anchored environment variable prefixes forwarded by ahoy cli - clean cherry-pick.
  • 6ddee19e0 Fixed getProtectedValue() reading the property from the reflection class instead of the object - adapted: template fix only.
  • 180a09cf4 Fixed window.gtag is not a function in the docs dev server after a build - clean cherry-pick.
  • d1122642e Tracked .claude/skills/ in consumer projects by default - adapted: dropped the installer test hunk.

Provisioning and deploy steps

  • 1ffc2e85c Raised the InnoDB redo log capacity so large database dumps import - adapted: kept the local subtestSolr() name.
  • f8f5cd516 Raised the default Drush memory_limit to 1G - clean cherry-pick.
  • be036fc30 Excluded cache table data from the exported database dump - adapted: re-implemented in PHP, getenv() so an empty value disables it.
  • 16fad832f Added generated content provisioning to the development modules deploy step - adapted: re-implemented in EnableDevelopmentModulesDeployStep.
  • 3ef3c7677 Disabled the Solr search server while migrations run - adapted: re-implemented in MigrateContentDeployStep.
  • 44a2acc27 Required a ~ version constraint when installing the tooling package - adapted: pinned at the 2.0 series.

Continuous integration

  • 53c6b7508 Ran composer audit first and every audit check regardless of failures - adapted: CircleCI reorder reapplied against the folded job set.
  • c0c2aaa1c Freed preinstalled runner toolchains in the GitHub Actions test and build jobs - adapted: direct removal, jobs are not containerised here.
  • 90a02b360 Migrated release drafter's default version resolver to a version-resolver category - clean cherry-pick.
  • 01e6ccb15 Replaced per-step CI runner conditions with declared VORTEX_CI_IS_*_RUNNER roles - adapted: declared on the job env, prefixed.
  • 438b557e0 Renamed unprefixed CI_* variables to VORTEX_CI_* - adapted: reduced to docs and behat.yml, configs already prefixed.
  • 6ab64210f Replaced suspend_mail_send with a mail collector and a closed mail transport in CI - adapted: used the environment detector constant, kept the reroute-email guard.
  • 97b2b9b1c Suppressed docker compose cp progress output in CI - adapted: applied to every call site.

Behat and testing

  • bee1d7e22 Wired the remaining behat-steps traits into FeatureContext - adapted: bumped behat-steps so the traits resolve.
  • d19ec229f Skipped Behat animated screenshots in CI on behat-screenshot 2.6.0 - adapted: bumped from a lower constraint.
  • 70714d35e Updated template Composer dependencies and wired nine behat-steps traits into FeatureContext - adapted: resolved to the newer constraints.
  • 66f481d68 Added VORTEX_CI_BEHAT_PROFILE_OFFSET to decouple the Behat profile from the runner index - adapted: prefixed, documented in the CI overview.
  • 7f8d04442 Updated drevops/behat-steps to 3.14.1 - adapted: constraint only.

Front-end toolchain

  • 37954ee98 Raised the Prettier printWidth default to 160 and pinned doc comments to 80 - adapted: kept the local counter data attributes and theme behavior.
  • 3e6a29c1c Completed the Rector rename-skip family and audited the skip list - adapted: dropped the Hook-scoped skip, no src/Hook classes here.
  • 68f0a6510 Switched the template from Yarn to npm for module scripts and theme compilation - adapted: kept the local test timeouts and CI runner PHP checklist item.
  • dd3e1372a Adopted the Drupal core ESLint 9 configuration and updated the front-end toolchain - adapted: CLI property name, took the jQuery-free theme behavior.
  • ca0ca82f7 Synchronised npm lock files when the CLI removes front-end tools - adapted: new utility placed under the CLI namespace.

Documentation

  • 852fdf1fe Asserted that every documentation variable source yields variables - adapted: dropped the tooling-script publication, Shellvar reads only shell.
  • a793ce58a Disabled JetBrains Mono ligatures - adapted: CSS only.
  • 7184b0524 Refreshed the contrib module documentation and added a Modules reference page - adapted: restored the deploy_steps row, the CLI, and the deploy steps.
  • dd5b0ac07 Reconciled the Vortex documentation for coherence and corrected stale facts - adapted: kept this line's facts, rewrote the tooling page for PHP/PHPUnit.
  • 645b0b6f2 Restructured the documentation into a single Development section - adapted: adopted the IA, kept this line's facts, repointed broken links.
  • 3d557c5fd Recorded the demos at a 10:6 screen ratio and sized the home page to them - adapted: recorder and home page only.
  • 10eabe71e Served both documentation majors from one combined site built on every branch - adapted: kept the build-cli target.
  • 4f30e8646 Refused to render a demo video whose recorded output reports an issue - adapted: kept the cli-install name.

Dependencies and images

  • 7b6cdaf78 Update toshimaru/auto-author-assign action to v3.1.0 - clean cherry-pick.
  • c8559df24 Update Container images to v26.8.1 - clean cherry-pick.
  • 800617651 Update uselagoon/mysql-8.4 to v26.8.1 - adapted: also converted the two extra local guards.
  • 9e9c46d8e Update PHP packages except core - clean cherry-pick.
  • c0bf95495 Update dawidd6/action-download-artifact to v24 - adapted: pin set directly, was at v21.
  • 1c0ae9fa4 Update uselagoon/valkey-8 to v26.8.1 - adapted: kept the local service name and token.

Skipped

  • e8451d3b Replaced versioned Drupal Rector sets with the composer-based set - already present; rector.php here already uses DrupalSetProvider with withComposerBased().
  • 9df36c9f Removed unmodified template-owned paths the install no longer ships - the entire payload is .vortex/installer/**, which does not exist on this line.
  • 95ada7a8 Closed every task with a pass or a fail in shipped scripts - the PHP TASK() helper takes both a start and a finish message, so it closes by construction; the BATS tests it patched do not exist here.
  • 32be59cc Installed testmode from the development modules provision script - effectively present; ys_demo declares testmode as a dependency and configures it in ys_demo.deploy.php.
  • e899e9ec Update dawidd6/action-download-artifact to v23 - superseded by the v24 bump in this PR.
  • 55b7e24f Prepared the 1.41.0 release - release bookkeeping for the other line; pins the tooling to a 1.x version where this line requires ^2.0@alpha.
  • 4122e731 Re-recorded the demo videos and updated dependencies - the recordings belong to the other line and are re-recorded here.
  • cc7f3c8f Refreshed template and .vortex/ dependencies - touches .vortex/installer lock files; this line refreshes its own through the update-vortex-dev-deps skill.
  • 8cf24175 Made recorded terminal demos reproducible - reverted on main by 3d87e56f; the revert was verified complete, so the pair nets to nothing.
  • 3d87e56f Revert "Made recorded terminal demos reproducible" - the revert of a skipped commit.
  • 16d1a28f Replaced the provision task completion marker < with + - touches only scripts/provision-*.sh, none of which exist on this line.

Snapshots

ahoy update-snapshots was run from .vortex/ and has converged: 150 of 150 scenarios pass with 0 updates on a repeat run. Several follow-up fixes were needed to get there and are included as their own commits: a duplicated SSMTP_MAILHUB entry in the Docker Compose fixtures, stale ESLint 8 entries in the Acquia snapshot diffs, and the regenerated fixtures for the Prettier reflow and the generated-content guard.

No shipped template file was deleted in a way that leaves a stale SutTrait.php assertion: the one deletion that mattered, ys_base.module, had its assertion removed in the same commit.

The generated variables table was regenerated with ahoy update-docs. Its only substantive change is the new VORTEX_CI_FREE_DISK_SPACE row; the rest is a reflow, because dropping the tooling directory as a Shellvar input changed the table's column widths.

Gates

ahoy lint passes from .vortex/ - PHPCS, PHPStan, Rector, shell and Dockerfile linters, docs spellcheck, markdownlint, and the generated CircleCI config check. ahoy test-tooling passes with 808 tests and 3843 assertions. .circleci/vortex-test-common.yml was regenerated with php .vortex/tests/generate-vortex-dev-circleci.

The documentation builds standalone and as the combined two-major site, and its lint, spellcheck and 196 unit tests pass.

CI is green across all 38 checks, including every vortex-test-workflow leg, both vortex-test-cli matrix jobs, both providers' lint and test jobs, and the documentation workflow.

Notes for review

  • The documentation ports needed the most judgement. main reconciled and then restructured its docs against its own architecture, so its side of nearly every conflict describes the installer, the shell tooling, the provision scripts and the drevops/ci-runner container. This line's facts were kept throughout, the new maintenance page for the tooling package was rewritten for PHP and PHPUnit, and every link the restructure broke was repointed.
  • The CI runner-role variables were introduced directly as VORTEX_CI_IS_*_RUNNER rather than CI_IS_*, because this line already prefixes its CI variables. That makes the later rename commit a near no-op here.
  • The doctor, doctor-info and info demo recordings came across from the other line and should be re-recorded here with ahoy update-videos.
  • Two defects surfaced only under CI and are worth a look. Generating demo content now runs for real, and the Drupal CMS profile has no body field on its page type, so the demo plugin sets that field only when the bundle carries it - the same guard it already applied to moderation_state. Separately, a page pulls a shipped file in with a path that resolves against the checkout the build runs in, so assembling the combined site from this line could not find a file only the other major ships; each major's targets are now read from its own ref.

Before / After

                     merge-base (main <-> 2.x)
                              |
              +---------------+---------------+
              |                               |
             main                            2.x
              |                               |
   167 candidate commits              own diverged history:
   accumulated since the              CLI, PHP tooling,
   merge-base                         deploy_steps, ...
              |
              v
   settled in earlier runs ... 114
   (already applied or skipped)
              |
              v
   +--------------------------+
   |  this run's queue:  53   |
   +--------------------------+
              |
      +-------+-------+
      |               |
      v               v
   applied          skipped
     42                11
      |
      v
   2.x + feature/propagate-main-20260831
         (this PR)

AlexSkrypnyk and others added 30 commits August 31, 2026 12:54
…ered in.

Forward-ported from main 7326192.
Re-implemented in the PHP tooling rewrite; BATS coverage replaced with PHPUnit.
| datasource  | package                      | from   | to     |
| ----------- | ---------------------------- | ------ | ------ |
| github-tags | toshimaru/auto-author-assign | v3.0.3 | v3.1.0 |

(cherry picked from commit 7b6cdaf)
(cherry picked from commit 1ffc2e8)
Kept the 2.x 'subtestSolr()' name; fixtures regenerated separately.
(cherry picked from commit bee1d7e)
Bumped 'drevops/behat-steps' to '^3.13.0' so the added traits resolve; fixtures regenerated separately.
(cherry picked from commit f8f5cd5)
Fixtures regenerated separately.
…ts to 80.

(cherry picked from commit 37954ee)
Kept the 2.x counter data attributes and theme behavior; reflowed the affected test lines. Fixtures regenerated separately.
(cherry picked from commit 3e6a29c)
Dropped the 'RemoveUnusedPublicMethodParameterRector' skip and its 'Theme' handler line: 2.x ships no 'src/Hook' classes. Applied to the CLI config in place of the installer one.
Forward-ported from main be036fc.
Re-implemented in the PHP tooling rewrite; read the variable with 'getenv()' so an empty value still disables the option.
Forward-ported from main 852fdf1.
Dropped the tooling-script publication: those scripts are PHP on this line and Shellvar reads only shell, so the tooling directory is no longer passed as an input.
…' literally.

(cherry picked from commit a793ce5)
Dropped the generated variables table hunk: it documents a variable this line does not carry.
…y step.

Forward-ported from main 16fad83.
Re-implemented against the deploy step that replaced 'scripts/provision-10-enable-dev-modules.sh'; dropped the installer-side script removal, which has no counterpart here.
(cherry picked from commit 53c6b75)
Reapplied the CircleCI step reorder by hand against the folded job set; fixtures regenerated separately.
…nce page.

(cherry picked from commit 7184b05)
Restored this line's facts in the merged tables: the 'deploy_steps' requirement, the CLI in place of the installer, and the deploy steps in place of the removed provision scripts.
Forward-ported from main 3ef3c76.
Re-implemented in 'MigrateContentDeployStep', which replaced 'scripts/provision-20-migration.sh'; dropped the shell output-helper guidance, which has no counterpart in the PHP tooling.
…uild jobs.

(cherry picked from commit c0c2aaa)
Removes the toolchains directly rather than through a bind-mounting container, because these jobs run on the runner rather than inside one. Named the variable 'VORTEX_CI_FREE_DISK_SPACE' to match the prefix already used here, and targeted the 'test' job that absorbed the separate 'database' job.
…sion-resolver' category. (#3013)

(cherry picked from commit 90a02b3)
Forward-ported from main 44a2acc.
Pinned the example at the '2.0' series this line ships rather than main's '1.4'.
(cherry picked from commit 93d422e)
Fixtures regenerated separately.
…class instead of the object.

Forward-ported from main 6ddee19.
Ported the template fix only: the added harness unit tests cover traits that do not exist under '.vortex/tests' on this line.
…' 2.6.0.

(cherry picked from commit d19ec22)
Bumped 'drevops/behat-screenshot' from '^2.4.2' rather than main's '^2.5.0'; fixtures regenerated separately.
…RUNNER' roles.

(cherry picked from commit 01e6ccb)
Declared the roles on the job's own env rather than main's container executor, which this line does not use, and named them with the 'VORTEX_CI_' prefix already in use here. Fixtures regenerated separately.
… facts across all sections.

(cherry picked from commit dd5b0ac)
Kept this line's facts wherever main corrected its own: the CLI, PHP tooling, deploy steps, the environment detector and the runner-less CI. Rewrote the added tooling page for the PHP scripts and PHPUnit, repaired the auto-merged BATS sections in the template page, and dropped the parallelism page, which duplicates the section already in the CI overview.
…raits into 'FeatureContext'.

(cherry picked from commit 70714d3)
Fixtures regenerated separately.
…from the runner index.

(cherry picked from commit 66f481d)
Named with the 'VORTEX_CI_' prefix used here, and documented in the CI overview, where this line keeps the parallelism section. Fixtures regenerated separately.
(cherry picked from commit 7f8d044)
Left the re-recorded 'test-bdd' assets out: the recordings belong to the other line and are re-recorded here.
…th per-topic subsections and canonical tool pages.

(cherry picked from commit 645b0b6)
Adopted the new information architecture while keeping this line's facts throughout: the CLI, deploy steps in place of provision scripts, the PHP tooling, the environment detector and the prefixed CI variables. Re-homed the deploy step example beside its page and repointed every link the move broke. The added doctor and info recordings come from the other line and need re-recording here.
(cherry picked from commit 438b557)
Reduced to the documentation and 'behat.yml' comments: the CI configurations here already declare these variables with the prefix. Also corrected the job names the moved pages inherited.
(cherry picked from commit d112264)
Dropped the installer test hunk: that suite does not exist here. Fixtures regenerated separately.
…ompilation.

(cherry picked from commit 68f0a65)
Kept this line's longer functional-test timeouts and its CI runner PHP checklist item. Fixtures regenerated separately.
@AlexSkrypnyk

This comment has been minimized.

2 similar comments
@AlexSkrypnyk

This comment has been minimized.

@AlexSkrypnyk

This comment has been minimized.

Set the demo page body only when the bundle carries the field, so generating
content does not abort on an install profile with a different content model.
Restored the YAML comment marker in the update tests, where the flat ESLint
config rename had also rewritten the 'docker-compose.yml' markers.
@AlexSkrypnyk

This comment has been minimized.

@github-actions

This comment has been minimized.

@AlexSkrypnyk

This comment has been minimized.

1 similar comment
@AlexSkrypnyk

This comment has been minimized.

Adds 'VORTEX_CI_FREE_DISK_SPACE' and reflows the table, whose column widths
changed once the tooling directory stopped being a Shellvar input.
@github-actions

This comment has been minimized.

@AlexSkrypnyk

This comment has been minimized.

2 similar comments
@AlexSkrypnyk

This comment has been minimized.

@AlexSkrypnyk

This comment has been minimized.

…ed site.

A page pulls a shipped file in with a path that resolves against the checkout
the build runs in, so a file only one major ships could not be found when the
site was assembled from the other. Each major's targets are now extracted from
its own ref.

Also removed a duplicate import and repaired two links the restructure broke.
@github-actions

This comment has been minimized.

@AlexSkrypnyk

This comment has been minimized.

2 similar comments
@AlexSkrypnyk

This comment has been minimized.

@AlexSkrypnyk

This comment has been minimized.

@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://6a952c9f5e010a715b75620c--vortex-docs.netlify.app

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

@AlexSkrypnyk AlexSkrypnyk added the Needs review Pull request needs a review from assigned developers label Aug 31, 2026
@AlexSkrypnyk
AlexSkrypnyk merged commit 098394d into 2.x Aug 31, 2026
38 checks passed
@AlexSkrypnyk
AlexSkrypnyk deleted the feature/propagate-main-20260831 branch August 31, 2026 09:25
@github-project-automation github-project-automation Bot moved this from BACKLOG to Release queue in Vortex 1.x Aug 31, 2026
@AlexSkrypnyk AlexSkrypnyk added this to the 1.41.0 milestone Sep 1, 2026
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: Released in 1.41.0

Development

Successfully merging this pull request may close these issues.

1 participant