Skip to content

Updated Vortex to '1.39.0'.#177

Merged
AlexSkrypnyk merged 30 commits into
developfrom
feature/update-vortex-69de37c
Jun 1, 2026
Merged

Updated Vortex to '1.39.0'.#177
AlexSkrypnyk merged 30 commits into
developfrom
feature/update-vortex-69de37c

Conversation

@AlexSkrypnyk

@AlexSkrypnyk AlexSkrypnyk commented May 31, 2026

Copy link
Copy Markdown
Member

Vortex 1.38.0 → 1.39.0 - Impact Summary

Pinned at commit 69de37c - the upcoming 1.39.0 release of drevops/vortex (still draft upstream at the time of this PR).

Key highlights: Vortex's shell tooling moved out of the in-repo scripts/vortex/ directory and into a new Composer package, drevops/vortex-tooling, installed under vendor/drevops/. The Lagoon container images and CI runner image were bumped (Lagoon 26.4.026.5.1, ci-runner 26.3.026.5.0). drevops/behat-steps was bumped from ^3.8.0 to ^3.9.0 to adopt the new AccessibilityTrait + accessibility.feature scaffold Vortex ships. diffy was added as a notification channel to enable visual-regression notifications.

Overall impact: Daily commands (ahoy build, ahoy download-db, ahoy deploy, ahoy doctor, etc.) keep their names but now call the new vendor/drevops/vortex-tooling/src/* binaries via a require-tooling step that installs the package on demand, so the first time those commands run on a fresh clone you'll see a short tooling bootstrap. CI workflows do the same on each job (./scripts/vortex-tooling.sh step). No project-side breaking change is expected for normal local development - all build, unit-test, lint, Behat, and deploy gates pass on this branch.

Vortex Update

Provisioning and tooling

  • Vortex shell scripts extracted from scripts/vortex/ into a Composer package drevops/vortex-tooling, installed under vendor/drevops/vortex-tooling/src/ (#2505). All 39 scripts/vortex/*.sh files in this repo were removed; callers (Ahoy, Lagoon, CI) now invoke ./vendor/drevops/vortex-tooling/src/<name> (no .sh suffix). A new scripts/vortex-tooling.sh helper installs the package on demand before a full composer install has run (idempotent if vendor/drevops/vortex-tooling/ already exists).
  • New require-tooling internal Ahoy command that runs scripts/vortex-tooling.sh and is invoked from ahoy download-db, ahoy export-db, ahoy deploy, ahoy doctor, ahoy update-vortex so they self-bootstrap the tooling.
  • Two project-local customisations to notification scripts (notify-slack.sh and notify-newrelic.sh) are NOT preserved by the migration. Upstream issues need to be raised to re-add (a) pre_deployment-aware Slack payload behaviour, and (b) a VORTEX_NOTIFY_NEWRELIC_ENABLED early-exit gate. See .artifacts/vortex-update-69de37c/decisions.md.

Ahoy

  • Added many cross-tool aliases for existing commands (#2510): rebuild (build), status/describe/ps (info), destroy (down), ssh/shell (cli), fetch-db/db-download/db-fetch (download-db), db-export/db-dump/dump-db (export-db), db-import (import-db), prune/delete (reset), fe-install/fe-build/fe-build-dev/fe-watch (front-end commands), phpunit (test), xdebug (debug), diagnose/health (doctor).
  • download-db --fresh now also sets VORTEX_DOWNLOAD_DB_FORCE=1 so existing cached DB files are overwritten.
  • ahoy reset now no-ops gracefully when the new tooling has not yet been installed.

CI workflows

  • Added a Install Vortex tooling step to every job in build-test-deploy.yml that needs the helpers - runs ./scripts/vortex-tooling.sh before any ./vendor/drevops/vortex-tooling/src/* call.
  • All scripts/vortex/*.sh invocations in workflows rewritten to ./vendor/drevops/vortex-tooling/src/*.
  • CI runner image bumped from drevops/ci-runner:26.3.0 to drevops/ci-runner:26.5.0 (#2501, #2515).
  • GitHub Actions digest/version bumps: release-drafter/release-drafter v7.2.0 → v7.3.1 (#2511), eps1lon/actions-label-merge-conflict v3.0.3 → v3.1.0 (#2517), renovatebot/github-action v46.1.11 → v46.1.14 (#2490), codecov/codecov-action digest refresh (#2493), mxschmitt/action-tmate digest refresh (#2530).
  • enable_terminal workflow_dispatch input description clarified to "Enable terminal session for CI jobs" (#2504).
  • CI DB cache key prefix bumped from v26.4.0-db11-... to v26.5.1-db11-... (six occurrences in build-test-deploy.yml) so the MySQL image tag bump (26.4.026.5.1) invalidates the existing cache instead of reusing it.

Testing

  • Vortex's behat.yml was the target of #2523 ("renamed region_map to regions and nested message selectors"). The project's baseline already uses regions: (the rename was applied in an earlier update), so there is no structural change to take. Vortex's new generic region/selector values (header: '#header', .region.region--*, .messages without CivicTheme variants) were NOT adopted because they do not match this site's CivicTheme-rendered DOM. The project's CivicTheme regions and message selectors are preserved verbatim, along with the matching tests/behat/features/behat.feature scenarios.
  • drevops/behat-steps bumped ^3.8.0^3.9.0 (#2527) to enable the new AccessibilityTrait used by tests/behat/bootstrap/FeatureContext.php and exercised by the new @a11y-tagged tests/behat/features/accessibility.feature scenario.
  • Behat @javascript tag added to the screenshot scenario in tests/behat/features/behat.feature so it runs against a real browser (paired with the same Vortex PR above).
  • docs/testing.md snippet syntax modernised from Given "x" terms: to Given the following "x" terms: to match the behat-steps 3.9 grammar.

Notifications

  • diffy added to VORTEX_NOTIFY_CHANNELS in .env so visual-regression notifications from Diffy reach the configured email/Slack/GitHub channels alongside the existing event types. The documented allowed-channels comment was updated to include diffy so the inline reference stays in sync with the configured value.

Hosting / Lagoon

  • Lagoon container image base bumped from 26.4.0 to 26.5.1 across all Dockerfiles (#2515). Affects cli, php, nginx-drupal, database, solr, clamav.
  • Lagoon post-rollout .lagoon.yml tasks now call ./vendor/drevops/vortex-tooling/src/notify, ./vendor/drevops/vortex-tooling/src/export-db-file, ./vendor/drevops/vortex-tooling/src/download-db, ./vendor/drevops/vortex-tooling/src/provision instead of ./scripts/vortex/*.sh counterparts.
  • Vortex proposed new monitoring_urls: blocks per env and a new top-level routes: insecure: Redirect. Both additions were rejected in this PR - the project keeps only its existing explicit routes: (drevops.com / www.drevops.com for main, dev.drevops.com for develop) so production routing is preserved without enrolling the domains in Vortex-default monitoring or insecure-redirect handling.
  • VORTEX_DOWNLOAD_DB_ENVIRONMENT default changed to main for Lagoon DB source (#2502) so prod-DB downloads work without setting the env explicitly.

Composer scaffold

  • cli.dockerfile now COPYs patches.lock.* into the CLI container (#2532).
  • .dockerignore whitelist now includes patches.lock.json (#2531).

Documentation / AGENTS

  • AGENTS.md Critical Rules updated: "Never modify shipped scripts at vendor/drevops/vortex-tooling/src/ - use patches via cweagans/composer-patches, or add your own scripts under scripts/custom/" (was: "Never modify scripts/vortex/ ...").
  • .gitignore now ships a .claude/ ignore block with !.claude/settings.json allow-list.
  • .claude/settings.json added with Bash(ahoy:*) allow-list so Claude Code runs ahoy commands locally without per-command prompts; tracked because of the new .gitignore allowlist.

Dependency Updates

Composer

Added

  • drevops/vortex-tooling 1.0.0 - new in-vendor scaffold tooling package.

Constraint changes (composer.json)

  • drevops/behat-steps: ^3.8.0^3.9.0 (required by the AccessibilityTrait adoption above).
  • Other dev-tool and contrib floor bumps Vortex proposed (drush/drush ^13.7.2^13.7.3, phpstan/phpstan ^2.1.54^2.2.1, rector/rector ^2.4.2^2.4.5, palantirnet/drupal-rector ^0.21.1^0.21.2, drupal/pathauto ^1.14^1.15.0, etc.) are NOT applied in this PR. Per the skill, those are out of scope for a Vortex update and will be picked up in a follow-on /update-consumer-drupal run.

Lock-only refreshes (composer.lock)

These were resolved within existing constraints when the lock was regenerated to include drevops/vortex-tooling:

  • drupal/core: 11.3.1011.3.11
  • drupal/core-composer-scaffold: 11.3.1011.3.11
  • drupal/core-recommended: 11.3.1011.3.11
  • symfony/string: v7.4.11v7.4.13
  • symfony/console: v7.4.11v7.4.13
  • symfony/yaml: v7.4.12v7.4.13
  • symfony/dependency-injection: v7.4.10v7.4.13
  • symfony/process: v7.4.11v7.4.13
  • symfony/routing: v7.4.12v7.4.13
  • symfony/http-foundation: v7.4.8v7.4.13
  • symfony/mime: v7.4.12v7.4.13
  • symfony/http-kernel: v7.4.12v7.4.13
  • symfony/polyfill-php81: v1.37.0v1.38.1
  • symfony/polyfill-php83: v1.37.0v1.38.1
  • symfony/polyfill-intl-idn: v1.37.0v1.38.1
  • twig/twig: v3.26.0v3.27.0
  • guzzlehttp/guzzle: 7.10.27.10.5

Node

No package.json changes.

How to test

Locally

  1. Check out this branch (feature/update-vortex-69de37c).
  2. Run ahoy build - confirm the site builds end-to-end. The first run will print "Install Vortex tooling" lines as scripts/vortex-tooling.sh populates vendor/drevops/vortex-tooling/.
  3. Check website functionality: anonymous browsing, admin login, a content edit, the search results page.
  4. Confirm ahoy download-db --fresh, ahoy export-db, ahoy doctor, and ahoy update-vortex still succeed - each will call the new require-tooling helper.

CI

  1. Check that the CI build for this PR passed (the lint, build/test/database and deploy jobs).

Hosting

  1. Deploy to a non-production Lagoon environment (e.g. develop) and watch the post-rollout logs: notify, download-db, provision, export-db-file, and the post-deployment notify should all run via the new ./vendor/drevops/vortex-tooling/src/* paths.
  2. Do exploratory testing in that environment (homepage, admin, content add, search, login).

@coderabbitai

coderabbitai Bot commented May 31, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

This PR migrates Ahoy/Lagoon/CI command execution from many host-side shell scripts to vendored drevops/vortex-tooling entrypoints, adds a tooling installer, bumps Lagoon base images and CI runner pins, expands build-context whitelist, removes superseded scripts, and adds Behat accessibility tests.

Changes

Vortex Tooling Migration & Infrastructure Updates

Layer / File(s) Summary
Foundation: Composer dependency and installer
composer.json, scripts/vortex-tooling.sh
Added drevops/vortex-tooling (^1.0) to composer.json; new idempotent installer script bootstraps the package into vendor/drevops/ with support for composer patches and GitHub OAuth token configuration.
Ahoy command routing and aliases
.ahoy.yml
Routed 10+ commands (info, login, download-db, provision, export-db, import-db, reset, deploy, doctor, update-vortex) to vendored tooling entrypoints; added convenience aliases (rebuild, status, destroy, ssh, fetch-db, prune, fe-install, phpunit, xdebug); introduced require-tooling helper for early bootstrap.
CI pipeline: GitHub Actions integration
.github/workflows/build-test-deploy.yml, .github/workflows/*
Added "Install Vortex tooling" step to lint/database/build/deploy jobs; swapped registry login, DB operations, provisioning, and deployment commands to use vendored tooling; bumped CI runner images to 26.5.0; updated DB cache keys to v26.5.1-db11; repinned Codecov/tmate and updated action commit pins.
Production deployment: Lagoon task configuration
.lagoon.yml
Updated pre/post-deployment notifications, DB export, DB download, and provisioning tasks to call vendored tooling entrypoints; added commented SSL certificate installation guidance.
Docker container images & build context
.docker/*, .dockerignore
Bumped Lagoon base image tags from 26.4.0 → 26.5.1 across commons, PHP CLI/FPM, MySQL, nginx-drupal, and Solr Dockerfiles; adjusted CLI Docker COPY to include patches.lock.*; expanded .dockerignore allowlist for Node/package and patches lockfiles.
Legacy script removals
scripts/vortex/* (various removed)
Removed multiple host-side vortex scripts that are superseded by vendored tooling entrypoints; Ahoy/Lagoon/CI now call vendored commands or use the new installer.
Documentation, policy, and config updates
AGENTS.md, README.md, .gitignore, .claude/settings.json, .env
Updated AGENTS.md rule to forbid modifying vendor/drevops/vortex-tooling/src/; bumped README Vortex badge; added Claude ignore/un-ignore entries; added .claude permissions for Bash(ahoy:*); added diffy to VORTEX_NOTIFY_CHANNELS.
Behat: accessibility tests and bootstrap
tests/behat/bootstrap/FeatureContext.php, tests/behat/features/*, docs/testing.md
Added AccessibilityTrait to FeatureContext, new accessibility.feature scenario, added @javascript tag to an existing scenario, and adjusted Behat example step wording in docs.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

  • drevops/website#169: Updates .ahoy.yml info command environment exports and routing, overlapping with the tooling migration scope.

Suggested labels

Dependencies

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title accurately reflects the main objective: updating Vortex from 1.38.0 to 1.39.0, which involves migration of 39 shell scripts to a vendored Composer package and refactoring of Ahoy commands.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/update-vortex-69de37c

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

@github-actions

This comment has been minimized.

@codecov-commenter

codecov-commenter commented May 31, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 87.73%. Comparing base (f05f5e2) to head (1f51d45).

Additional details and impacted files
@@           Coverage Diff            @@
##           develop     #177   +/-   ##
========================================
  Coverage    87.73%   87.73%           
========================================
  Files           11       11           
  Lines          163      163           
========================================
  Hits           143      143           
  Misses          20       20           

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

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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.docker/database.dockerfile:
- Line 8: The workflow cache key prefix in
.github/workflows/build-test-deploy.yml still uses v26.4.0-db11-..., which can
cause CI to reuse caches after the DB ARG IMAGE was updated to
uselagoon/mysql-8.4:26.5.1; update the cache key prefix to match the new DB
image tag (e.g., v26.5.1-db11-...) or add a comment explaining why the cache
version should remain independent so the CI cache is correctly invalidated when
the DB image changes.

In @.gitignore:
- Around line 44-47: Remove the redundant un-ignore directive “!.claude”: since
only “.claude/*” is ignored, “.claude” itself isn’t ignored so the “!.claude”
line has no effect; delete the “!.claude” entry and keep “.claude/*” and
“!.claude/settings.json” as-is to match the existing pattern used for
“recipes/*”.

In `@behat.yml`:
- Around line 59-71: The selectors in behat.yml (keys: header, primary_menu,
secondary_menu, hero, highlighted, breadcrumb, social, content_above, content,
sidebar, content_below, footer_top, footer_bottom) do not match the real theme
markup (e.g., '`#header`', '.header-nav', '.social-bar', and the
'.region.region--*' values); open the rendered HTML/templates to find the actual
CSS selectors used by the theme and replace each value in behat.yml with the
corresponding real selector (update header, primary_menu, social, and every
'.region.region--*' entry), or alternatively adjust the theme/template classes
to match these selectors so Behat targets the real elements.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 93559814-bf8d-4ac7-9850-a1dfd8fe550d

📥 Commits

Reviewing files that changed from the base of the PR and between f05f5e2 and 92c8fdd.

⛔ Files ignored due to path filters (1)
  • composer.lock is excluded by !**/*.lock
