-
-
Notifications
You must be signed in to change notification settings - Fork 0
Updated to Vortex 25.10.0 and updated packages. #119
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
📝 WalkthroughWalkthroughReplaces Valkey with Redis across infra and tests, bumps many container and package versions, refactors build/provision/reload flows and Ahoy commands (adds Changes
Sequence Diagram(s)sequenceDiagram
participant Dev as Developer
participant Ahoy as ahoy CLI
participant Docker as Docker Compose
participant Provision as provision.sh
rect rgb(220,235,255)
Note right of Ahoy: Build -> gated provision flow
end
Dev->>Ahoy: ahoy build
Ahoy->>Ahoy: VORTEX_SHOW_LOGIN=0 ahoy provision
Ahoy->>Provision: run provision.sh (with env)
Provision->>Docker: [if VORTEX_DB_IMAGE set] ahoy reload-db
Docker->>Docker: docker compose rm --force --stop --volumes database
Docker->>Docker: docker compose build database
Docker->>Ahoy: ahoy up
Provision->>Ahoy: [if VORTEX_SHOW_LOGIN=1] ahoy login || true
Ahoy->>Dev: Build/provision complete (shows login if enabled)
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Areas needing extra attention:
Possibly related PRs
Suggested labels
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 7
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
⛔ Files ignored due to path filters (2)
composer.lockis excluded by!**/*.lockyarn.lockis excluded by!**/yarn.lock,!**/*.lock
📒 Files selected for processing (41)
.ahoy.yml(7 hunks).docker/clamav.dockerfile(1 hunks).docker/cli.dockerfile(2 hunks).docker/database.dockerfile(1 hunks).docker/nginx-drupal.dockerfile(2 hunks).docker/php.dockerfile(1 hunks).docker/solr.dockerfile(1 hunks).dockerignore(0 hunks).editorconfig(1 hunks).env(1 hunks).eslintignore(1 hunks).github/workflows/build-test-deploy.yml(13 hunks).gitignore(1 hunks).prettierrc.json(1 hunks).stylelintrc.js(1 hunks)CLAUDE.md(2 hunks)README.md(1 hunks)behat.yml(1 hunks)composer.json(1 hunks)docker-compose.yml(7 hunks)docs/ci.md(1 hunks)docs/faqs.md(4 hunks)package.json(1 hunks)phpcs.xml(1 hunks)phpmd.xml(0 hunks)phpstan.neon(1 hunks)phpunit.xml(1 hunks)rector.php(1 hunks)scripts/vortex/deploy-lagoon.sh(1 hunks)scripts/vortex/export-db-file.sh(0 hunks)scripts/vortex/export-db-image.sh(1 hunks)scripts/vortex/notify-github.sh(1 hunks)scripts/vortex/provision.sh(4 hunks)scripts/vortex/task-custom-lagoon.sh(1 hunks)tests/behat/bootstrap/FeatureContext.php(2 hunks)tests/behat/features/login.feature(1 hunks)tests/phpunit/Drupal/SettingsTestCase.php(1 hunks)tests/phpunit/Drupal/SwitchableSettingsTest.php(20 hunks)web/sites/default/includes/modules/settings.redis.php(3 hunks)web/sites/default/includes/modules/settings.trusted_hosts.php(1 hunks)web/sites/default/settings.php(6 hunks)
💤 Files with no reviewable changes (3)
- scripts/vortex/export-db-file.sh
- .dockerignore
- phpmd.xml
🧰 Additional context used
📓 Path-based instructions (4)
scripts/vortex/**
📄 CodeRabbit inference engine (CLAUDE.md)
Do not modify files under scripts/vortex (core Vortex scripts)
Files:
scripts/vortex/deploy-lagoon.shscripts/vortex/export-db-image.shscripts/vortex/task-custom-lagoon.shscripts/vortex/notify-github.shscripts/vortex/provision.sh
tests/phpunit/**/*.php
📄 CodeRabbit inference engine (CLAUDE.md)
Store unit/integration tests for PHPUnit under tests/phpunit/
Files:
tests/phpunit/Drupal/SwitchableSettingsTest.phptests/phpunit/Drupal/SettingsTestCase.php
tests/behat/features/**/*.feature
📄 CodeRabbit inference engine (CLAUDE.md)
tests/behat/features/**/*.feature: All Behat feature files must start with the required user story format (Feature title, As a [user type], I want to…, So that…)
Use only the standard user types in Behat user stories: 'As a site visitor', 'As a site administrator', 'As a content editor', 'As a authenticated user'
Test data in Behat scenarios must use the [TEST] prefix and follow conventions (use numbered patterns like [TEST] Topic 1/2, avoid real names like 'Workshop' or 'Training', be descriptive)
Files:
tests/behat/features/login.feature
composer.json
📄 CodeRabbit inference engine (CLAUDE.md)
When adding JS/CSS libraries to Drupal as Composer packages, define them in composer.json repositories with type "drupal-library" and require them via Composer
Files:
composer.json
🧠 Learnings (8)
📚 Learning: 2025-09-09T03:52:28.058Z
Learnt from: CR
Repo: drevops/website PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-09-09T03:52:28.058Z
Learning: All local development and project commands should be executed via the ahoy task runner (use the `ahoy` prefix)
Applied to files:
docs/faqs.md.ahoy.yml
📚 Learning: 2025-09-09T03:52:28.058Z
Learnt from: CR
Repo: drevops/website PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-09-09T03:52:28.058Z
Learning: Applies to tests/behat/behat.yml : Keep Behat configuration in tests/behat/behat.yml
Applied to files:
behat.ymltests/behat/features/login.feature
📚 Learning: 2025-06-19T10:24:22.159Z
Learnt from: AlexSkrypnyk
Repo: drevops/website PR: 64
File: config/default/views.view.scheduled_transitions.yml:428-456
Timestamp: 2025-06-19T10:24:22.159Z
Learning: Valkey is a fork of Redis that maintains full API compatibility and has equivalent memory usage and performance characteristics. A Redis to Valkey migration does not impact memory pressure or performance.
Applied to files:
.envtests/phpunit/Drupal/SwitchableSettingsTest.phpCLAUDE.md
📚 Learning: 2025-09-09T03:52:28.058Z
Learnt from: CR
Repo: drevops/website PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-09-09T03:52:28.058Z
Learning: Applies to tests/phpunit/**/*.php : Store unit/integration tests for PHPUnit under tests/phpunit/
Applied to files:
phpunit.xml
📚 Learning: 2025-09-09T03:52:28.058Z
Learnt from: CR
Repo: drevops/website PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-09-09T03:52:28.058Z
Learning: Applies to tests/behat/features/**/*.feature : Use only the standard user types in Behat user stories: 'As a site visitor', 'As a site administrator', 'As a content editor', 'As a authenticated user'
Applied to files:
tests/behat/features/login.feature
📚 Learning: 2025-09-09T03:52:28.058Z
Learnt from: CR
Repo: drevops/website PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-09-09T03:52:28.058Z
Learning: Applies to tests/behat/features/**/*.feature : All Behat feature files must start with the required user story format (Feature title, As a [user type], I want to…, So that…)
Applied to files:
tests/behat/features/login.feature
📚 Learning: 2025-09-09T03:52:28.058Z
Learnt from: CR
Repo: drevops/website PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-09-09T03:52:28.058Z
Learning: Applies to tests/behat/features/**/*.feature : Test data in Behat scenarios must use the [TEST] prefix and follow conventions (use numbered patterns like [TEST] Topic 1/2, avoid real names like 'Workshop' or 'Training', be descriptive)
Applied to files:
tests/behat/features/login.feature
📚 Learning: 2025-09-09T03:52:28.058Z
Learnt from: CR
Repo: drevops/website PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-09-09T03:52:28.058Z
Learning: Applies to composer.json : When adding JS/CSS libraries to Drupal as Composer packages, define them in composer.json repositories with type "drupal-library" and require them via Composer
Applied to files:
CLAUDE.mdcomposer.json
🧬 Code graph analysis (3)
scripts/vortex/export-db-image.sh (1)
scripts/vortex/deploy-lagoon.sh (1)
note(79-79)
tests/phpunit/Drupal/SwitchableSettingsTest.php (1)
tests/phpunit/Drupal/SettingsTestCase.php (2)
setEnvVars(132-163)requireSettingsFile(202-221)
scripts/vortex/provision.sh (1)
scripts/vortex/deploy-lagoon.sh (2)
note(79-79)info(81-81)
🪛 LanguageTool
docs/faqs.md
[grammar] ~145-~145: Ensure spelling is correct
Context: ...ript` tag sometimes get stuck for about 10min then fail. The Chrome container randoml...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
🪛 markdownlint-cli2 (0.18.1)
docs/faqs.md
59-59: Bare URL used
(MD034, no-bare-urls)
🪛 PHPMD (2.15.0)
tests/phpunit/Drupal/SwitchableSettingsTest.php
243-243: Avoid using undefined variables such as '$settings' which will lead to PHP notices. (undefined)
(UndefinedVariable)
244-244: Avoid using undefined variables such as '$settings' which will lead to PHP notices. (undefined)
(UndefinedVariable)
292-292: Avoid using undefined variables such as '$settings' which will lead to PHP notices. (undefined)
(UndefinedVariable)
293-293: Avoid using undefined variables such as '$settings' which will lead to PHP notices. (undefined)
(UndefinedVariable)
294-294: Avoid using undefined variables such as '$settings' which will lead to PHP notices. (undefined)
(UndefinedVariable)
🪛 YAMLlint (1.37.1)
docker-compose.yml
[warning] 160-160: too few spaces before comment: expected 2
(comments)
[warning] 172-172: too few spaces before comment: expected 2
(comments)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: database
🔇 Additional comments (51)
.gitignore (1)
4-4: LGTM!The comment improvement from "Ignore Drupal web" to "Ignore Drupal webroot." is a minor but welcome clarification that adds precision and consistency to the documentation.
phpcs.xml (1)
15-16: The original review comment is incorrect.The
DrevOps.NamingConventions.LocalVariableSnakeCaseandDrevOps.NamingConventions.ParameterSnakeCasesniffs are defined in the external package drevops/phpcs-standard, a PHP_CodeSniffer standard enforcing snake_case for local variables and parameters. The package is properly declared in composer.json as"drevops/phpcs-standard": "^0.2.0", which matches the latest release: v0.2.0 (Nov 1, 2025). Thedealerdirect/phpcodesniffer-composer-installerdependency is configured to auto-discover these standards. PHPCS will successfully load these rules without error. No verification or fixes are required.Likely an incorrect or invalid review comment.
README.md (1)
17-17: LGTM!The Vortex version badge correctly reflects the upgrade to 25.10.0 as stated in the PR objectives.
docs/ci.md (1)
15-16: LGTM!Formatting adjustment with no impact on content or meaning.
phpstan.neon (1)
14-14: LGTM!PHPStan PHP version updated to 8.3.27, aligning with the broader PHP ecosystem updates in this PR.
behat.yml (1)
102-106: LGTM!The addition of
info_typesconfiguration enhances screenshot metadata with url, feature, step, and datetime information. This is a useful additive change that doesn't affect existing behavior.Note: Retrieved learnings indicate Behat configuration should be in
tests/behat/behat.yml, but this file is at the project root. If there's a specific preference for Behat config location, please verify this aligns with project conventions.Based on learnings
.editorconfig (1)
28-29: Intent verified: package.json indentation is consistent with the new EditorConfig rule.The package.json file uses 2-space indentation per level (2 spaces for top-level properties, 4 spaces for nested properties), which matches the new
[package.json]section settingindent_size = 2. The override is intentional and the file is already properly formatted..docker/php.dockerfile (1)
15-15: ✓ Base image version bump looks good.Straightforward patch-version update in line with the broader Vortex 25.10.0 migration described in the PR.
.docker/database.dockerfile (1)
8-8: ✓ Database image version bump looks good.Straightforward patch-version update aligned with the Vortex 25.10.0 migration.
.docker/nginx-drupal.dockerfile (1)
14-14: Verify fix-permissions command exists in nginx-drupal:25.10.0.The addition of
RUN fix-permissions /etc/nginxon Line 24 assumes this utility exists in the base image. Ensure:
- The
fix-permissionscommand is available inuselagoon/nginx-drupal:25.10.0- This permission fix is necessary for the new base image version (may be required due to 25.8.0 → 25.10.0 changes)
Verify the command is compatible by checking the base image documentation or running a build validation.
Also applies to: 24-24
.env (1)
73-74: ✓ Redis terminology update is clear and appropriate.Comment updated for clarity. Per learnings, Valkey and Redis maintain full API compatibility, so this documentation improvement has no functional impact. The variable
DRUPAL_REDIS_ENABLEDremains unchanged and functional..docker/cli.dockerfile (3)
5-5: ✓ Hadolint SC2174 directive is appropriate.SC2174 is a shellcheck warning for
mkdir -ppotentially silencing failures. This ignore is consistent with the pattern of consolidating the mkdir command on Line 86.
10-10: ✓ Base image version bump looks good.Straightforward patch-version update aligned with the Vortex 25.10.0 migration.
86-86: No changes needed; original review comment's premise is incorrect.The verification found no evidence of a prior
chmod 0770operation. The currentmkdir -p -m 2775appears to be the original code design (as indicated by the "set correct permissions" comment), not a consolidation of two separate operations. The review comment incorrectly assumes a code change occurred that replaced a separatechmod 0770call, but the file history and current state show only themkdir -p -m 2775command.Likely an incorrect or invalid review comment.
.prettierrc.json (1)
6-6: No issues found — prettier-plugin-jsdoc is properly installed and compatible.Verification confirms prettier-plugin-jsdoc ^1.5.0 and prettier ^3.6.2 are in devDependencies, satisfying the version requirements for this configuration change.
.docker/solr.dockerfile (1)
8-8: The review comment's core claim is incorrect: solr.dockerfile does not have a CLI stage to remove.The solr.dockerfile has never contained the
ARG CLI_IMAGEor intermediate CLI stage that the comment references. Comparison with other Dockerfiles shows php.dockerfile and nginx-drupal.dockerfile both define CLI stages, but solr.dockerfile's current structure (only a base image, config copy, and run commands) matches its original design, not a removal.The one valid observation is the version divergence: Solr uses 25.9.0 while all other images (cli, nginx-drupal, php, clamav, database) use 25.10.0. Verify whether this version difference is intentional.
Likely an incorrect or invalid review comment.
phpunit.xml (1)
22-22: Now let me search for information about PHPUnit 11 breaking changes and migration requirements:
The review comment is based on outdated assumptions about this codebase's state. Framework support for testing with PHPUnit 10 is removed in Drupal 11.3.0-alpha1; both core and contrib can now only run tests with PHPUnit 11. The phpunit.xml already points to schema 11.5, which is the correct and required schema for Drupal 11.3+. The suggestion to test with PHPUnit 10.5 is no longer viable for this project.
If deprecation concerns exist, they would be caught by the existing configuration flags
failOnPhpunitDeprecation="true"anddisplayDetailsOnPhpunitDeprecations="true"already set in the phpunit.xml. Verify your test suite passes with the current schema to confirm no breaking changes have affected your tests.Likely an incorrect or invalid review comment.
.stylelintrc.js (1)
39-39: LGTM! Formatting adjustment only.The trailing newline adjustment maintains consistent file formatting without affecting the stylelint configuration.
tests/behat/bootstrap/FeatureContext.php (1)
33-33: LGTM! Clean trait addition.The JavascriptTrait import and usage follow the established pattern in this class, enabling JavaScript-related Behat steps for enhanced testing capabilities.
Also applies to: 59-59
tests/behat/features/login.feature (1)
12-13: LGTM! Enhanced test validation.Adding path assertions before screenshots ensures successful navigation, strengthening test validation. The feature file correctly follows coding guidelines with proper user story format and standard user type.
Based on learnings
Also applies to: 19-20
.ahoy.yml (5)
25-26: LGTM! Improved build workflow UX.Suppressing the login prompt during provision and showing it explicitly in the info command creates a cleaner build experience.
125-127: LGTM! Improved command readability.Separating docker compose commands onto individual lines improves readability without changing functionality.
133-135: LGTM! Enhanced provision flexibility.The conditional execution based on VORTEX_DB_IMAGE and VORTEX_SHOW_LOGIN (with sensible default) makes the provision command more flexible and resilient.
248-250: LGTM! Better Xdebug debug workflow.The enhanced debug command checks for existing Xdebug configuration and provides clear status messages, improving the developer experience.
102-104: Redis service verified; flush-redis command is correctly configured.The
redisservice is properly defined in docker-compose.yml (line 169), and the flush-redis command correctly references it. No issues found.package.json (1)
22-27: LGTM! Standard dependency maintenance.The dev dependency updates (eslint plugins, stylelint) and the addition of prettier-plugin-jsdoc are standard maintenance updates that enhance code quality tooling.
CLAUDE.md (2)
308-319: LGTM! Correct Redis terminology update.The renaming from "Valkey/Redis" to "Redis" aligns with the repository-wide migration and maintains consistency across documentation.
350-531: Comprehensive patching documentation is well-structured and helpful.The section provides clear, step-by-step guidance on module patching with proper best practices and troubleshooting. No duplication was found—the section appears only once in the file.
composer.json (1)
11-71: LGTM! Comprehensive dependency updates.The dependency updates include:
- Drupal core packages (11.2.4 → 11.2.7)
- Drupal contrib modules (various minor/patch updates)
- Development tooling (Behat, PHPStan, Rector, etc.)
All updates are appropriate for the Vortex 25.10.0 upgrade and follow semantic versioning.
docs/faqs.md (3)
68-68: LGTM! Improved Behat debugging command.Using the
--xdebugflag makes the debugging intent more explicit and aligns with Behat best practices.
79-81: LGTM! Clearer branch switching guidance.The clarification that
ahoy provisionupdates the environment without requiring a full rebuild improves user understanding.
111-112: LGTM! Clearer patch description labels.The updated patch description labels ("Remote" vs "Local") make the examples more explicit and align with the expanded patching documentation.
tests/phpunit/Drupal/SwitchableSettingsTest.php (3)
231-252: LGTM! Consistent Redis naming migration.The test method has been properly renamed from
testValkeytotestRedis, and the environment variables have been updated fromVALKEY_*toREDIS_*to align with the broader Redis integration changes in this PR.Based on learnings (Valkey maintains full API compatibility with Redis, so this renaming does not impact functionality).
279-301: LGTM! Test refactored to focus on custom Redis configuration.The method has been appropriately renamed from
testRedisValkeyPrecedencetotestRedisCustomPort, and the test now validates custom Redis host and port configuration rather than precedence logic.
319-533: LGTM! Shield settings data provider simplified consistently.The data provider has been updated to streamline the shield configuration structure across all test cases, maintaining consistency with the
shield_enableboolean and credentials while removing extraneous keys.web/sites/default/settings.php (2)
35-41: LGTM! Improved environment variable fallback chain.The refactored syntax groups all
getenv()calls together with explicit precedence, ensuring the final default value is only applied after all environment variable options are exhausted. This provides clearer evaluation order and safer defaults.Note: The
?:operator treats empty strings as falsy, while??only checks for null/undefined. Ensure that environment variables are not set to empty strings if they should use the default value.
53-54: LGTM! Cleaner syntax with null coalescing assignment operator.The change from
$app_root = $app_root ?? DRUPAL_ROOTto$app_root ??= DRUPAL_ROOTis a cleaner, more idiomatic approach using PHP's null coalescing assignment operator with no functional change.scripts/vortex/provision.sh (3)
64-66: LGTM! New variable for pre-built database container images.The addition of
VORTEX_DB_IMAGEenables support for database images with baked-in data, expanding deployment options.
125-127: LGTM! Conditional display of database image information.The provisioning info block correctly displays the database image only when it's defined, using safe parameter expansion.
197-227: LGTM! Comprehensive logic for database image support.The provisioning logic correctly handles multiple scenarios:
- When a database image is provided with an existing site, it preserves content and marks the database as fresh (since container restarts bring a fresh DB).
- When a database image is provided but no site exists, it correctly identifies this as a corrupted image scenario and exits with an error.
- The precedence order (DB image → override flag → preserve) ensures container-baked databases take priority over dump files.
.github/workflows/build-test-deploy.yml (6)
18-20: LGTM! Tag-based workflow trigger added.The addition of tag triggers enables the workflow to run on version tag pushes, supporting release automation workflows.
57-57: LGTM! Container image version updated consistently.The CI runner image has been updated from 25.8.0 to 25.10.0 across all jobs, aligning with the broader Vortex upgrade in this PR.
119-123: LGTM! Database cache keys updated for new version.The cache keys have been updated to
v25.10.0-db11, which will force cache invalidation and ensure compatibility with the upgraded Vortex version. This is expected behavior for a major version upgrade.
244-250: LGTM! Tar-based artifact handling is more efficient.The change from direct directory export to tar archive provides:
- Single-file atomic transfer
- Reduced storage and bandwidth usage
- Preserved file permissions with the
-pflagThis is a cleaner and more efficient approach for GitHub Actions artifacts.
406-410: LGTM! Unpack step complements tar-based artifact flow.The unpack step correctly extracts the tar archive before deployment, maintaining the artifact-based deployment flow.
424-424: LGTM! Deploy mode distinguishes tags from branches.The addition of
VORTEX_DEPLOY_MODEenables different deployment strategies for version tags versus branch pushes, supporting proper release workflows.docker-compose.yml (5)
46-46: LGTM! Sensible default theme value.Setting
DRUPAL_THEMEto "olivero" (Drupal's default frontend theme) provides a sensible fallback when the environment variable is not explicitly set.
103-105: LGTM! Explicit dependency improves startup reliability.Adding
wait-for-dependenciesas a dependency withservice_completed_successfullyensures all required services (database, Redis, Solr, ClamAV) are fully available before the CLI container starts, preventing race conditions during provisioning.
160-160: LGTM! Database image updated with custom image support.The database image has been updated to 25.10.0, and now supports custom database images via
VORTEX_DB_IMAGE, aligning with the provisioning script changes.
169-172: LGTM! Service renamed to Redis for clarity.The service has been renamed from
valkeytorediswhile continuing to use the Valkey image (which maintains full Redis API compatibility). This provides clearer naming for developers while preserving the underlying implementation.Based on learnings.
217-229: LGTM! Comprehensive service readiness checks.The
wait-for-dependenciesservice has been improved with:
- Updated image version (25.9.0)
- Removal of circular dependency (CLI no longer listed here since CLI depends on this service)
- Explicit checks for all required services including Redis and Solr
- Solr API readiness probe via curl, verifying actual query response rather than just port availability
This ensures all services are truly ready before dependent containers start.
| web/sites/*/files/ | ||
| *.min.js | ||
| *.min.css | ||
| *.min.css |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Verify unintentional change.
This line appears to be deleted and re-added with no actual change (a no-op), which adds unnecessary noise to the PR. Please verify if this was intentional or an artifact from automated tooling.
🤖 Prompt for AI Agents
In .eslintignore around line 10 the entry "*.min.css" was deleted and re-added
with no semantic change, creating a no-op diff; remove the redundant change so
the file remains identical to the base branch (either revert that line to the
original commit or drop the file from your staged changes) and verify with git
diff/git status that .eslintignore shows no modifications before pushing.
|
|
||
| To disable, run `ahoy up`. | ||
|
|
||
| See https://www.vortextemplate.com/docs/tools/xdebug for more details. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix bare URL formatting.
The Xdebug documentation link should use proper markdown link formatting instead of a bare URL.
Apply this diff:
-See https://www.vortextemplate.com/docs/tools/xdebug for more details.
+See [Xdebug documentation](https://www.vortextemplate.com/docs/tools/xdebug) for more details.📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| See https://www.vortextemplate.com/docs/tools/xdebug for more details. | |
| See [Xdebug documentation](https://www.vortextemplate.com/docs/tools/xdebug) for more details. |
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)
59-59: Bare URL used
(MD034, no-bare-urls)
🤖 Prompt for AI Agents
In docs/faqs.md around line 59, the Xdebug link is a bare URL; replace it with
proper Markdown link formatting by changing the bare URL to a descriptive
markdown link such as [Xdebug
documentation](https://www.vortextemplate.com/docs/tools/xdebug) so the link is
rendered correctly and accessible.
| Behat tests with `@javascript` tag sometimes get stuck for about 10min then | ||
| fail. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix time unit spacing.
The formatting improvements are good, but "10min" should have proper spacing between the number and unit.
Apply this diff:
-Behat tests with `@javascript` tag sometimes get stuck for about 10min then
+Behat tests with `@javascript` tag sometimes get stuck for about 10 min then📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| Behat tests with `@javascript` tag sometimes get stuck for about 10min then | |
| fail. | |
| Behat tests with `@javascript` tag sometimes get stuck for about 10 min then | |
| fail. |
🧰 Tools
🪛 LanguageTool
[grammar] ~145-~145: Ensure spelling is correct
Context: ...ript` tag sometimes get stuck for about 10min then fail. The Chrome container randoml...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
🤖 Prompt for AI Agents
In docs/faqs.md around lines 145 to 146, the time unit "10min" lacks a space
between the number and unit; update the text to use "10 min" (i.e., insert a
space between "10" and "min") to correct the formatting.
| # Deploy via Lagoon CLI. | ||
| # | ||
| # @see https://github.com/amazeeio/lagoon-cli | ||
| # @see https://github.com/uselagoon/lagoon-cli |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Modification of core Vortex script violates coding guidelines.
According to the coding guidelines, files under scripts/vortex should not be modified as they are core Vortex scripts. This file was modified to update the documentation URL reference.
As per coding guidelines
🤖 Prompt for AI Agents
In scripts/vortex/deploy-lagoon.sh around line 5, the change to the
documentation URL violates the rule that core Vortex scripts under
scripts/vortex must not be modified; revert the file to the upstream/original
version (undo the URL edit) and instead update documentation or add a non-core
script elsewhere if the URL must be changed, then commit the reverted file so
scripts/vortex remains pristine.
| # Check that file was saved and output saved dump file name. | ||
| if [ -f "${archive_file}" ] && [ -s "${archive_file}" ]; then | ||
| note "Saved exported database image archive file ${archive_file}." | ||
| note "Exported database image saved to archive file ${archive_file}." |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do not modify core Vortex scripts.
Per coding guidelines, files under scripts/vortex/ are core Vortex scripts and should not be modified. This PR appears to have introduced a change to the user-facing message. Please revert this change or remove this file from the PR.
🤖 Prompt for AI Agents
In scripts/vortex/export-db-image.sh around line 85, the user-facing message was
changed in a core Vortex script; per guidelines, core scripts under
scripts/vortex/ must not be modified — revert the change to restore the original
message (or remove this file from the PR if the revert isn't possible locally)
so the script remains identical to the upstream/core version and only non-core
files are included in the PR.
|
|
||
| # Deployment GitHub token. | ||
| VORTEX_NOTIFY_GITHUB_TOKEN="${VORTEX_NOTIFY_GITHUB_TOKEN:-${GITHUB_TOKEN}}" | ||
| VORTEX_NOTIFY_GITHUB_TOKEN="${VORTEX_NOTIFY_GITHUB_TOKEN:-${GITHUB_TOKEN-}}" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do not modify files under scripts/vortex/ — these are core Vortex scripts.
Per the coding guidelines, files under scripts/vortex/ should not be modified. This file is a core Vortex script and changes to it should be pushed upstream to the Vortex project instead of being maintained locally.
If this change is necessary for your deployment, consider:
- Submitting the improvement upstream to the Vortex project.
- Creating a local wrapper or override script outside the
scripts/vortex/directory if local customization is needed. - Coordinating with the Vortex maintainers to incorporate the fix in a future release.
🤖 Prompt for AI Agents
In scripts/vortex/notify-github.sh around line 20, this core Vortex script must
not be edited locally; instead revert any local change to
VORTEX_NOTIFY_GITHUB_TOKEN and either submit the change upstream to the Vortex
project (create a PR with the token fallback logic), or implement a local
wrapper/override outside scripts/vortex/ that exports the desired
VORTEX_NOTIFY_GITHUB_TOKEN before calling the original script, or coordinate
with Vortex maintainers to adopt the change in a future release.
| # Run custom Lagoon task. | ||
| # | ||
| # @see https://github.com/amazeeio/lagoon-cli | ||
| # @see https://github.com/uselagoon/lagoon-cli |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Modification of core Vortex script violates coding guidelines.
According to the coding guidelines, files under scripts/vortex should not be modified as they are core Vortex scripts. This file was modified to update the documentation URL reference.
As per coding guidelines
🤖 Prompt for AI Agents
In scripts/vortex/task-custom-lagoon.sh around line 5, the header comment was
changed to point to a different documentation URL which violates the rule that
core Vortex scripts must not be modified; revert this file to the
upstream/original version (restore the original comment exactly as it was) or
replace the file with the upstream copy, and if you need to update
documentation, add a separate docs file or README in the repo rather than
editing anything under scripts/vortex.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #119 +/- ##
=======================================
Coverage 0.00% 0.00%
=======================================
Files 1 1
Lines 8 8
=======================================
Misses 8 8 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
``` Changelogs summary: - drupal/core-composer-scaffold updated from 11.2.4 to 11.2.7 patch See changes: drupal/core-composer-scaffold@11.2.4...11.2.7 Release notes: https://github.com/drupal/core-composer-scaffold/releases/tag/11.2.7 - behat/gherkin updated from v4.14.0 to v4.15.0 minor See changes: Behat/Gherkin@v4.14.0...v4.15.0 Release notes: https://github.com/Behat/Gherkin/releases/tag/v4.15.0 - composer/ca-bundle updated from 1.5.8 to 1.5.9 patch See changes: composer/ca-bundle@1.5.8...1.5.9 Release notes: https://github.com/composer/ca-bundle/releases/tag/1.5.9 - symfony/finder updated from v7.3.2 to v7.3.5 patch See changes: symfony/finder@v7.3.2...v7.3.5 Release notes: https://github.com/symfony/finder/releases/tag/v7.3.5 - symfony/string updated from v7.3.3 to v7.3.4 patch See changes: symfony/string@v7.3.3...v7.3.4 Release notes: https://github.com/symfony/string/releases/tag/v7.3.4 - symfony/service-contracts updated from v3.6.0 to v3.6.1 patch See changes: symfony/service-contracts@v3.6.0...v3.6.1 Release notes: https://github.com/symfony/service-contracts/releases/tag/v3.6.1 - symfony/console updated from v7.3.3 to v7.3.6 patch See changes: symfony/console@v7.3.3...v7.3.6 Release notes: https://github.com/symfony/console/releases/tag/v7.3.6 - symfony/filesystem updated from v7.3.2 to v7.3.6 patch See changes: symfony/filesystem@v7.3.2...v7.3.6 Release notes: https://github.com/symfony/filesystem/releases/tag/v7.3.6 - doctrine/persistence updated from 4.1.0 to 4.1.1 patch See changes: doctrine/persistence@4.1.0...4.1.1 Release notes: https://github.com/doctrine/persistence/releases/tag/4.1.1 - symfony/yaml updated from v7.3.3 to v7.3.5 patch See changes: symfony/yaml@v7.3.3...v7.3.5 Release notes: https://github.com/symfony/yaml/releases/tag/v7.3.5 - symfony/translation-contracts updated from v3.6.0 to v3.6.1 patch See changes: symfony/translation-contracts@v3.6.0...v3.6.1 Release notes: https://github.com/symfony/translation-contracts/releases/tag/v3.6.1 - symfony/translation updated from v7.3.3 to v7.3.4 patch See changes: symfony/translation@v7.3.3...v7.3.4 Release notes: https://github.com/symfony/translation/releases/tag/v7.3.4 - symfony/var-exporter updated from v7.3.3 to v7.3.4 patch See changes: symfony/var-exporter@v7.3.3...v7.3.4 Release notes: https://github.com/symfony/var-exporter/releases/tag/v7.3.4 - symfony/dependency-injection updated from v7.3.3 to v7.3.6 patch See changes: symfony/dependency-injection@v7.3.3...v7.3.6 Release notes: https://github.com/symfony/dependency-injection/releases/tag/v7.3.6 - symfony/config updated from v7.3.2 to v7.3.6 patch See changes: symfony/config@v7.3.2...v7.3.6 Release notes: https://github.com/symfony/config/releases/tag/v7.3.6 - nikic/php-parser updated from v5.6.1 to v5.6.2 patch See changes: nikic/PHP-Parser@v5.6.1...v5.6.2 Release notes: https://github.com/nikic/PHP-Parser/releases/tag/v5.6.2 - behat/behat updated from v3.23.0 to v3.26.0 minor See changes: Behat/Behat@v3.23.0...v3.26.0 Release notes: https://github.com/Behat/Behat/releases/tag/v3.26.0 - symfony/http-client updated from v6.4.25 to v6.4.28 patch See changes: symfony/http-client@v6.4.25...v6.4.28 Release notes: https://github.com/symfony/http-client/releases/tag/v6.4.28 - symfony/css-selector updated from v7.3.0 to v7.3.6 patch See changes: symfony/css-selector@v7.3.0...v7.3.6 Release notes: https://github.com/symfony/css-selector/releases/tag/v7.3.6 - drevops/behat-screenshot updated from 2.1.1 to 2.2.0 minor See changes: drevops/behat-screenshot@2.1.1...2.2.0 Release notes: https://github.com/drevops/behat-screenshot/releases/tag/2.2.0 - symfony/process updated from v7.3.3 to v7.3.4 patch See changes: symfony/process@v7.3.3...v7.3.4 Release notes: https://github.com/symfony/process/releases/tag/v7.3.4 - symfony/validator updated from v7.3.3 to v7.3.6 patch See changes: symfony/validator@v7.3.3...v7.3.6 Release notes: https://github.com/symfony/validator/releases/tag/v7.3.6 - symfony/serializer updated from v7.3.3 to v7.3.5 patch See changes: symfony/serializer@v7.3.3...v7.3.5 Release notes: https://github.com/symfony/serializer/releases/tag/v7.3.5 - symfony/routing updated from v7.3.2 to v7.3.6 patch See changes: symfony/routing@v7.3.2...v7.3.6 Release notes: https://github.com/symfony/routing/releases/tag/v7.3.6 - symfony/http-foundation updated from v7.3.3 to v7.3.6 patch See changes: symfony/http-foundation@v7.3.3...v7.3.6 Release notes: https://github.com/symfony/http-foundation/releases/tag/v7.3.6 - symfony/mime updated from v7.3.2 to v7.3.4 patch See changes: symfony/mime@v7.3.2...v7.3.4 Release notes: https://github.com/symfony/mime/releases/tag/v7.3.4 - symfony/mailer updated from v7.3.3 to v7.3.5 patch See changes: symfony/mailer@v7.3.3...v7.3.5 Release notes: https://github.com/symfony/mailer/releases/tag/v7.3.5 - symfony/var-dumper updated from v7.3.3 to v7.3.5 patch See changes: symfony/var-dumper@v7.3.3...v7.3.5 Release notes: https://github.com/symfony/var-dumper/releases/tag/v7.3.5 - symfony/error-handler updated from v7.3.2 to v7.3.6 patch See changes: symfony/error-handler@v7.3.2...v7.3.6 Release notes: https://github.com/symfony/error-handler/releases/tag/v7.3.6 - symfony/http-kernel updated from v7.3.3 to v7.3.6 patch See changes: symfony/http-kernel@v7.3.3...v7.3.6 Release notes: https://github.com/symfony/http-kernel/releases/tag/v7.3.6 - mck89/peast updated from v1.17.2 to v1.17.4 patch See changes: mck89/peast@v1.17.2...v1.17.4 Release notes: https://github.com/mck89/peast/releases/tag/v1.17.4 - drupal/core updated from 11.2.4 to 11.2.7 patch See changes: drupal/core@11.2.4...11.2.7 Release notes: https://github.com/drupal/core/releases/tag/11.2.7 - symfony/browser-kit updated from v7.3.2 to v7.3.6 patch See changes: symfony/browser-kit@v7.3.2...v7.3.6 Release notes: https://github.com/symfony/browser-kit/releases/tag/v7.3.6 - drevops/behat-steps updated from 3.1.0 to 3.3.1 minor See changes: drevops/behat-steps@3.1.0...3.3.1 Release notes: https://github.com/drevops/behat-steps/releases/tag/3.3.1 - openai-php/client updated from v0.16.1 to v0.18.0 minor See changes: openai-php/client@v0.16.1...v0.18.0 Release notes: https://github.com/openai-php/client/releases/tag/v0.18.0 - drupal/ai updated from 1.1.3 to 1.2.2 minor - drupal/ai_provider_openai updated from 1.1.0 to 1.2.0 minor - drupal/webform updated from 6.3.0-beta4 to 6.3.0-beta5 patch - drupal/pathauto updated from 1.13.0 to 1.14.0 minor - drupal/linkit updated from 7.0.8 to 7.0.11 patch - symfony/lock updated from v7.3.2 to v7.3.4 patch See changes: symfony/lock@v7.3.2...v7.3.4 Release notes: https://github.com/symfony/lock/releases/tag/v7.3.4 - sebastian/exporter updated from 6.3.0 to 6.3.2 patch See changes: sebastianbergmann/exporter@6.3.0...6.3.2 Release notes: https://github.com/sebastianbergmann/exporter/releases/tag/6.3.2 - phpunit/phpunit updated from 11.5.36 to 11.5.43 patch See changes: sebastianbergmann/phpunit@11.5.36...11.5.43 Release notes: https://github.com/sebastianbergmann/phpunit/releases/tag/11.5.43 - phpstan/phpstan updated from 2.1.22 to 2.1.31 patch - webmozart/assert updated from 1.11.0 to 1.12.1 minor See changes: webmozarts/assert@1.11.0...1.12.1 Release notes: https://github.com/webmozarts/assert/releases/tag/1.12.1 - phpspec/prophecy updated from v1.22.0 to v1.23.1 minor See changes: phpspec/prophecy@v1.22.0...v1.23.1 Release notes: https://github.com/phpspec/prophecy/releases/tag/v1.23.1 - open-telemetry/context updated from 1.3.1 to 1.4.0 minor See changes: opentelemetry-php/context@1.3.1...1.4.0 Release notes: https://github.com/opentelemetry-php/context/releases/tag/1.4.0 - open-telemetry/api updated from 1.5.0 to 1.7.0 minor See changes: opentelemetry-php/api@1.5.0...1.7.0 Release notes: https://github.com/opentelemetry-php/api/releases/tag/1.7.0 - open-telemetry/sdk updated from 1.7.1 to 1.9.0 minor See changes: opentelemetry-php/sdk@1.7.1...1.9.0 Release notes: https://github.com/opentelemetry-php/sdk/releases/tag/1.9.0 - google/protobuf updated from v4.32.0 to v4.33.0 minor See changes: protocolbuffers/protobuf-php@v4.32.0...v4.33.0 Release notes: https://github.com/protocolbuffers/protobuf-php/releases/tag/v4.33.0 - open-telemetry/gen-otlp-protobuf updated from 1.5.0 to 1.8.0 minor See changes: opentelemetry-php/gen-otlp-protobuf@1.5.0...1.8.0 Release notes: https://github.com/opentelemetry-php/gen-otlp-protobuf/releases/tag/1.8.0 - micheh/phpcs-gitlab updated from 2.0.0 to 2.1.0 minor See changes: micheh/phpcs-gitlab@2.0.0...2.1.0 Release notes: https://github.com/micheh/phpcs-gitlab/releases/tag/2.1.0 - mglaman/phpstan-drupal updated from 2.0.9 to 2.0.10 patch See changes: mglaman/phpstan-drupal@2.0.9...2.0.10 Release notes: https://github.com/mglaman/phpstan-drupal/releases/tag/2.0.10 - marc-mabe/php-enum updated from v4.7.1 to v4.7.2 patch See changes: marc-mabe/php-enum@v4.7.1...v4.7.2 Release notes: https://github.com/marc-mabe/php-enum/releases/tag/v4.7.2 - justinrainbow/json-schema updated from 6.5.1 to 6.6.1 minor See changes: jsonrainbow/json-schema@6.5.1...6.6.1 Release notes: https://github.com/jsonrainbow/json-schema/releases/tag/6.6.1 - squizlabs/php_codesniffer updated from 3.13.4 to 3.13.5 patch See changes: PHPCSStandards/PHP_CodeSniffer@3.13.4...3.13.5 Release notes: https://github.com/PHPCSStandards/PHP_CodeSniffer/releases/tag/3.13.5 - slevomat/coding-standard updated from 8.22.0 to 8.22.1 patch See changes: slevomat/coding-standard@8.22.0...8.22.1 Release notes: https://github.com/slevomat/coding-standard/releases/tag/8.22.1 - sirbrillig/phpcs-variable-analysis updated from v2.12.0 to v2.13.0 minor See changes: sirbrillig/phpcs-variable-analysis@v2.12.0...v2.13.0 Release notes: https://github.com/sirbrillig/phpcs-variable-analysis/releases/tag/v2.13.0 - drupal/coder updated from 8.3.30 to 8.3.31 patch See changes: pfrenssen/coder@8.3.30...8.3.31 Release notes: https://github.com/pfrenssen/coder/releases/tag/8.3.31 - composer/composer updated from 2.8.11 to 2.8.12 patch See changes: composer/composer@2.8.11...2.8.12 Release notes: https://github.com/composer/composer/releases/tag/2.8.12 - colinodell/psr-testlogger updated from v1.3.0 to v1.3.1 patch See changes: colinodell/psr-testlogger@v1.3.0...v1.3.1 Release notes: https://github.com/colinodell/psr-testlogger/releases/tag/v1.3.1 - drupal/core-dev updated from 11.2.4 to 11.2.7 patch See changes: drupal/core-dev@11.2.4...11.2.7 Release notes: https://github.com/drupal/core-dev/releases/tag/11.2.7 - drupal/core-recommended updated from 11.2.4 to 11.2.7 patch See changes: drupal/core-recommended@11.2.4...11.2.7 Release notes: https://github.com/drupal/core-recommended/releases/tag/11.2.7 - ezyang/htmlpurifier updated from v4.18.0 to v4.19.0 minor See changes: ezyang/htmlpurifier@v4.18.0...v4.19.0 Release notes: https://github.com/ezyang/htmlpurifier/releases/tag/v4.19.0 - drupal/entity_usage updated from 2.0.0-beta24 to 2.0.0-beta25 patch - drupal/metatag updated from 2.1.2 to 2.2.0 minor - drupal/redis updated from 1.10.0 to 1.11.0 minor - solarium/solarium updated from 6.3.7 to 6.4.1 minor See changes: solariumphp/solarium@6.3.7...6.4.1 Release notes: https://github.com/solariumphp/solarium/releases/tag/6.4.1 - laminas/laminas-stdlib updated from 3.20.0 to 3.21.0 minor See changes: laminas/laminas-stdlib@3.20.0...3.21.0 Release notes: https://github.com/laminas/laminas-stdlib/releases/tag/3.21.0 - drupal/search_api updated from 1.38.0 to 1.40.0 minor - drupal/stage_file_proxy updated from 3.1.5 to 3.1.6 patch - drupal/views_bulk_operations updated from 4.3.4 to 4.4.4 minor - psy/psysh updated from v0.12.10 to v0.12.14 patch See changes: bobthecow/psysh@v0.12.10...v0.12.14 Release notes: https://github.com/bobthecow/psysh/releases/tag/v0.12.14 - laravel/prompts updated from v0.3.6 to v0.3.7 patch See changes: laravel/prompts@v0.3.6...v0.3.7 Release notes: https://github.com/laravel/prompts/releases/tag/v0.3.7 - rector/rector updated from 2.1.6 to 2.2.7 minor See changes: rectorphp/rector@2.1.6...2.2.7 Release notes: https://github.com/rectorphp/rector/releases/tag/2.2.7 - palantirnet/drupal-rector updated from 0.21.0 to 0.21.1 patch See changes: palantirnet/drupal-rector@0.21.0...0.21.1 Release notes: https://github.com/palantirnet/drupal-rector/releases/tag/0.21.1 - vincentlanglet/twig-cs-fixer updated from 3.9.0 to 3.10.0 minor See changes: VincentLanglet/Twig-CS-Fixer@3.9.0...3.10.0 Release notes: https://github.com/VincentLanglet/Twig-CS-Fixer/releases/tag/3.10.0 ```
f5bf7ce to
a770799
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
scripts/vortex/provision.sh (1)
196-227: Verify database provisioning logic handles all cases correctly.The conditional logic for database provisioning with
VORTEX_DB_IMAGEis complex. Let me trace through the scenarios:
- Existing site + DB image: Preserves site, marks DB as fresh (line 204)
- No site + DB image: Errors out as corrupted image (lines 216-221)
- Existing site + dump + override: Imports dump (line 207)
- No site + dump: Imports dump, marks as fresh (lines 223-226)
The logic for scenario 2 (lines 216-221) seems incorrect. If there's a DB image but no site detected, this could be the first provision with a pre-built image, not necessarily a corrupted image. Consider allowing the container to start with the baked-in database.
Consider revising lines 216-221:
if [ -n "${VORTEX_DB_IMAGE-}" ]; then note "Database is baked into the container image." - note "Looks like the database in the container image is corrupted." - note "Site content was not changed." - exit 1 + note "Site will be provisioned from the container image." + # Let the downstream scripts know that the database is fresh. + export VORTEX_PROVISION_OVERRIDE_DB=1 fiOr if this truly is an error condition, add more context about why this combination is invalid.
tests/phpunit/Drupal/SwitchableSettingsTest.php (1)
319-533: Update test data to include missing Shield configuration keys.Verification confirms the test expectations are incomplete. The actual settings file unconditionally sets
methodandpathskeys (lines 45-46 inweb/sites/default/includes/modules/settings.shield.php):$config['shield.settings']['method'] = 0; $config['shield.settings']['paths'] = '/.well-known/acme-challenge/*';All test cases in
dataProviderShield()must include these keys in their expected configuration arrays to match the actual Shield module settings structure. Without them, the test data does not accurately reflect the real configuration behavior.
♻️ Duplicate comments (7)
scripts/vortex/deploy-lagoon.sh (1)
5-5: Modification of core Vortex script violates coding guidelines.This file is under
scripts/vortex/and must not be modified, per coding guidelines. Even documentation-only changes compromise the integrity of core Vortex scripts. Revert this file to the upstream version and maintain pristine core Vortex scripts.As per coding guidelines.
scripts/vortex/task-custom-lagoon.sh (1)
5-5: Modification of core Vortex script violates coding guidelines.This file is under
scripts/vortex/and must not be modified, per coding guidelines. Even documentation-only changes compromise the integrity of core Vortex scripts. Revert this file to the upstream version and maintain pristine core Vortex scripts.As per coding guidelines.
.eslintignore (1)
10-10: Unnecessary no-op change adds noise to the PR.The
*.min.cssentry has been deleted and immediately re-added with no actual change, creating a confusing diff. Remove this redundant modification so the file remains identical to the base branch.scripts/vortex/notify-github.sh (1)
20-20: Do not modify files underscripts/vortex/— these are core Vortex scripts.Per the coding guidelines, files under
scripts/vortex/should not be modified. This file is a core Vortex script and changes to it should be pushed upstream to the Vortex project instead of being maintained locally.If this change is necessary for your deployment, consider:
- Submitting the improvement upstream to the Vortex project
- Creating a local wrapper or override script outside the
scripts/vortex/directory if local customization is needed- Coordinating with the Vortex maintainers to incorporate the fix in a future release
As per coding guidelines.
scripts/vortex/export-db-image.sh (1)
85-85: Do not modify core Vortex scripts.Per coding guidelines, files under
scripts/vortex/are core Vortex scripts and should not be modified. This change to the user-facing message should be reverted.docs/faqs.md (2)
59-59: Fix bare URL formatting.The Xdebug documentation link should use proper markdown link formatting instead of a bare URL.
Apply this diff:
-See https://www.vortextemplate.com/docs/tools/xdebug for more details. +See [Xdebug documentation](https://www.vortextemplate.com/docs/tools/xdebug) for more details.
145-146: Fix time unit spacing.The time unit "10min" should have proper spacing between the number and unit.
Apply this diff:
-Behat tests with `@javascript` tag sometimes get stuck for about 10min then +Behat tests with `@javascript` tag sometimes get stuck for about 10 min then
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
⛔ Files ignored due to path filters (2)
composer.lockis excluded by!**/*.lockyarn.lockis excluded by!**/yarn.lock,!**/*.lock
📒 Files selected for processing (47)
.ahoy.yml(7 hunks).docker/clamav.dockerfile(1 hunks).docker/cli.dockerfile(2 hunks).docker/database.dockerfile(1 hunks).docker/nginx-drupal.dockerfile(2 hunks).docker/php.dockerfile(1 hunks).docker/solr.dockerfile(1 hunks).dockerignore(0 hunks).editorconfig(1 hunks).env(1 hunks).eslintignore(1 hunks).github/workflows/build-test-deploy.yml(13 hunks).gitignore(1 hunks).prettierrc.json(1 hunks).stylelintrc.js(1 hunks)CLAUDE.md(2 hunks)README.md(1 hunks)behat.yml(1 hunks)composer.json(1 hunks)config/default/entity_clone.cloneable_entities.yml(1 hunks)config/default/filter.format.webform_default.yml(1 hunks)config/default/user.role.civictheme_site_administrator.yml(1 hunks)config/default/webform.settings.yml(1 hunks)config/default/webform.webform.contact.yml(1 hunks)config/local/purge_control.settings.yml(0 hunks)docker-compose.yml(7 hunks)docs/ci.md(1 hunks)docs/faqs.md(4 hunks)package.json(1 hunks)phpcs.xml(1 hunks)phpmd.xml(0 hunks)phpstan.neon(1 hunks)phpunit.xml(1 hunks)rector.php(1 hunks)scripts/vortex/deploy-lagoon.sh(1 hunks)scripts/vortex/export-db-file.sh(0 hunks)scripts/vortex/export-db-image.sh(1 hunks)scripts/vortex/notify-github.sh(1 hunks)scripts/vortex/provision.sh(4 hunks)scripts/vortex/task-custom-lagoon.sh(1 hunks)tests/behat/bootstrap/FeatureContext.php(2 hunks)tests/behat/features/login.feature(1 hunks)tests/phpunit/Drupal/SettingsTestCase.php(1 hunks)tests/phpunit/Drupal/SwitchableSettingsTest.php(20 hunks)web/sites/default/includes/modules/settings.redis.php(3 hunks)web/sites/default/includes/modules/settings.trusted_hosts.php(1 hunks)web/sites/default/settings.php(6 hunks)
💤 Files with no reviewable changes (4)
- scripts/vortex/export-db-file.sh
- .dockerignore
- config/local/purge_control.settings.yml
- phpmd.xml
🧰 Additional context used
📓 Path-based instructions (5)
scripts/vortex/**
📄 CodeRabbit inference engine (CLAUDE.md)
Do not modify files under scripts/vortex (core Vortex scripts)
Files:
scripts/vortex/task-custom-lagoon.shscripts/vortex/deploy-lagoon.shscripts/vortex/export-db-image.shscripts/vortex/notify-github.shscripts/vortex/provision.sh
tests/behat/features/**/*.feature
📄 CodeRabbit inference engine (CLAUDE.md)
tests/behat/features/**/*.feature: All Behat feature files must start with the required user story format (Feature title, As a [user type], I want to…, So that…)
Use only the standard user types in Behat user stories: 'As a site visitor', 'As a site administrator', 'As a content editor', 'As a authenticated user'
Test data in Behat scenarios must use the [TEST] prefix and follow conventions (use numbered patterns like [TEST] Topic 1/2, avoid real names like 'Workshop' or 'Training', be descriptive)
Files:
tests/behat/features/login.feature
config/**
📄 CodeRabbit inference engine (CLAUDE.md)
All Drupal configuration changes must be exported to code and committed under the config/ directories (default/dev/stage/ci)
Files:
config/default/entity_clone.cloneable_entities.ymlconfig/default/webform.settings.ymlconfig/default/user.role.civictheme_site_administrator.ymlconfig/default/webform.webform.contact.ymlconfig/default/filter.format.webform_default.yml
tests/phpunit/**/*.php
📄 CodeRabbit inference engine (CLAUDE.md)
Store unit/integration tests for PHPUnit under tests/phpunit/
Files:
tests/phpunit/Drupal/SwitchableSettingsTest.phptests/phpunit/Drupal/SettingsTestCase.php
composer.json
📄 CodeRabbit inference engine (CLAUDE.md)
When adding JS/CSS libraries to Drupal as Composer packages, define them in composer.json repositories with type "drupal-library" and require them via Composer
Files:
composer.json
🧠 Learnings (10)
📓 Common learnings
Learnt from: AlexSkrypnyk
Repo: drevops/website PR: 64
File: config/default/views.view.scheduled_transitions.yml:428-456
Timestamp: 2025-06-19T10:24:22.159Z
Learning: Valkey is a fork of Redis that maintains full API compatibility and has equivalent memory usage and performance characteristics. A Redis to Valkey migration does not impact memory pressure or performance.
📚 Learning: 2025-09-09T03:52:28.058Z
Learnt from: CR
Repo: drevops/website PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-09-09T03:52:28.058Z
Learning: Applies to scripts/vortex/** : Do not modify files under scripts/vortex (core Vortex scripts)
Applied to files:
scripts/vortex/task-custom-lagoon.shscripts/vortex/deploy-lagoon.shscripts/vortex/export-db-image.shscripts/vortex/notify-github.sh
📚 Learning: 2025-09-09T03:52:28.058Z
Learnt from: CR
Repo: drevops/website PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-09-09T03:52:28.058Z
Learning: Applies to tests/behat/features/**/*.feature : All Behat feature files must start with the required user story format (Feature title, As a [user type], I want to…, So that…)
Applied to files:
tests/behat/features/login.feature
📚 Learning: 2025-09-09T03:52:28.058Z
Learnt from: CR
Repo: drevops/website PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-09-09T03:52:28.058Z
Learning: Applies to tests/behat/features/**/*.feature : Use only the standard user types in Behat user stories: 'As a site visitor', 'As a site administrator', 'As a content editor', 'As a authenticated user'
Applied to files:
tests/behat/features/login.feature
📚 Learning: 2025-09-09T03:52:28.058Z
Learnt from: CR
Repo: drevops/website PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-09-09T03:52:28.058Z
Learning: Applies to tests/behat/features/**/*.feature : Test data in Behat scenarios must use the [TEST] prefix and follow conventions (use numbered patterns like [TEST] Topic 1/2, avoid real names like 'Workshop' or 'Training', be descriptive)
Applied to files:
tests/behat/features/login.feature
📚 Learning: 2025-09-09T03:52:28.058Z
Learnt from: CR
Repo: drevops/website PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-09-09T03:52:28.058Z
Learning: Applies to tests/behat/behat.yml : Keep Behat configuration in tests/behat/behat.yml
Applied to files:
tests/behat/features/login.featurebehat.yml
📚 Learning: 2025-06-19T10:24:22.159Z
Learnt from: AlexSkrypnyk
Repo: drevops/website PR: 64
File: config/default/views.view.scheduled_transitions.yml:428-456
Timestamp: 2025-06-19T10:24:22.159Z
Learning: Valkey is a fork of Redis that maintains full API compatibility and has equivalent memory usage and performance characteristics. A Redis to Valkey migration does not impact memory pressure or performance.
Applied to files:
tests/phpunit/Drupal/SwitchableSettingsTest.phpCLAUDE.md
📚 Learning: 2025-09-09T03:52:28.058Z
Learnt from: CR
Repo: drevops/website PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-09-09T03:52:28.058Z
Learning: All local development and project commands should be executed via the ahoy task runner (use the `ahoy` prefix)
Applied to files:
docs/faqs.md.ahoy.yml
📚 Learning: 2025-09-09T03:52:28.058Z
Learnt from: CR
Repo: drevops/website PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-09-09T03:52:28.058Z
Learning: Applies to tests/phpunit/**/*.php : Store unit/integration tests for PHPUnit under tests/phpunit/
Applied to files:
phpunit.xml
📚 Learning: 2025-09-09T03:52:28.058Z
Learnt from: CR
Repo: drevops/website PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-09-09T03:52:28.058Z
Learning: Applies to composer.json : When adding JS/CSS libraries to Drupal as Composer packages, define them in composer.json repositories with type "drupal-library" and require them via Composer
Applied to files:
CLAUDE.mdcomposer.json
🧬 Code graph analysis (3)
scripts/vortex/export-db-image.sh (1)
scripts/vortex/export-db.sh (1)
note(24-24)
tests/phpunit/Drupal/SwitchableSettingsTest.php (1)
tests/phpunit/Drupal/SettingsTestCase.php (2)
setEnvVars(132-163)requireSettingsFile(202-221)
scripts/vortex/provision.sh (1)
scripts/vortex/export-db-image.sh (2)
note(32-32)info(34-34)
🪛 LanguageTool
docs/faqs.md
[grammar] ~145-~145: Ensure spelling is correct
Context: ...ript` tag sometimes get stuck for about 10min then fail. The Chrome container randoml...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
🪛 markdownlint-cli2 (0.18.1)
docs/ci.md
15-15: Bare URL used
(MD034, no-bare-urls)
docs/faqs.md
59-59: Bare URL used
(MD034, no-bare-urls)
🪛 PHPMD (2.15.0)
tests/phpunit/Drupal/SwitchableSettingsTest.php
243-243: Avoid using undefined variables such as '$settings' which will lead to PHP notices. (undefined)
(UndefinedVariable)
244-244: Avoid using undefined variables such as '$settings' which will lead to PHP notices. (undefined)
(UndefinedVariable)
292-292: Avoid using undefined variables such as '$settings' which will lead to PHP notices. (undefined)
(UndefinedVariable)
293-293: Avoid using undefined variables such as '$settings' which will lead to PHP notices. (undefined)
(UndefinedVariable)
294-294: Avoid using undefined variables such as '$settings' which will lead to PHP notices. (undefined)
(UndefinedVariable)
🪛 YAMLlint (1.37.1)
docker-compose.yml
[warning] 160-160: too few spaces before comment: expected 2
(comments)
[warning] 172-172: too few spaces before comment: expected 2
(comments)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
- GitHub Check: build (0)
- GitHub Check: build (1)
🔇 Additional comments (72)
.gitignore (1)
4-4: Nice documentation clarity improvement.The updated terminology "webroot" is more precise than "web" and aligns with standard terminology for the web root directory.
config/default/user.role.civictheme_site_administrator.yml (1)
87-90: Permission addition aligns with webform module updates.The addition of "administer webform overview" permission is properly positioned alphabetically and consistent with the expanded webform permissions already assigned to the Site Administrator role. The change aligns with the drupal/webform package update included in this PR.
Please verify that "administer webform overview" is a valid permission provided by the updated webform module and that its inclusion is necessary for Site Administrator functionality.
config/default/filter.format.webform_default.yml (2)
11-12: Confirm the roles restriction is intentional.The configuration now restricts the webform default filter format to
authenticatedusers only. Verify that this access control change is intentional and aligns with the PR objectives. If this restriction was unintended, remove therolessection.
1-1: No issues found — changes are expected Drupal config export behavior.The
uuid: nullin exported Drupal config is valid and occurs during standard config import/export operations. The_core.default_config_hashremoval is expected for exported config files, as this property is only present for extension-provided configuration, not for UI-created or imported config. Theroles: - authenticatedaddition is a standard Drupal text format access control configuration that grants authenticated users access to the webform_default filter format. All changes align with the git commit "Updated to Vortex 25.10.0 and updated packages."config/default/webform.webform.contact.yml (1)
264-264: Drupal configuration properly exported and committed.The addition of the
langcode: ''field under the email notification handler is a standard configuration export. The file is correctly placed underconfig/default/per coding guidelines..editorconfig (1)
28-29: Reasonable editor configuration specificity.The new
[package.json]rule withindent_size = 2correctly takes precedence over the broader[*.{json,lock}]rule. This allows package.json to use 2-space indentation while maintaining 4-space indentation for other JSON files..docker/solr.dockerfile (1)
8-8: Version bump appropriate for Vortex update.Base image updated from 25.8.0 to 25.9.0 as part of the broader Vortex upgrade. The simplification to a single-stage build is reasonable.
README.md (1)
17-17: Badge update correctly reflects Vortex version upgrade.The README Vortex badge has been properly updated from 25.8.1 to 25.10.0 and points to the correct tree reference. This aligns with the PR's primary objective.
.docker/php.dockerfile (1)
15-15: Base image version update aligned with Vortex upgrade.PHP FPM base image updated from 25.8.0 to 25.10.0 as part of the coordinated Vortex infrastructure upgrade across the PR.
config/default/webform.settings.yml (1)
32-32: LGTM! Clear user-facing message for file upload quota.The new configuration setting provides clear feedback when form file upload quotas are exceeded. The message format with the
%quotaplaceholder follows Drupal conventions..docker/cli.dockerfile (3)
5-5: Appropriate shellcheck exclusion for consolidated directory creation.Adding SC2174 to the ignore list is appropriate for the consolidated
mkdir -p -mcommand at line 86, which creates multiple directories with explicit permissions.
10-10: Base image upgrade to Vortex 25.10.0.The base image upgrade aligns with the PR objectives and is consistent with version bumps across other Dockerfiles in this PR.
86-86: Verify that the permission change from 0770 to 2775 was intentional and aligns with security requirements.The diff shows a change from separate
mkdirandchmod 0770commands to consolidatedmkdir -p -m 2775. The hadolint ignore line was updated to include SC2174, suggesting this structural change was deliberate.However, the commit message does not document why the permission mode changed. The security implications are material:
- 0770 =
drwxrwx---(owner+group full access, others denied) — conservative approach for private data.- 2775 =
drwxrwsr-xwith setgid bit (owner/group rwx, others can read/execute) — enables collaborative workflows but allows non-group users to traverse and read directories.Running as root in containers reduces the protective value of restrictive modes; conversely, non-root processes benefit from controlled group membership and setgid sharing.
This change allows other users (beyond owner/group) to list and access both the public and private files directories. Confirm this is intentional and aligns with your container's security posture and user isolation model.
phpcs.xml (1)
15-16: LGTM! Enforces consistent snake_case naming conventions.Adding these DrevOps naming convention rules ensures consistent snake_case formatting for local variables and function parameters across the codebase.
.docker/clamav.dockerfile (2)
13-13: Base image upgrade to 25.10.0.The commons base image upgrade aligns with the PR objectives and is consistent with other Dockerfile updates.
15-15: ClamAV minor version update.Upgrading from 1.4.3 to 1.5.1 brings in bug fixes and potential security updates for the ClamAV antivirus engine.
.docker/nginx-drupal.dockerfile (2)
14-14: Base image upgrade to 25.10.0.Consistent with the Vortex 25.10.0 upgrade across all Dockerfiles in this PR.
24-25: Added nginx permissions fix.The
fix-permissionscall ensures that nginx configuration files have appropriate ownership and permissions, which is particularly important in containerized environments with varying user/group IDs..stylelintrc.js (1)
39-39: LGTM! Cosmetic formatting improvement.Added trailing newline follows standard file formatting conventions.
web/sites/default/includes/modules/settings.trusted_hosts.php (1)
16-16: PHP version requirement is already documented—no action needed.The verification confirms that
composer.jsonspecifies PHP 8.3.24 as the minimum platform requirement, which exceeds the 8.1+ threshold needed for first-class callable syntax. The code change is compatible with the project's documented PHP version constraint..docker/database.dockerfile (1)
8-8: LGTM!The database image version bump to 25.10.0 is consistent with the PR's objective to upgrade to Vortex 25.10.0.
tests/behat/features/login.feature (2)
12-13: Good addition of path verification.Adding the path assertion before the screenshot capture improves test reliability by ensuring navigation completed successfully before visual capture.
19-20: Good addition of path verification.Adding the path assertion before the screenshot capture improves test reliability by ensuring navigation completed successfully before visual capture.
behat.yml (1)
102-106: LGTM!Adding screenshot metadata capture (url, feature, step, datetime) provides valuable debugging context when tests fail. This complements the path verification steps added to test scenarios.
docs/faqs.md (3)
68-68: LGTM!The updated Behat debugging command with the
--xdebugflag provides clearer guidance for developers debugging Behat tests.
79-81: LGTM!This clarification helps developers understand that
ahoy provisionis sufficient when switching branches, avoiding unnecessary full rebuilds withahoy build.
111-112: LGTM!The distinction between "Remote patch description" and "Local patch description" improves clarity in the composer patches documentation.
web/sites/default/settings.php (7)
35-41: LGTM!The refactored database settings using grouped evaluations with explicit final defaults improves code readability and makes the fallback hierarchy clearer.
53-54: LGTM!Using the
??=null coalescing assignment operator is more idiomatic and concise for PHP 7.4+.
64-64: LGTM!The grouped evaluation pattern for temporary files path is consistent with other refactoring in this file and improves clarity.
76-77: LGTM!Consistent grouped evaluation pattern for timezone settings improves code maintainability.
80-80: LGTM!The maintenance theme resolution using grouped evaluation is consistent with the broader refactoring pattern in this file.
138-139: LGTM!Renaming the variable from
$filenameto$fileis more accurate sinceglob()returns full paths, not just filenames.
157-158: LGTM!Consistent variable naming using
$fileimproves code clarity.rector.php (1)
45-125: LGTM!The migration from closure-based configuration to Rector's modern fluent API (
RectorConfig::configure()) improves maintainability and follows current best practices. The configuration includes:
- Explicit path handling with
__DIR__- Comprehensive rule sets (PHP 8.3, code quality, Drupal 9/10)
- Proper Drupal autoloading via
DrupalFinderComposerRuntime- Drupal-specific file extensions
phpstan.neon (1)
14-14: LGTM! PHP version updated to 8.3.27.The PHPStan configuration now targets PHP 8.3.27, aligning with the broader PHP ecosystem updates in this PR.
.prettierrc.json (1)
6-6: LGTM! JSDoc plugin configured.The prettier-plugin-jsdoc plugin is now enabled, matching the new dependency added in package.json. This will ensure consistent JSDoc formatting across the project.
phpunit.xml (1)
22-22: LGTM! PHPUnit schema updated to 11.5.The schema reference now points to PHPUnit 11.5, consistent with the PHPUnit upgrade to 11.5.43 mentioned in the PR objectives.
tests/phpunit/Drupal/SettingsTestCase.php (1)
65-65: LGTM! Environment variable prefix updated from Valkey to Redis.The allowed environment variables list now uses
REDIS_instead ofVALKEY_, aligning with the broader Redis migration in this PR. Based on learnings, Valkey maintains full API compatibility with Redis, so this change preserves existing functionality while standardizing on Redis terminology..env (1)
73-74: LGTM! Documentation updated for Redis integration.The comment now clearly indicates Redis integration, consistent with the project's migration away from Valkey terminology. The removed documentation reference simplifies the configuration comment.
tests/behat/bootstrap/FeatureContext.php (2)
33-33: LGTM! JavascriptTrait imported.The import enables JavaScript-related step definitions in the Behat test context.
59-59: LGTM! JavascriptTrait applied.The trait usage activates JavaScript testing capabilities for Behat scenarios, complementing the existing test step traits.
package.json (4)
22-22: LGTM! ESLint import plugin updated.Minor version bump for eslint-plugin-import (2.31.0 → 2.32.0).
24-24: LGTM! ESLint YAML plugin updated.Minor version bump for eslint-plugin-yml (1.16.0 → 1.19.0).
26-26: LGTM! JSDoc Prettier plugin added.The prettier-plugin-jsdoc dependency aligns with the plugin configuration added in .prettierrc.json.
27-27: LGTM! Stylelint updated.Minor version bump for stylelint (16.11.0 → 16.25.0).
web/sites/default/includes/modules/settings.redis.php (4)
7-9: LGTM! Documentation updated for Redis.The file header now correctly describes Redis module integration and the use of
DRUPAL_REDIS_environment variables.
20-21: LGTM! Comments updated to reference Redis service.The deployment workflow comments now correctly reference the Redis service provisioning.
31-32: LGTM! Redis environment variables updated.The host and port configuration now uses
REDIS_HOSTandREDIS_SERVICE_PORTenvironment variables with appropriate fallback values, consistent with the Valkey to Redis migration across the codebase.
38-40: LGTM! Redis extension loading condition updated.The condition now checks for the
redisPHP extension and references theVORTEX_REDIS_EXTENSION_LOADEDenvironment variable, aligning with the Redis-focused configuration throughout this PR.tests/phpunit/Drupal/SwitchableSettingsTest.php (2)
231-252: LGTM! Redis migration aligns with codebase changes.The rename from
testValkey()totestRedis()and the corresponding environment variable updates (VALKEY_* → REDIS_*) are consistent with the broader migration documented in the PR. As per learnings, Valkey is a Redis fork with full API compatibility, so this terminology update is purely cosmetic.Note on static analysis: The PHPMD warnings about undefined
$settingsvariables (lines 243-244) are false positives. The$settingsarray is populated byrequireSettingsFile()at line 241, which includes the Drupal settings.php file that defines this variable.
279-301: Clear test name reflects the actual behavior.The rename from
testRedisValkeyPrecedence()totestRedisCustomPort()better describes what this test actually validates: Redis configuration with custom host and port settings.composer.json (1)
6-72: Dependency updates look good.The version updates follow semantic versioning and include:
- Drupal core patch update (11.2.4 → 11.2.7)
- Testing framework updates (Behat 3.23 → 3.26)
- PHP tooling updates (PHPStan, Rector, PHPSpec, etc.)
- Drupal contrib module updates (minor/patch bumps)
All changes are appropriate for a routine maintenance update.
CLAUDE.md (2)
308-319: LGTM! Documentation updated for Redis.The section header and comments correctly reflect the Redis caching service, consistent with the Valkey→Redis migration across the project.
350-531: ---Comprehensive patching guide is valuable.
The new "Patching Contributed Modules" section provides detailed, step-by-step instructions covering patch storage and configuration, creating patches from git repositories, testing patch application, best practices, and troubleshooting. This is excellent documentation that will help developers maintain the project. The emphasis on using git repositories (not tarballs) and testing patch application is particularly good.
scripts/vortex/provision.sh (1)
64-66: New database image support is a useful optimization.The
VORTEX_DB_IMAGEvariable enables using pre-built database container images, which can significantly speed up provisioning in CI/CD pipelines..github/workflows/build-test-deploy.yml (4)
18-20: Tag-based workflow triggers enable release automation.Adding tag triggers allows the workflow to run on version releases, enabling automated deployment for tagged releases.
55-57: Container image version updates are consistent.All three job containers updated from
drevops/ci-runner:25.8.0to25.10.0, consistent with the Vortex version upgrade in this PR.Also applies to: 163-165, 373-375
244-250: Artifact handling improved with tar-based approach.The workflow now:
- Exports built codebase to a tar archive (line 249)
- Uploads the tar file as an artifact (lines 351-359)
- Downloads and unpacks the tar during deployment (lines 399-410)
This is more robust than direct directory copying and follows CI/CD best practices.
Also applies to: 351-359, 399-410
424-424: Deploy mode correctly distinguishes tags from branches.Line 424 sets
VORTEX_DEPLOY_MODEbased on whether the trigger is a tag (refs/tags/) or a branch, enabling different deployment strategies for releases vs. branch deployments.docker-compose.yml (6)
46-46: Default theme set to Olivero is practical.Setting
DRUPAL_THEMEdefault to "olivero" (Drupal's default theme) provides a sensible fallback for new projects.
56-57: Redis service updates align with project-wide migration.The service name change from
valkeytoredisand comment updates are consistent with the Valkey→Redis migration across the codebase. The image used (uselagoon/valkey-8:25.10.0) is still Valkey under the hood, maintaining full compatibility. Based on learnings, this has no performance impact.Based on learnings
Also applies to: 169-172
103-105: CLI dependency on wait-for-dependencies improves reliability.Adding an explicit dependency ensures that services (database, Redis, Solr, ClamAV) are ready before the CLI container starts, reducing startup race conditions.
160-160: Database image override enables pre-built database optimization.The
VORTEX_DB_IMAGEvariable allows overriding the default database image with a pre-built one containing seeded data, which can significantly speed up CI/CD pipelines.Note: YAMLlint warning about comment spacing on this line is a style nitpick and can be safely ignored.
217-229: Enhanced wait-for-dependencies service with robust health checks.The renamed service (
wait-for-dependencies) now:
- Checks multiple services: clamav, database, redis, solr
- Includes a Solr HTTP health check (line 229)
- Uses updated image version (25.9.0)
This provides more comprehensive startup coordination.
204-204: Chrome container updated to latest Selenium version.The Selenium Chromium image bump from 139.0 to 142.0 provides the latest browser version for Behat testing.
.ahoy.yml (6)
25-26: Login prompt control prevents duplicate output.Setting
VORTEX_SHOW_LOGIN=0during build and showing it separately withahoy info(line 26) prevents duplicate login links in the output.
102-104: Flush-redis command replaces flush-valkey.Consistent with the Redis migration, the command name and implementation now reference Redis instead of Valkey.
125-127: Simplified reload-db command is cleaner.The streamlined approach directly removes, rebuilds, and restarts the database container without intermediate dependencies.
133-135: Provision command integrates database image support.The updated logic:
- Conditionally reloads the database if
VORTEX_DB_IMAGEis set (line 133)- Runs provisioning (line 134)
- Conditionally shows login only if
VORTEX_SHOW_LOGIN=1(line 135)This integrates the new pre-built database image feature and provides better control over login prompt display.
188-188: Rector command simplification—verify this is intentional.The
--clear-cacheflag was removed from both lint and fix commands:
- Line 188:
rector --dry-run(wasrector --clear-cache --dry-run)- Line 211:
rector(wasrector --clear-cache)Rector typically caches parse results for performance. Removing
--clear-cachemeans cached results will be used across runs. This is fine if you want faster linting, but may miss issues if cached data becomes stale.Confirm whether removing
--clear-cacheis intentional. If Rector should always use fresh analysis, restore the flag:- ahoy cli vendor/bin/rector --dry-run + ahoy cli vendor/bin/rector --clear-cache --dry-run- ahoy cli vendor/bin/rector + ahoy cli vendor/bin/rector --clear-cacheAlso applies to: 211-211
248-250: Improved Xdebug debug command with better UX.The rewritten command:
- Checks if Xdebug is already enabled
- Enables it if needed
- Provides clear enable/disable instructions
This is more user-friendly than the previous implementation.
| - ai_prompt_type | ||
| - ai_prompt |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
Configuration properly exported and aligns with package updates.
The new cloneable entity types ai_prompt_type and ai_prompt are properly formatted and consistent with existing entries. This change aligns with the drupal/ai and drupal/ai_provider_openai package updates mentioned in the PR.
Verify that the entity types ai_prompt_type and ai_prompt actually exist in the drupal/ai module:
🏁 Script executed:
#!/bin/bash
# Description: Verify that ai_prompt_type and ai_prompt entity types exist in drupal/ai module
# Search for entity definitions or handlers in the ai module
fd -e php -x grep -l "ai_prompt" {} \; | head -20
# Alternative: Check if there are entity type declarations
rg -i "entity_type.*ai_prompt" --type=phpLength of output: 0
---
🏁 Script executed:
```shell
#!/bin/bash
# Check for drupal/ai module presence and look for entity definitions using broader patterns
# Search for ai module files anywhere in the repo
fd "ai" --type f | grep -i "module\|entity" | head -20
# Search for references to ai_prompt in all files (not just PHP)
rg -i "ai_prompt" -A2 -B2 | head -40
# Check for composer.json to see if drupal/ai is listed
cat composer.json 2>/dev/null | grep -i "drupal/ai" -A2 -B2
Length of output: 686
Once I see the full dependency list, I'll search for documentation on the drupal/ai module and its entity types.
---
🏁 Script executed:
```shell
#!/bin/bash
# Get full composer.json to see all drupal dependencies
cat composer.json 2>/dev/null | grep -i "drupal/" | head -30
Length of output: 1190
---
🏁 Script executed:
```shell
#!/bin/bash
# Search complete composer.json for drupal/ai (not just truncated output)
grep -i '"drupal/ai' composer.json
Length of output: 90
---
🌐 Web query:
```web
drupal/ai module entity types ai_prompt
💡 Result:
Short answer: In Drupal's AI contrib ecosystem, ai_prompt is a configuration "Prompt" entity (with accompanying ai_prompt_type bundles) used to store reusable prompt templates, their variables/tokens, metadata and status. Prompts are saved as config (ai.ai_prompt.) and prompt types define required variables/tokens; there is also an ai_prompt Form API element for selecting/creating prompts in forms. Use cases include centralizing prompts for AI Automators, ECA triggers, or other AI integrations. [1][2][3]
Sources
- AI Prompt Management (developer docs). [1]
- Drupal.org issue proposing a Prompt entity (discussion of ai_prompt reuse). [2]
- Prompt/Prompt AI module overview (example contrib module using prompts). [3]
Add drupal/ai to composer.json dependencies before committing this configuration.
The configuration file references ai_prompt_type and ai_prompt entities that belong to the drupal/ai module. However, drupal/ai is not listed in composer.json dependencies—only drupal/ai_image_alt_text and drupal/ai_provider_openai are present. The ai_prompt entity is a configuration entity used to store reusable prompt templates, and without the drupal/ai module installed, these cloneable entity declarations will be invalid. Either add drupal/ai to composer.json or remove these entries from the configuration.
🤖 Prompt for AI Agents
In config/default/entity_clone.cloneable_entities.yml around lines 66 to 67, the
entries "ai_prompt_type" and "ai_prompt" reference entities provided by the
drupal/ai module but that module is not declared in composer.json; add
"drupal/ai" to composer.json require (matching your project version constraints)
and run composer update/install so the module is present, or alternatively
remove these two entries from the YAML if you do not intend to add the module —
ensure the composer.json change is committed alongside this configuration to
keep dependencies consistent.
Checklist before requesting a review
[#123] Verb in past tense.#123added to descriptionChangedsectionChanged
Screenshots
Summary by CodeRabbit
New Features
Bug Fixes
Chores