Drupal 12: What to Expect from the August 2026 Release
Share:FacebookX
Home » Drupal 12: What to Expect from the August 2026 Release

Drupal 12: What to Expect from the August 2026 Release

Drupal 12 preview: the next major Drupal release targeted for the week of August 10, 2026, ships Symfony 8, the Navigation module replacing Toolbar, the Gin admin theme replacing Claro, the JavaScript Import Maps API, PHPUnit 12 support, and a reduced-size core package (tests excluded) while landing just months before Drupal 10's December 9, 2026 end of life.

Drupal 12 is currently targeted for release the week of August 10, 2026 per Drupal.org’s official core release schedule. As of early June 2026, that’s the second of three potential release windows: the first window (week of June 15, 2026) was missed when not all critical requirements landed by the March 27 deadline; the third window (week of December 7, 2026) remains as a fallback if the August target slips. The release ships substantive architectural changes (Symfony 8 underneath, the Navigation module replacing Toolbar in core, the Gin theme replacing Claro as the default admin theme, the JavaScript Import Maps API in core, PHPUnit 12 support, several module removals), and it lands at a critical moment for the Drupal 10 fleet: Drupal 10 reaches end of life on December 9, 2026, roughly four months after Drupal 12’s August target.

This post is the forward-looking prep guide for what’s coming in Drupal 12, what changes from Drupal 11, what the upgrade implications are for sites still on Drupal 10, and what teams should be evaluating between now and the release window. For background on the previous releases in the series, see our Drupal 11 explainer and our Drupal 10 end-of-life coverage.

The release-window story

Drupal’s release cycle since 2022 has used a three-window pattern for each new major version. The maintainers publish three potential dates for the next major release, with each window contingent on hitting a beta-completion deadline. If the beta requirements aren’t done by the first deadline, the release slides to the second window; if not by the second, to the third.

For Drupal 12, the three windows are:

  1. Week of June 15, 2026 (missed). The beta requirements deadline was March 27, 2026. The Drupal core maintainers announced on March 23 that the deadline would not be met and the release shifted to the second window.
  2. Week of August 10, 2026 (current target). Beta requirements deadline was May 15, 2026.
  3. Week of December 7, 2026 (fallback). Beta requirements deadline of September 11, 2026 if the August window also slips.

The pattern keeps the release process honest: maintainers commit to actual readiness rather than to a marketing date. The cost is that planning for a specific release-day cadence is harder than for products that ship on calendar deadlines. For organizations planning Drupal 12 upgrades, the August 10 target is the right date to plan against, with awareness that the December fallback exists if the August requirements list slips.

Symfony 8: the foundation underneath

Drupal 12’s most consequential architectural change is the move to Symfony 8 as the underlying PHP framework. Drupal has been built on Symfony for years (the relationship is the subject of our "How Drupal Is Built on Symfony" overview), and major Drupal releases historically bring major Symfony version bumps along with them. Drupal 11 shipped on Symfony 7; Drupal 12 ships on Symfony 8.

For most site builders and content editors, the Symfony version is invisible. For developers maintaining custom modules and themes, it’s the most important compatibility question for the upgrade. Symfony 8 introduces typed properties, stricter type declarations, refactored dependency injection patterns, and various smaller API changes that touch contrib modules at scale. The Drupal core team has been tracking deprecations from Symfony 7 → 8 throughout the Drupal 11.x cycle, and most well-maintained contrib modules will have prepared compatible releases by the time Drupal 12 ships. The modules that struggle are the long-tail ones with infrequent maintenance.

The practical implication for sites planning the upgrade: budget time for testing every custom module and theme against a Drupal 12 development environment before committing to production deployment. The contrib modules that have an active maintainer typically ship Drupal 12 compatibility within weeks of the GA; the ones that don’t may need patches, replacements, or abandonment.

What’s being removed: Toolbar, Migrate Drupal, deprecated modules

Drupal 12 removes several pieces of the core distribution that have been deprecated through the 11.x cycle.