📒 Files selected for processing (60)
  • .ahoy.yml
  • .docker/clamav.dockerfile
  • .docker/cli.dockerfile
  • .docker/database.dockerfile
  • .docker/nginx-drupal.dockerfile
  • .docker/php.dockerfile
  • .docker/solr.dockerfile
  • .dockerignore
  • .github/workflows/build-test-deploy.yml
  • .github/workflows/draft-release-notes.yml
  • .github/workflows/label-merge-conflict.yml
  • .github/workflows/update-dependencies.yml
  • .gitignore
  • .lagoon.yml
  • AGENTS.md
  • README.md
  • behat.yml
  • composer.json
  • scripts/vortex-tooling.sh
  • scripts/vortex/deploy-artifact.sh
  • scripts/vortex/deploy-container-registry.sh
  • scripts/vortex/deploy-lagoon.sh
  • scripts/vortex/deploy-webhook.sh
  • scripts/vortex/deploy.sh
  • scripts/vortex/doctor.sh
  • scripts/vortex/download-db-acquia.sh
  • scripts/vortex/download-db-container-registry.sh
  • scripts/vortex/download-db-curl.sh
  • scripts/vortex/download-db-ftp.sh
  • scripts/vortex/download-db-lagoon.sh
  • scripts/vortex/download-db-s3.sh
  • scripts/vortex/download-db-url.sh
  • scripts/vortex/download-db.sh
  • scripts/vortex/export-db-file.sh
  • scripts/vortex/export-db-image.sh
  • scripts/vortex/export-db.sh
  • scripts/vortex/github-labels.sh
  • scripts/vortex/info.sh
  • scripts/vortex/login-container-registry.sh
  • scripts/vortex/login.sh
  • scripts/vortex/logout.sh
  • scripts/vortex/mirror-code.sh
  • scripts/vortex/notify-email.sh
  • scripts/vortex/notify-github.sh
  • scripts/vortex/notify-jira.sh
  • scripts/vortex/notify-newrelic.sh
  • scripts/vortex/notify-slack.sh
  • scripts/vortex/notify-webhook.sh
  • scripts/vortex/notify.sh
  • scripts/vortex/provision-sanitize-db.sh
  • scripts/vortex/provision.sh
  • scripts/vortex/reset.sh
  • scripts/vortex/setup-ssh.sh
  • scripts/vortex/task-copy-db-acquia.sh
  • scripts/vortex/task-copy-files-acquia.sh
  • scripts/vortex/task-custom-lagoon.sh
  • scripts/vortex/task-purge-cache-acquia.sh
  • scripts/vortex/update-vortex.sh
  • scripts/vortex/upload-db-s3.sh
  • tests/behat/features/behat.feature
