Vortex 25.7.0 updates the template to Drupal 11.2 and Rector 2, takes time out of CI, and improves the day-to-day experience of working inside the containers. It also carries 4 breaking changes, so this release needs a few minutes of attention before you update.
4 changes to make when you upgrade
Start here. Each one is small, and each will produce a confusing failure if it is missed.
| What changed | What to do |
|---|---|
GITHUB_TOKEN is now PACKAGE_TOKEN | Affects projects using private Composer packages. Rename the variable in your CI and hosting environment configuration. The old name is no longer read during builds. |
Installer variables VORTEX_INSTALL_* are now VORTEX_INSTALLER_* | Affects automated installs. Update any script that drives the installer. |
| Lagoon deployments continue when the environment limit is exceeded | The previous behaviour is opt-in. Set VORTEX_DEPLOY_LAGOON_FAIL_ENV_LIMIT_EXCEEDED=1 in your CI configuration to keep failing the build in that case. |
| Nginx redirects non-www to www by default | If your site should serve the apex domain, comment out the rule in .docker/config/nginx/redirects-map.conf. |
Drupal 11.2 and Rector 2
The template moves to Drupal 11.2, and the Rector configuration moves to Rector 2 alongside it. Rector is the tool that rewrites code against deprecated APIs automatically, and it is most of what keeps a Drupal minor upgrade routine.
The demo theme scaffold was refreshed at the same time, with current dependencies and the modern SASS use syntax replacing the deprecated @import. Example CSS and JavaScript libraries were added to ys_base, along with linting for module CSS and JavaScript, so front-end code inside a custom module is held to the same standard as the theme.
CI that skips work it does not need to do
CI minutes are a real budget line, and most pipelines spend a portion of theirs repeating work that changed nothing.
2 changes address that. The nightly database build skips the Drupal theme build, which is a significant saving on sites with large themes, because that job exists to test the database and not the front end. And code linting runs on the first CI instance only. The same answer arrives for a fraction of the time.
The underlying drevops/ci-runner image was reworked and optimised for faster builds in the same release.
Private Composer packages, with the token kept out of the image
Plenty of organisations keep some code in private repositories. Pulling that in during a container build means getting a credential into the build without it ending up baked into the image.
This release adds support for building with private Composer packages, with a worked example, and masks PACKAGE_TOKEN during the Docker build so it stays out of build output. Docker parallel build ordering was fixed at the same time, which matters because recent Docker Compose versions use bake by default and build in parallel.
Small things that make the day better
ahoy drushcommands prompt properly again. A TTY allocation problem meant confirmation prompts were being skipped, so a command that should have asked before doing something destructive went ahead and did it.ahoy provisionasks for confirmation before it runs, and reports how long it took when it finishes.ahoy doctor infosanitises its own output, so you can paste it into a GitHub issue without reading it line by line for personal data first.- ClamAV switched to the
clamav/clamav-debianimage, which runs on Apple silicon as well as x86. - The installer dropped the GitHub prompts that confused people, gained timezone support, and had its prompts reworked.
Upgrading
Work through the 4 breaking changes above first, then update as normal. The CI savings, the Docker fixes and the move to Drupal 11.2 all apply without configuration.
Full details are in the GitHub release notes(Opens in a new tab/window), and the Vortex documentation(Opens in a new tab/window) covers the variables above.