The Toolbar module is gone. The Navigation module, which has been in core as an experimental option since Drupal 11.1 and was promoted to stable + default in the standard install profile during the 11.x cycle, is now the only built-in admin navigation in Drupal 12. Sites that depend on Toolbar customizations need to migrate those to Navigation before the upgrade. Navigation is functionally similar but uses a different architecture; the customizations don’t carry over automatically.

Migrate Drupal and Migrate Drupal UI are removed. These are the modules that powered the upgrade path from Drupal 6/7 sites into modern Drupal. Their removal from core means Drupal 12 is not a direct upgrade target from Drupal 6 or 7 sites. The Drupal 7 EOL community continues to provide migration tooling outside of core, but the in-core path is gone. Sites still on Drupal 7 (yes, this is still a meaningful population in 2026 per the Drupal Association’s published statistics) need to migrate to Drupal 10 or 11 first, then upgrade to Drupal 12, rather than attempting a direct 7-to-12 leap.

Various deprecated dependencies, libraries, modules, and themes are removed. The full list is in the Drupal.org issue queue but includes long-deprecated APIs, older third-party libraries, and modules that have been marked for removal across multiple 11.x point releases. Code that relied on any deprecated API needs to be updated to the modern equivalent before the upgrade.

Tests are excluded from release packages. Drupal 12’s core release package no longer includes the test suite by default; tests are provided via a separate namespace for sites that need them. This is a disruptive change that the core team decided only made sense in a major release. The practical effect is a smaller core download for production deployments; the test files are still available for CI environments that need them.

What’s new: Navigation default, Gin admin theme, Import Maps API

The headline additions in Drupal 12:

The Navigation module is the default admin experience. Where Toolbar used to be the primary admin nav, Navigation is now the only built-in option. The architecture is more modern (the menu structure is composable rather than hard-coded), and the UX is closer to what current best-practice admin design looks like. For most editors and admins, the change is visible immediately on first login.

Gin replaces Claro as the default admin theme. Claro has been Drupal’s default admin theme since Drupal 9. Gin (an alpha experimental theme in Drupal 11 that’s been hardening throughout the 11.x cycle) takes over the default slot in Drupal 12. Gin is a more contemporary visual design with improved usability across the most-trafficked admin screens (content edit, configuration, structure). The change is opt-out for sites that prefer to stay on Claro (which remains available as a non-default option), but the default ships as Gin.

The JavaScript Import Maps API lands in core. This is the foundation for CKEditor 5’s new installation method (which switched from a custom bundling approach to standard JavaScript import maps). The API has broader uses beyond CKEditor: any contrib module or theme that needs to load JavaScript modules with import-map-style resolution can use the core API rather than ship its own bundling logic. The pattern aligns Drupal with the broader JavaScript ecosystem’s move toward import maps as the standard module-loading mechanism.

PHPUnit 12 support, with PHPUnit 13 as the eventual target. Drupal 11 supported PHPUnit 10 and 11; Drupal 12 adds PHPUnit 12. The core team’s stated goal is PHPUnit 13 support, but the API changes from 11 → 12 had to land first as an intermediate step. For developers writing tests, PHPUnit 12’s API is the relevant reference.

ESLint 9. The JavaScript coding standards in core have been on ESLint 8 (which is end-of-life); Drupal 12 updates to ESLint 9 with the standard rule set. Contrib modules with JavaScript code that fails the new linting rules will need updates.

Updated database dump fixtures. Upgrade testing now starts from Drupal 11.3.0 baseline rather than older versions. Sites on older 11.x releases need to upgrade to at least 11.3.0 before the Drupal 12 upgrade path becomes available.

The Drupal 10 EOL pressure

The release timing matters because of what happens after. Drupal 10 reaches end of life on December 9, 2026. After that date, Drupal 10 sites stop receiving security updates from the Drupal Security Team. Roughly half of all Drupal 10 sites in production today still need to upgrade somewhere safe before that date.

The realistic upgrade paths from Drupal 10:

Drupal 10 → Drupal 11. Drupal 11 has been GA since August 2024 and has reached the stability and contrib-module coverage that makes it the obvious target for most Drupal 10 → next-major upgrades. The upgrade is well-documented (our "Migrating from Drupal 10 to 11" guide covers the operational steps) and the contrib ecosystem is mostly compatible by mid-2026.