💤 Files with no reviewable changes (40)
  • scripts/vortex/download-db-lagoon.sh
  • scripts/vortex/download-db-s3.sh
  • scripts/vortex/update-vortex.sh
  • scripts/vortex/login.sh
  • scripts/vortex/download-db-acquia.sh
  • scripts/vortex/deploy.sh
  • scripts/vortex/notify-newrelic.sh
  • scripts/vortex/logout.sh
  • scripts/vortex/setup-ssh.sh
  • scripts/vortex/login-container-registry.sh
  • scripts/vortex/download-db-container-registry.sh
  • scripts/vortex/export-db-file.sh
  • scripts/vortex/doctor.sh
  • scripts/vortex/notify-webhook.sh
  • scripts/vortex/upload-db-s3.sh
  • scripts/vortex/provision.sh
  • scripts/vortex/notify-jira.sh
  • scripts/vortex/download-db.sh
  • scripts/vortex/info.sh
  • scripts/vortex/task-copy-db-acquia.sh
  • scripts/vortex/task-purge-cache-acquia.sh
  • scripts/vortex/export-db-image.sh
  • scripts/vortex/export-db.sh
  • scripts/vortex/deploy-artifact.sh
  • scripts/vortex/notify-email.sh
  • scripts/vortex/task-custom-lagoon.sh
  • scripts/vortex/deploy-webhook.sh
  • scripts/vortex/notify.sh
  • scripts/vortex/notify-slack.sh
  • scripts/vortex/download-db-ftp.sh
  • scripts/vortex/provision-sanitize-db.sh
  • scripts/vortex/deploy-container-registry.sh
  • scripts/vortex/notify-github.sh
  • scripts/vortex/mirror-code.sh
  • scripts/vortex/download-db-curl.sh
  • scripts/vortex/download-db-url.sh
  • scripts/vortex/github-labels.sh
  • scripts/vortex/deploy-lagoon.sh
  • scripts/vortex/reset.sh
  • scripts/vortex/task-copy-files-acquia.sh

