1.36.0
1.36.0 - Phase
This release makes Vortex AI-native, migration-ready, and more production-safe by introducing structured agent support, CI-testable migrations, full-stack JS testing, hardened provisioning, and improved CI/infrastructure capabilities.
π Highlights
-
Migration Framework Integration
Added secondary database support during provisioning to import existing sites and run migrations in a controlled, CI-testable sequence. -
AI-Native Development Support
IntroducedAGENTS.mdand an AI-friendly installer with structured schema and validation flags, enabling reliable non-interactive and agent-driven workflows. -
Functional JavaScript Testing
Enabled browser-based Functional JS tests via a Chrome container, extending Vortexβs full-stack automated testing capabilities. -
Safer, More Reliable Provisioning
Prevent config imports from overriding database updates and simplified provisioning logic to use direct Drush commands. -
Improved CI & Infrastructure Flexibility
Added S3 database download support, surfaced coverage thresholds in CI summaries, and improved artifact handling for better visibility and debugging.
π₯ Breaking changes
None.
What's new since 1.35.3
π Template
-
β¨ New
-
[#1642] Added support for migrations. @AlexSkrypnyk
A secondary database can now be used during provisioning to import an existing Drupal site's database dump, and then run the migration commands in a pre-defined order. This allows to test migrations locally and in CI. -
[#1968] Added a fallback for installing from profile if the DB is not available during provision. @AlexSkrypnyk (#2294)
When setting up a project in an environment where the database is not available, a "seed" databases is needed. But the environment not exist to seed that database. This change allows to use a Drupal profile to provision a seed database in the environment, and later override it with the real one. -
[#1654] Added a check that config import does not override database updates during provision. @AlexSkrypnyk (#2304)
Updated modules may bring databased updates via update hook. When the provision runs, the config import runs after these database updates, and may revert them. This change allows to check the configs before and after import and fail the provision if there are changes that may indicate that database updates were reverted. -
[#532] Added support for Functional JS tests. @AlexSkrypnyk (#2300)
Functional JS tests can now run using the Chrome container. The setup is similar to existing Behat configuration. -
Added support for all AI agents + docs. @AlexSkrypnyk (#2272)
Vortex now hasAGENTS.mdfile that provides instructions for AI agents on how to work with projects based on Vortex, including how to read generic documentation from https://www.vortextemplate.com/docs, and project-specific documentation from the project'sdocs/directory. This allows teams to document only the project-related specifics and let AI agents use the generic documentation for all the common tasks. -
[#699] Added support for downloading DB from S3. @AlexSkrypnyk (#2256)
Added AWS S3 bucket as a new source of the database dump storage. This is useful for when the database dump cannot be sourced directly from the production environment and is stored in the intermediary location, such as S3. -
[#1913] Allow to modify Drush PHP runtime configuration. @AlexSkrypnyk (#2268)
This allows to provide a customdrush.inifile with PHP configuration targeted for Drush commands. This is useful for commands that require more memory or longer execution time. -
[#2198] Added support for ACME challenge in Shield. @AlexSkrypnyk (#2254)
This allows to use Let's Encrypt certificates with Shield module by bypassing ACME challenge endpoint/.well-known/acme-challenge/*. -
[#1979] Added support for
xmlsitemapmodule for sitemap.xml generation. @AlexSkrypnyk (#2264)
This allows to generatesitemap.xmlfile, which every website should have. -
Added coverage threshold to CI job summary. @AlexSkrypnyk (#2251)
Coverage threshold existed before, but it was only visible in the logs. Now it is also added to the CI job summary, so it is more visible and easier to track. -
Added config to Renovate to update root FE deps. @AlexSkrypnyk (#2278, #2277)
Renovate was configured to manage PHP, Docker and GitHub Action dependencies, but not the NPM dependencies used for module development. This change adds the rootpackage.jsonto Renovate's scope, so that it can keep the FE dependencies up to date as well.
-
-
π Changed
-
Simplified provision to use direct commands rather than
drush:deploy. @AlexSkrypnyk (#2303)
We used bothdrush:deployand direct Drush commands in the provision script based on whether the configuration files were present or not. This change simplifies the logic by always using direct Drush commands, which are more straightforward and easier to maintain. -
Added missing namespaced variables to Vortex scripts. @AlexSkrypnyk (#2267)
Namespaced variables are variables that have a specific prefix to indicate that they are used in a context of a specific script. This allows to target variables more precisely. Some of the scripts did not have namespaced variables, which made certain overrides impossible. This change fixes that. -
Removed the Docker builder cache to free up CI container space. @AlexSkrypnyk (#2290)
In some edge cases, the container could run out of space due to the builder cache, which is not needed in CI and can be safely removed. -
Disabled Renovate for development
.vortexfiles. @AlexSkrypnyk (#2285)
These dependencies are locked and managed manually. -
[#2202] Updated Acquia settings to use env variables to include the cloud setting file. @AlexSkrypnyk (#2260)
Prior to this change, the Acquia settings file was included using the project details specified as strings in thesettings.acquia.phpfile, making it less upgradable. -
Increased test coverage for Acquia env settings. @AlexSkrypnyk
Some of the code paths in Acquia settings were not covered by tests, which made it more difficult to maintain and refactor. This change adds more tests to cover these paths. -
[#1976] Upload SUT test artifacts in vortex-test-workflow CI. @AlexSkrypnyk (#2255)
This allows to have access to the test artifacts produced by the SUT tests, such as screenshots and logs, which can be useful for debugging test failures.
-
-
π Fixed
-
[#2270] Fixed follow-up deployments to mark deployment in GitHub as inactive. @AlexSkrypnyk (#2299)
This was making follow-up deployments of peer PRs to mark the deployments of the other PRs as inactive. The fix was to correctly name the deployment in GitHub after the PR number or branch. -
[#2261] Fixed Acquia settings to allow
DRUPAL_CONFIG_PATHoverride independently ofconfig_vcs_directory. @AlexSkrypnyk (#2263)
This fixes the issues where the config sync directory in Acquia could be overridden with a value fromDRUPAL_CONFIG_PATHenvironment variable only if$settings['config_vcs_directory']existed. After this fix, theDRUPAL_CONFIG_PATHvariable can be used to override the config sync directory in Acquia regardless of the presence ofconfig_vcs_directorysetting. -
Fixed incorrectly prefixed environment variables. @AlexSkrypnyk (#2265)
RenamedVORTEX_DB_<ACTION>_*toVORTEX_<ACTION>_DB_*for consistency with other variables. -
Fixed SIGPIPE (exit code 141) in CI coverage threshold check caused by
head -1closing pipe underpipefail. @AlexSkrypnyk (#2289) -
[#1219] Fixed tag deployment mode skip in Lagoon deploy script. @AlexSkrypnyk (#2301)
Prior to this change, the tag deployment wouldbe triggered from CI and hiy Lagoon, which would respond with an error, causing the CI job to fail. -
[#2249] Changed Renovate rangeStrategy to bump. @AlexSkrypnyk (#2250)
This fixes Renovate configuration to also updatecomposer.jsonwhen bumping dependencies. Not adding this earlier when we switched to using "bumping" of versions incomposer.jsonwas an oversight.
-
-
β¬οΈ Updated
- Updated CI runner to 26.2.0 @AlexSkrypnyk (#2307)
- Update Node.js to >= 20.20.0. @renovate[bot] (#2291)
- Update Minor and Patch Core to ~11.3.3. @renovate[bot] (#2253)
- Updated deps. @AlexSkrypnyk (#2257)
- Updated deps for installer, tests and docs. @AlexSkrypnyk (#2276)
- Update dawidd6/action-download-artifact action to v15. @renovate[bot] (#2305)
- Update renovatebot/github-action action to v46.1.1. @renovate[bot] (#2296)
- Update clamav/clamav-debian Docker tag to v1.5.1-28. @renovate[bot] (#2295)
- Update renovatebot/github-action action to v46.1.0. @renovate[bot] (#2274)
- Update clamav/clamav-debian Docker tag to v1.5.1-27. @renovate[bot] (#2266)
- Update renovatebot/github-action action to v46.0.2. @renovate[bot] (#2258)
π Installer
-
β¨ New
- [#2302] Added support for prompts schema to make the installer AI-friendly. @AlexSkrypnyk (#2306)
AI agents now can use--schemaflag to get structured information about the installer options, requirements and steps, and use it to run the installer in a non-interactive way.
They can also use--validateflag to validate the config before running the installer.
There is also a new--agent-helpflag that provides detailed information about the installer's commands and options. This is useful for AI agents.
- [#2302] Added support for prompts schema to make the installer AI-friendly. @AlexSkrypnyk (#2306)
-
π Changed
- None.
-
π Fixed
- None.
π Documentation
-
β¨ New
- [#1559] Added DrupalSouth 2025 presentation link to README and docs introduction. @AlexSkrypnyk (#2297)
- [#2172] Added more information to docs about how we test Vortex. @AlexSkrypnyk (#2262)
-
π Changed
- Refactored documentation to make it AI and human friendly. @AlexSkrypnyk (#2248)
- Updated maintenance docs to split in 3 parts. @AlexSkrypnyk (#2271)
-
π Fixed
- Fixed database docs. @AlexSkrypnyk (#2259)
- Removed Terminalizer configuration and documentation files. @AlexSkrypnyk (#2273)
π Release checklist
- Updated all dependencies outside of the schedule
- Updated container images to the latest versions and checked that
@seelinks - Updated PHP version in
composer.jsonforconfig.platform. - Updated PHP version in
phpcs.xmlfortestVersion. - Updated PHP version in
phpstan.neonforphpVersion. - Updated minor version of all packages in
composer.json. - Updated minor version of dependencies in theme's
package.json. - Update
drevops/ci-runnerto the latest version in.circleci/config.ymland.github/workflows/build-test-deploy.yml. - Incremented the cache version in
.circleci/config.ymland.github/workflows/build-test-deploy.yml. - Updated documentation.
Full Changelog: 1.35.3...1.36.0
@AlexSkrypnyk, @renovate[bot] and renovate[bot]