Drupal 10 → Drupal 12 (after August). If Drupal 12 ships on schedule August 10, 2026, the four-month window from release to Drupal 10’s December 9 EOL is tight but workable for organizations with active development teams. The upgrade is multi-step (10 → 11.3.0 → 12; not a direct 10-to-12 leap) but the path is supported.

Drupal 10 → Drupal 12 (after December if August slips). If Drupal 12 slides to the December 7, 2026 window, the timeline becomes severe. Drupal 10’s EOL is December 9; Drupal 12 ships December 7 in that scenario, leaving a 48-hour gap. Most organizations cannot upgrade a production Drupal site in 48 hours. For sites taking the Drupal 12 path under this scenario, the realistic move is to stay on Drupal 10 past EOL with paid extended-support coverage (available from Drupal Steward and a handful of other vendors), upgrade to Drupal 12 once stable, then drop extended support.

The conservative recommendation for most teams: don’t bet on the August 10 release date. Plan a Drupal 10 → Drupal 11 upgrade now, hit GA Drupal 11 well before December, then evaluate Drupal 12 once it’s actually shipped and the contrib ecosystem has caught up. Drupal 11 will be supported through at least mid-2027 per Drupal’s standard major-release-support window, so the Drupal 11 stopover doesn’t force a second upgrade soon.

Hosting and infrastructure considerations

Drupal 12’s PHP and infrastructure requirements remain stable from Drupal 11 (PHP 8.3 minimum; PostgreSQL 14+ or MySQL 8.0+ or MariaDB 10.6+; Composer 2.x). The deeper change is that hosting platforms typically certify new Drupal major releases on their own schedules, which means available Drupal 12 hosting on Day One is going to be a partial story.

The major managed Drupal hosts (Pantheon, Acquia, Platform.sh) typically have early-access programs for new major versions before GA and roll Drupal 12 support out to the broader customer base on a tiered schedule afterward. Plan to check with your host’s roadmap before committing to a Drupal 12 upgrade timeline. For hosting comparison context, our Pantheon vs Acquia comparison covers the two platforms most often evaluated at the enterprise end.

What teams should do now

A few practical takeaways for organizations running Drupal sites in mid-2026:

  • If you’re on Drupal 10, plan the Drupal 11 upgrade as the priority. Treat Drupal 12 as a future hop after Drupal 11 stability, not as the upgrade target you’re racing toward. Drupal 10’s December 9, 2026 EOL is the binding constraint.
  • If you’re on Drupal 11, evaluate Drupal 12 in a development environment as soon as the beta drops (or has dropped, depending on when you’re reading this). The 11 → 12 upgrade path is the cleanest path through this release cycle. Focus testing on custom modules and themes since those are where Symfony 8’s API changes will surface.
  • Audit your custom code for Symfony 7-deprecated patterns before the upgrade. The Drupal Rector tool can scan a codebase for deprecated API usage; running it now flags the work you’d need to do for either Drupal 11 → 12 or Drupal 10 → 12.
  • If your site uses Toolbar customizations or depends on the Migrate Drupal/Migrate Drupal UI modules, surface those as upgrade blockers. Toolbar’s removal means custom admin nav work needs to migrate to Navigation. Migrate Drupal’s removal means Drupal 6/7 → Drupal 12 isn’t a supported direct path.
  • Audit your contrib module dependencies against the Drupal 12 compatibility tracking on Drupal.org. Most actively-maintained modules ship Drupal 12 compatibility within weeks of GA; the long-tail modules with minimal maintenance are the practical blockers for upgrades.
  • If you’re considering the Drupal 12 path and the December 7 fallback window becomes the actual release, plan for extended Drupal 10 support. Drupal Steward and similar vendors offer paid extended-support coverage past EOL. Budget for it now rather than scrambling in November.
  • Watch the Drupal core release schedule page on Drupal.org for the latest target dates. The release windows are public; the project’s commitment to honest scheduling means changes get announced as soon as they’re known.

