25.10.0
What's new since 25.8.1
This release focuses on improving consistency, automation, and configurability across Vortex. It introduces stricter code standards, enhances CI/CD reliability, adds new local dev and installer capabilities, and refines Acquia hosting behavior to be more predictable and flexible.
Notable changes
-
Added PHPCS standard enforcing snake_case for local variables and method arguments for consistent coding style (#2074).
-
Upgraded Rector config to v2 with rule sets for better maintainability and performance (#2047, #2068).
-
Improved Acquia hosting by allowing
DRUPAL_CONFIG_PATHoverride and fixing config directory/redirect issues (#2012). -
Enhanced GitHub Actions CI with fixed tag deployments, preserved file permissions, and faster artifact packaging (#2010, #2039).
-
Installer and functional tests modernized — added hosting project name, core theme selection, PHP 8.3 support, and migrated tests to PHPUnit (#2045, #2075).
💥 Breaking changes
None
💧 Drupal
New features
None
Fixes
- Fixed theme CSS output style in Grunt config. @AlexSkrypnyk (#2008)
Updates
- Simplified Redis extension loaded condition. @AlexSkrypnyk (#2049)
Redis now enables only when the Redis extension is loaded or when an environment variable is explicitly set to '1', preventing unintended activation from ambiguous values and making configuration more predictable
☁️ Hosting
New features
- Allow to override config directory with
DRUPAL_CONFIG_PATHin Acquia. @AlexSkrypnyk (#2012)
Fixes
- Fixed config directory not using
config/defaultin Acquia. @AlexSkrypnyk (#2012) - Fixed non-www to www-redirect for non-prod in Acquia. @AlexSkrypnyk (#2012)
Updates
None
🏗 Continuous Integration
New features
None
Fixes
- Fixed GHA deployment not triggering for tags. @AlexSkrypnyk (#2039)
- Fixed undefined variable in notify GitHub script. @AlexSkrypnyk (#2038)
- Fixed GHA not passing
VORTEX_ACQUIA_*variables required for a deployment to Acquia. @AlexSkrypnyk (#2012) - Fixed code artifact permissions not being preserved in GHA. @AlexSkrypnyk (#2010)
Updates
- Improved CI speed by conditionally packaging code artifact files in GHA. @AlexSkrypnyk (#2010)
- Update renovatebot/github-action action to v43.0.19 @renovate[bot] (#2061)
- Update shivammathur/setup-php digest to bf6b4fb @renovate[bot] (#2022)
- Update GitHub Actions (major) @renovate[bot] (#2057)
💻 Local Development and containers
New features
- [#2006] Added metadata to Behat screenshots. @AlexSkrypnyk (#2003)
Fixes
- Fixed redirects map not being applied in Nginx. @AlexSkrypnyk (#2019)
Updates
- Update Container images to v25.10.0 @renovate[bot] (#2064)
- Update clamav/clamav-debian Docker tag to v1.5.1 @renovate[bot] (#2055)
- Update selenium/standalone-chromium Docker tag to v141 @renovate[bot] (#2042)
- Updated CI runner to 25.10.0 @AlexSkrypnyk (#2065)
- Simplified CLI Dockerfile to create directories and set permissions. @AlexSkrypnyk (#2034)
- [#2004] Renamed
ValKeyservice back toRedis. @AlexSkrypnyk (#2005)
🛠️ Tools
New features
-
Added PHPCS standard to enforce snake case for local variables and method arguments. @AlexSkrypnyk (#2074)
Coder does not enforce snake case format for local variables and function/method arguments. https://github.com/drevops/phpcs-standard adds this enforcement for consistency in the custom code. -
[#1995] Upgraded to Rector config to V2 and switched to rule sets. @AlexSkrypnyk (#2047, #2068)
Allows to automatically cover future rules added to the sets without the need to manually update the config each time.
Also improved performance of Rector runs by removing cache claring between runs. -
Added
prettier-plugin-jsdocto the root FE deps and updated other deps. @AlexSkrypnyk (#2067)
Prettier now can format JS docs. -
Added contrib patching section to AI instructions. @AlexSkrypnyk (#2038)
Allows to tell your AI agent to re-roll contrib patches when updating contrib modules. -
Updated
drevops/behat-stepsto3.3. @AlexSkrypnyk (#2078)
Enforces checks for JavaScript errors on the page during Behat tests.
Fixes
- Fixed schema url in PHPUnit config. @AlexSkrypnyk (#2038)
- Fixed DCLint's configuration to allow
<<key ordering. @AlexSkrypnyk (#1997)
Updates
None
⚙️ Workflow
New features
- [#2030] Show login link on
ahoy provision. @AlexSkrypnyk (#2040)
Fixes
None
Updates
- Updated Drupal login tests to include current path assertions. @AlexSkrypnyk (#2070)
- Added rules for
package.jsonto.editorconfig. @AlexSkrypnyk (#2038)
🌀 Vortex
-
📖 Documentation:
- Updated project docs. @AlexSkrypnyk (#1998)
- FAQs: Added external Xdebug documentation link and cross-reference.
- FAQs: Updated Behat example to enable Xdebug by default.
- FAQs: Clarified branch switching does not require a full rebuild; use ahoy provision to update the environment.
- FAQs: Revised patches example keys (Remote patch description) and added a Local patch description entry.
- Minor formatting and wording touch-ups without changing semantics.
- CI guide: Wrapped a long reference link into two lines in CircleCI and GitHub Actions sections (no content changes).
- [#1999] Removed
onboarding.mdfrom the project assets. @AlexSkrypnyk (#2000)
- Updated project docs. @AlexSkrypnyk (#1998)
-
🎛️ Installer:
- [#1967] Added support for Hosting project name. @AlexSkrypnyk (#2045)
- Added support for selecting core themes. @AlexSkrypnyk (#2021)
- Fixed installer to correctly update
composer.jsonfor Drupal CMS starter. @AlexSkrypnyk (#2041) - Fixed
deployTypenot using plural form to mach the env variable. @AlexSkrypnyk (#2072) - Fixed
webrootin.gitignorebeing replaced during installation. @AlexSkrypnyk (#2038) - [#2004] Renamed
ValKeyservice back toRedis. @AlexSkrypnyk (#2005) - Fixed installer not correctly discovers relative web root. @AlexSkrypnyk (#2001)
- Fixed installer not replacing hyphen-delimited module prefix. @AlexSkrypnyk (#1993)
- Enforced snake case for local variables and method arguments in installer. @AlexSkrypnyk (#2074)
-
🔧 Vortex maintenance:
- [#1560] Moved all functional testing to PHPUnit to ease maintenance. @AlexSkrypnyk (#2075, #2071, #2073, #2076, #2036, #2035, #2033, #2018, #2017, #2011, #2009, #2013)
- Upgraded PHP req to 8.3 for installer and Vortex own functional tests. @AlexSkrypnyk (#2074)
- Enforced snake case for local variables and method arguments in functional tests. @AlexSkrypnyk (#2074)
📋 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. - Incremented the cache version in
.circleci/config.ymland.github/workflows/build-test-deploy.yml. - Updated documentation.
Full Changelog: 25.8.1...25.11.0
Note: there was no 25.9.0 release
@AlexSkrypnyk, @renovate[bot] and renovate[bot]