Repository navigation
Forward-ported the deferred decisions and refreshed dependencies on '2.x'. - #3236
Conversation
|
Important Review skippedToo many files! This PR contains 661 files, which is 361 over the limit of 300. To get a review, reduce the PR to 300 files or fewer by splitting it into smaller PRs or changing its base branch. Usage-priced reviews support at most 300 files.
|
This comment has been minimized.
This comment has been minimized.
|
📖 Documentation preview for this pull request has been deployed to Netlify: https://6adee1697318c75352d11b69--vortex-docs.netlify.app This preview is rebuilt on every commit and is not the production documentation site. |
…, as the Bash scripts did. The PHP port of the tooling let '.env' and '.env.local' replace variables already exported in the process environment, reversing the precedence of the Bash scripts.
Forward-ported the export-step hardening from main cf188dd. 2.x keeps database caching in the 'test' job, so the scheduled database job and the GitHub Actions DIDI workflow are not ported.
…R_MAINTENANCE_MODE'. Forward-ported from main d51c741, with the variable named 'VORTEX_WEBSERVER_MAINTENANCE_MODE' to match the 2.x vendor-agnostic service names.
Forward-ported from main c45688a. The CircleCI audit job switches to the 'cimg/php:8.4-node' image because the plain PHP image has no Node.js, GitHub Actions uses the Node.js preinstalled on 'ubuntu-latest', and the existing theme '.npmrc' keeps its 'unsafe-perm' line.
…ARIF. Forward-ported from main 3bdd10d. The Bash and jq converter is rewritten as the PHP tooling script 'vortex-convert-audit-sarif' with its BATS suite ported to PHPUnit, the Gitleaks step keeps the 2.x bind mount because GitHub Actions runs on the host, the upload pins use the latest 'upload-sarif' and 'upload-artifact' SHAs, the tooling variables are referenced without the generated variables table that only lists Bash scripts, and the 'drupal/generated_content' constraint is already ahead of main.
…ed 'drevops/phpcs-standard' to 1.1.0. Forward-ported from main 316e735. The allowlist files are created under their final 'package-audit.jsonc' name with the current expiry, and the 'drevops/phpcs-standard' 1.1.0 snake_case sniff required renaming camelCase parameters and their data provider keys in the CLI code that main had already converted.
…g check. Forward-ported from main 364bdd1. The allowlist filtering is ported into the PHP converter with PHPUnit cases mirroring the BATS ones, and the 'package-audit.jsonc' rename is already in place from the previous port.
Forward-ported the lock-file part of main f576e44 so the npm audit passes on 2.x. Ran 'npm audit fix --package-lock-only' in both trees and re-resolved the root 'brace-expansion' 1.x entry, which 'npm audit fix' left at 1.1.12.
… choose the auto-merged groups. Forward-ported from main 13f761c. Rebuilt the 'DependencyUpdatesAutomerge' handler for the 2.x CLI, gated in 'VortexForm' on a Renovate provider with a processing weight just before the provider, as the install summary is generated from the answers.
…e groups except Drupal core. Forward-ported from main 57950a0. Skipped the CircleCI Renovate image bump because 2.x already pins a newer image, and added the architecture bullet to both copies of its section on the 2.x page.
…sted Renovate image up to date. Forward-ported from main a3b1b16. Applied as on main, with 'LINKED_GROUPS' added to the 2.x CLI handler and the docs reworded for the 2.x page.
…n' 3.0 alpha and 'drevops/behat-screenshot' 3.0. Forward-ported from main ec77acf. Applied unchanged apart from mapping the installer handler and test paths to '.vortex/cli'.
The baseline 'behat.yml' was replaced by 'behat.php', so these patches no longer apply and block snapshot regeneration.
…rding. Follow-up to the forward-port of main 71ac877.
…atch. Follow-up to the forward-port of main 909660b; a separate install call adds a container rebuild to the deploy step.
…tion. Forward-ported from main 0d65b0a. Ported only the infrastructure (rules, vocabulary, 'lint-prose' script, CI step, 'Anchor' component, tests, 'lint' script fix and 'markdown.hooks' move) and regenerated the variables table; the prose fixes are left to a separate rewrite of the restructured 2.x pages.
Forward-ported the configuration part of main 52d6998. Took the 'MD013' options for both markdownlint configs and the wrapping guidance in the 'CLAUDE.md' files; the rewrap of the 2.x Markdown files is left to a separate content pass, and 'MD060: false' from 209e0e7 is not added because 2.x runs markdownlint 0.38, which has no 'MD060'.
Forward-ported the '.vortex/docs/CLAUDE.md' part of main 807fc1e. The 1.x features page text is not taken; the 2.x page keeps its own content for a separate refresh against the 2.x template.
…e claims that had drifted from the 2.x template. Forward-ported the content passes of main e7af8e9, 52d6998 and 807fc1e as a fresh pass over the 2.x pages, since main's diffs describe 1.x. Every page now passes Vale, the 76-character Markdown line limit and cspell, the features page follows its conventions, and the claims are checked against the 2.x template (CLI, PHP tooling, deploy steps, environment detector, service names, Behat 4, Storybook, the security audit chain and the update model).
Forward-ported from main 27cd2a4. Applied to the 2.x CLI 'Tools' handler and its process test under '.vortex/cli/' and regenerated both template lock files with npm.
Forward-ported from main 209e0e7. Ported only the template JavaScript part (root and theme manifests, both ESLint configs and the 2.x CLI 'Tools' handler); container images, Composer packages and '.vortex/' dependencies are handled separately.
….json'. Forward-ported from main 4c56bc4. Applied as is; the lock file already resolved the raised minimums, so it needed no change.
…sions. Refreshed the root and theme 'package-lock.json' files with 'npm update --package-lock-only' after the manifest changes forward-ported from main.
Forward-ported from main 4817058. Ported main's PR body artifact, matrix check, 'lint-prose' step, '/open-pr body=' with '--skip-verify' and red-flag line, and dropped the staging of '.vortex/cli/patches.lock.json' and the git-ignored box 'composer.json', which do not exist as tracked files on 2.x.
…x and 'phpunit/phpunit' to 12. Forward-ported from main a6bdaf7, f576e44, a4a1a5c, 4817058 and the '.vortex/installer' part of 209e0e7. Applied to '.vortex/cli' (main's installer) with the same majors main took ('alexskrypnyk/file' 1.x, 'alexskrypnyk/phpunit-helpers' 1.x, 'phpunit/phpunit' 12, 'sebastian/diff' 7, 'guzzlehttp/guzzle' 8), the 'assertSnapshotMatchesBaseline()' argument order, the 'php83' Rector set and its lint-fix fallout.
…1.x and 'markdownlint-cli2' to 0.24. Forward-ported from main a6bdaf7, f576e44, a4a1a5c, 4817058 and the '.vortex/tests' part of 209e0e7. Applied the 'phpunit-helpers' 1.x renames ('logSetVerbose()', 'processStreamingOutput', 'logStepMethodPrefix') and disabled 'MD060' as main did for 'markdownlint' 0.42.
…nd 'drevops/phpcs-standard' 1.x. Forward-ported from main a6bdaf7, a4a1a5c and 4817058. The 2.x tooling is a PHP package with its own PHPUnit suite, so it takes the same dev constraints main uses in '.vortex/installer' and '.vortex/tests'; its 'composer.lock' stays local and the runtime 'php' constraint is unchanged.
…g Library, 'cspell', 'globals', 'markdownlint-cli2', 'sharp-cli' and the local search plugin. Forward-ported from main a6bdaf7, f576e44, a4a1a5c, 4817058 and the '.vortex/docs' part of 209e0e7. Took the same majors as main, ported the 'VerticalTabs' test to set the URL through the History API because jsdom 26 does not allow 'window.location' to be redefined, and disabled 'MD060'.
4d9ef12 to
207e119
Compare
|
Code coverage (threshold: 90%) Per-class coverage |
This comment has been minimized.
This comment has been minimized.
2 similar comments
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## 2.x #3236 +/- ##
==========================================
+ Coverage 87.54% 88.33% +0.79%
==========================================
Files 106 111 +5
Lines 5683 6165 +482
Branches 3 3
==========================================
+ Hits 4975 5446 +471
- Misses 708 719 +11 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
This comment has been minimized.
This comment has been minimized.
1 similar comment
|
Code coverage (threshold: 90%) Per-class coverage |
Scope
Second half of the
main->2.xforward-port, split out of #3233 so each PR stays rebase-mergeable. It settles the 9 product decisions the first half raised, ports themaincommits behind them, and refreshes the dependencies. 51 commits.Follows #3233, which is merged; this branch is rebased onto it. It's the same code that was reviewed in #3235.
The decisions
audit-ciwithpackage-audit.jsonc, SARIF upload to code scanning, converter rewritten in PHP with tests,drevops/phpcs-standard1.1.0, high-severity npm advisories clearedvortex-storybook,BuildStorybookDeployStepinys_base, settings, webserver config, theme files, Ahoy subtestbehat.php, behat-steps 4.x, Behat 4.0,friends-of-behat/mink-extension3.0 alpha, behat-screenshot 3.0, every feature file rewordedVortexhouse style, MD013 at 76 characters, AI-pattern removal, a fresh documentation-voice rewrite of all 83 pages and the Markdown files with every claim checked against 2.x, features-page conventions.logs/vortex-update.mdVORTEX_WEBSERVER_MAINTENANCE_MODE(renamed to match 2.x service names).envprecedence.env,.env.localstill overrides.env, as main's Bash didDependencies
eslint-plugin-import-x([#3218] Updated 'eslint' and '@eslint/js' to 10. #3219), the JS majors from Updated all packages to their latest versions and all container images to their latest tags. #3227 (Stylelint 17,eslint-plugin-yml3,globals17,postcss-cli12, node>= 22.13, no more@eslint/compat), and the rootoverrides(Update JavaScript - All packages - Minor and patch #3232). The root and themepackage.jsonand ESLint configs now matchmain, every direct dependency is at its latest version, and the npm audit reports 0 vulnerabilities..vortex/subsystems: fresh refreshes of.vortex/cli,.vortex/tests,.vortex/toolingand.vortex/docs(Refreshed '.vortex/' dev dependencies, upgraded 'alexskrypnyk/*' to 1.x and raised the installer to PHP 8.3. #3090, Refreshed '.vortex/' dev dependencies for September 2026 and cleared high-severity npm advisories in the root and theme lock files. #3168, Refreshed '.vortex/' dev dependencies for October 2026. #3199, Refreshed '.vortex/' dev dependencies for October 2026. #3206, the.vortexpart of Updated all packages to their latest versions and all container images to their latest tags. #3227).alexskrypnyk/*moves to 1.x withmain's API renames, the CLI moves to PHPUnit 12 and thephp83Rector sets, the docs move to Jest 30 and markdownlint-cli2 0.24 (MD060: false).update-vortex-dev-depsskill is fixed for the 2.x layout (it staged files that don't exist on 2.x) and picks upmain's skill fixes.Fixes found along the way
'prod'/'dev'never match the detector'sproduction/development, so the development modules step ran in production and the search index never rebuilt in development. They now use theEnvironmentconstants (the docs example too).reroute_emailis installed in the batched development module list again; a separate install call added a container rebuild that tipped the Drupal CMS build over the idle timeout.Not in this PR
.vortex/cliand tooling ([#3115] Settled the installer's file checks, badge detection, width measurement and test scaffolding. #3126 and earlier sweeps).cli-install,test-bddandprovisionare stale and need re-recording.Worth a look
.env.main.Snapshots and gates
ahoy update-snapshotsran after each group; the final run covered 155 scenarios with 0 failures.Vortex - Test docsand the full template-test matrix.ahoy lint,.vortex/cli(1742 tests),.vortex/tooling(936 tests), and the docs tests and build.