The bigger picture: Drupal’s release cadence is more predictable than it used to be, and the multi-window release pattern means teams can plan around realistic dates rather than slipping deadlines. Drupal 12 brings real architectural improvements (Symfony 8, Navigation default, Gin admin theme, modern JavaScript module loading) without breaking the contrib ecosystem that the rest of the Drupal value proposition depends on. For organizations whose Drupal sites are core to their operations, the next six months are a planning window worth using deliberately.

Frequently Asked Questions

When does Drupal 12 release?

The current official target is the week of August 10, 2026, per Drupal.org’s core release schedule. The first release window (week of June 15, 2026) was missed when not all critical requirements landed by the March 27 beta deadline. A third fallback window (week of December 7, 2026) remains if the August target also slips. For planning purposes, the August 10 target is the date to plan against, with awareness that the December fallback exists.

What’s the biggest change in Drupal 12?

The Symfony 8 upgrade underneath. Symfony is the PHP framework that Drupal is built on; the major-version bump from Symfony 7 to Symfony 8 brings API changes that affect every custom module and theme. For site builders and editors, the visible changes are different: the Navigation module replaces Toolbar as the default admin nav, and the Gin theme replaces Claro as the default admin theme. Under the hood, the Symfony 8 update is the largest single change.

What modules are removed in Drupal 12?

The most consequential removals are Toolbar (replaced by the Navigation module that’s been in core through the 11.x cycle), Migrate Drupal, and Migrate Drupal UI (the modules that powered Drupal 6/7 → modern-Drupal upgrades). Several other long-deprecated modules and themes are also removed. The full removal list is tracked in the Drupal.org issue queue under the “Drupal 12 release priority” tag.

Can I upgrade directly from Drupal 7 to Drupal 12?

No. The Migrate Drupal and Migrate Drupal UI modules are removed from Drupal 12 core, so there’s no in-core path from Drupal 6 or 7 directly to Drupal 12. Sites still on Drupal 7 need to migrate to Drupal 10 or 11 first, then upgrade to Drupal 12. The Drupal 7 EOL community provides migration tooling outside of core for sites that need it.

What does Drupal 12 mean for Drupal 10 sites?

Drupal 10 reaches end of life on December 9, 2026, roughly four months after Drupal 12’s August 10 target. The realistic upgrade path for most Drupal 10 sites is Drupal 10 → Drupal 11 (well-understood, contrib-mature) rather than racing to Drupal 12 directly. Drupal 11 will be supported through at least mid-2027, which means the Drupal 11 stopover doesn’t force a second upgrade soon. For sites that genuinely need to be on Drupal 12 before Drupal 10’s EOL, plan an aggressive timeline and have extended-support coverage from Drupal Steward or similar as a contingency.

What are the PHP and database requirements for Drupal 12?

Drupal 12 requires PHP 8.3 or newer, the same minimum as Drupal 11. Database requirements: PostgreSQL 14 or newer, MySQL 8.0 or newer, or MariaDB 10.6 or newer. Composer 2.x is required for installation and dependency management. Most managed Drupal hosting platforms (Pantheon, Acquia, Platform.sh) already meet these requirements for current Drupal 11 sites, so the hosting-level migration is usually trivial.

Will my custom modules and themes work in Drupal 12?

Maybe. It depends on whether they use any APIs that have been deprecated between Drupal 11 and Drupal 12. The Symfony 7 → Symfony 8 upgrade is the largest source of API changes; deprecated Drupal APIs are also being removed. The Drupal Rector tool can scan a codebase for deprecated API usage and flag the work that needs to be done. Most well-maintained custom code is straightforward to update; code that hasn’t been touched in years is harder.

Will contrib modules be ready for Drupal 12 on day one?

The actively-maintained contrib modules typically ship Drupal 12 compatibility within days to weeks of GA. The long-tail modules with infrequent maintenance are usually the bottleneck for upgrades. For each site planning the upgrade, audit your installed contrib modules against the Drupal 12 compatibility tracking on Drupal.org; the modules without confirmed Drupal 12 releases are the practical upgrade blockers to plan around.

Share:FacebookX

Instagram

Instagram has returned empty data. Please authorize your Instagram account in the plugin settings .