Comment thread .docker/database.dockerfile
Comment thread .gitignore
Comment on lines +44 to +47
# Ignore all Claude files by default. Custom files should be added explicitly.
!.claude
.claude/*
!.claude/settings.json

@coderabbitai coderabbitai Bot May 31, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🧹 Nitpick | 🔵 Trivial | 💤 Low value

Optional: Remove redundant un-ignore directive.

The !.claude directive on line 45 is redundant. Since .claude itself is not ignored (only its contents via .claude/*), the un-ignore directive has no effect. The pattern works correctly without it and would be consistent with the recipes/* pattern above (line 42).

♻️ Optional cleanup
 # Ignore all Claude files by default. Custom files should be added explicitly.
-!.claude
 .claude/*
 !.claude/settings.json
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.gitignore around lines 44 - 47, Remove the redundant un-ignore directive
“!.claude”: since only “.claude/*” is ignored, “.claude” itself isn’t ignored so
the “!.claude” line has no effect; delete the “!.claude” entry and keep
“.claude/*” and “!.claude/settings.json” as-is to match the existing pattern
used for “recipes/*”.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Not adopting in this PR. The three-line block (!.claude / .claude/* / !.claude/settings.json) is what Vortex ships in its .gitignore scaffold (#2514). Although !.claude on its own appears no-op against this file alone, it is intentionally defensive against a parent or global .gitignore that might ignore .claude outright - removing the un-ignore would silently break tracking for that case. Keeping in sync with the upstream Vortex shape so future updates do not surface a phantom diff here.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

@AlexSkrypnyk, understood — thanks for the clear rationale. The defensive !.claude pattern makes sense when a parent or global .gitignore could suppress .claude entirely, and keeping it aligned with the upstream Vortex scaffold (#2514) is a good reason to leave it as-is. I'll note this for future reviews.


✏️ Learnings added
Learnt from: AlexSkrypnyk
Repo: drevops/website PR: 177
File: .gitignore:44-47
Timestamp: 2026-05-31T23:56:46.457Z
Learning: In Vortex-based projects (e.g., drevops/website), the three-line block `!.claude` / `.claude/*` / `!.claude/settings.json` in `.gitignore` is the intentional upstream Vortex scaffold pattern (see Vortex `#2514`). The `!.claude` line is deliberately kept as a defensive un-ignore in case a parent or global `.gitignore` ignores `.claude` outright; it should NOT be flagged as redundant or removed, as doing so would break tracking in that scenario and cause phantom diffs on future Vortex updates.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.

Comment thread behat.yml Outdated
@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

Comment thread scripts/vortex-tooling.sh
[ "${VORTEX_DEBUG-}" = "1" ] && set -x

# Already installed - nothing to do.
if [ -d ./vendor/drevops/vortex-tooling ]; then

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Vortex 69de37c: drevops/vortex#2505

This file is part of the scripts/vortex/ -> drevops/vortex-tooling Composer package migration. Host-side recipes (ahoy download-db, ahoy doctor, ahoy deploy, etc.) need the Vortex shell helpers BEFORE composer install has been run for the project's full dependency tree. This script installs only drevops/vortex-tooling into vendor/drevops/ via a throwaway vendor-temp/ Composer project. The early [ -d ./vendor/drevops/vortex-tooling ] check makes it idempotent, so subsequent invocations are no-ops.

Comment thread .ahoy.yml
# available in vendor/. Installs just the tooling (not the full dep tree)
# so commands like 'ahoy download-db' work on a fresh clone before a full
# 'composer install' has run.
require-tooling:

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Vortex 69de37c: drevops/vortex#2505

New internal require-tooling command that runs scripts/vortex-tooling.sh. It is called from download-db, provision, export-db, deploy, doctor, and update-vortex so each of those commands self-bootstraps the Vortex tooling package before invoking its ./vendor/drevops/vortex-tooling/src/* binary. On a fresh clone this is what makes ahoy download-db work without a prior ahoy composer install.

Comment thread .ahoy.yml
download-db:
usage: Download database. Run with "--fresh" option to force fresh database backup.
aliases: [fetch-db]
aliases: [fetch-db, db-download, db-fetch]

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Vortex 69de37c: drevops/vortex#2510

Across this .ahoy.yml Vortex added cross-tool aliases for nearly every command (build -> rebuild, info -> status / describe / ps, down -> destroy, cli -> ssh / shell, download-db -> fetch-db / db-download / db-fetch, export-db -> db-export / db-dump / dump-db, import-db -> db-import, reset -> prune / delete, test -> phpunit, debug -> xdebug, doctor -> diagnose / health, plus the FE variants). The aim is to let muscle memory from other dev tools (docker compose, make, etc.) work here too. Nothing existing is renamed, so existing scripts continue to work.

continue-on-error: ${{ vars.VORTEX_CI_COMPOSER_VALIDATE_IGNORE_FAILURE == '1' }}

- name: Install Vortex tooling
run: ./scripts/vortex-tooling.sh

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Vortex 69de37c: drevops/vortex#2505

This Install Vortex tooling step (added to all four jobs that need the helpers) runs the new scripts/vortex-tooling.sh to install drevops/vortex-tooling into vendor/drevops/. CI runs the step explicitly because each job uses a fresh container and needs the Vortex shell binaries (download-db, provision, export-db, login-container-registry, deploy) before they are invoked further down. Local runs go through Ahoy and get the same bootstrap via ahoy require-tooling.

Comment thread .docker/cli.dockerfile
# The .env file (and other environment files) is copied into the image, as it
# may be needed by Composer scripts to access additional variables.
COPY composer.json composer.* .env* auth* /app/
COPY composer.json composer.* patches.lock.* .env* auth* /app/

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Vortex 69de37c: drevops/vortex#2532

The CLI image now copies patches.lock.* alongside composer.json / composer.lock. patches.lock.json is produced by cweagans/composer-patches v2 and pins exact patch versions/hashes so the in-container composer install applies the same patch set the host resolved. Without this line the container would re-resolve patches and could end up out of sync with the host lockfile.

@AlexSkrypnyk AlexSkrypnyk temporarily deployed to PR-177 June 1, 2026 00:12 Inactive
@AlexSkrypnyk AlexSkrypnyk force-pushed the feature/update-vortex-69de37c branch from d14e937 to 92dd517 Compare June 1, 2026 00:26
@github-actions

This comment has been minimized.

1 similar comment
@github-actions

This comment has been minimized.

@AlexSkrypnyk AlexSkrypnyk added the VR label Jun 1, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.env:
- Around line 206-207: The inline comment listing allowed notification channels
is out of sync with the configured value: update the comment that currently
lists "email,slack,newrelic,github,jira,webhook" to also include "diffy" so it
matches the VORTEX_NOTIFY_CHANNELS value and supported channel set; locate the
comment near the VORTEX_NOTIFY_CHANNELS variable and add "diffy" to the
documented list.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 5bfc25e0-30db-4d10-9a3e-54f1d179815a

📥 Commits

Reviewing files that changed from the base of the PR and between 92dd517 and 65b6fe5.

📒 Files selected for processing (1)
  • .env

Comment thread .env Outdated
@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@AlexSkrypnyk AlexSkrypnyk temporarily deployed to PR-177 June 1, 2026 01:21 Inactive
@github-actions

This comment has been minimized.

@AlexSkrypnyk AlexSkrypnyk changed the title Updated Vortex to '69de37c'. Updated Vortex to '1.39.0'. Jun 1, 2026
@AlexSkrypnyk AlexSkrypnyk temporarily deployed to PR-177 June 1, 2026 01:31 Inactive
@github-actions

github-actions Bot commented Jun 1, 2026

Copy link
Copy Markdown

Code coverage (threshold: 80%)

  Classes: 50.00% (5/10)
  Methods: 73.91% (17/23)
  Lines:   92.88% (313/337)
Per-class coverage
Drupal\do_feed\FeedUrlBuilder
  Methods: 100.00% ( 4/ 4)   Lines: 100.00% ( 18/ 18)
Drupal\do_feed\Form\FeedSettingsForm
  Methods: 100.00% ( 4/ 4)   Lines: 100.00% ( 15/ 15)
Drupal\do_feed\Hook\EntityDeleteHook
  Methods:  50.00% ( 1/ 2)   Lines:  92.31% ( 12/ 13)
Drupal\do_feed\Hook\EntityPresaveHook
  Methods: 100.00% ( 4/ 4)   Lines: 100.00% ( 54/ 54)
Drupal\do_feed\Hook\PreprocessParagraphHook
  Methods: 100.00% ( 2/ 2)   Lines: 100.00% ( 14/ 14)
Drupal\do_feed\Hook\PreprocessViewsViewRowRssHook
  Methods: 100.00% ( 1/ 1)   Lines: 100.00% (  3/  3)
Drupal\do_feed\Hook\ViewsPreViewHook
  Methods:  50.00% ( 1/ 2)   Lines:  96.43% ( 27/ 28)

@AlexSkrypnyk AlexSkrypnyk removed the VR label Jun 1, 2026
@AlexSkrypnyk AlexSkrypnyk merged commit 47f3d7e into develop Jun 1, 2026
8 checks passed
@AlexSkrypnyk AlexSkrypnyk deleted the feature/update-vortex-69de37c branch June 1, 2026 02:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants