{"componentChunkName":"component---src-templates-post-jsx","path":"/en/drupal-12-alpha1-release","result":{"data":{"markdownRemark":{"html":"<p>Drupal 12.0.0-alpha1 was released on September 2. The countdown has officially started — and it ends at the same time as Drupal 10's life.</p>\n<h2>📅 The timeline</h2>\n<ul>\n<li>September 2, 2026 — 12.0.0-alpha1 (do not use in production)</li>\n<li>Week of September 14 — 12.0.0-beta1 and 11.5.0-beta1</li>\n<li>Week of November 9 — release candidates</li>\n<li>Week of December 7 — Drupal 12.0.0 stable + Drupal 11.5.0, and end of security support for 11.3.x and 10.6.x</li>\n<li>December 9, 2026 — Drupal 10 end of life</li>\n</ul>\n<h2>⚠️ The point many migration plans have missed</h2>\n<p>There is no direct jump to Drupal 12. All database updates prior to 11.4.0 have been removed from the codebase: a site on 11.3.x or earlier must first upgrade to at least 11.4.0, and core strongly recommends 11.5.0 or later.</p>\n<p>If you are still on Drupal 10 in December, that means two consecutive major upgrades, under pressure, during the holidays.</p>\n<h2>🔧 The big changes</h2>\n<h3>Platform</h3>\n<ul>\n<li>PHP 8.5 required</li>\n<li>argon2id becomes the default password hashing algorithm (falling back to bcrypt is possible via kernel parameters if argon2 is not available)</li>\n<li>MySQL 8.0 · MariaDB 10.11 · PostgreSQL 19 · SQLite 3.45 with the json1 extension</li>\n<li>Hosting Drupal directly on Windows in production is deprecated</li>\n</ul>\n<h3>Dependencies</h3>\n<ul>\n<li>Symfony 8.1</li>\n<li>Guzzle 8.0</li>\n<li>PHPUnit 12.5</li>\n</ul>\n<h3>Extensions moved from core to contrib</h3>\n<p>Ban, Contact, Field Layout, History, Settings Tray, Shortcut, Telephone, Stable 9.</p>\n<p>Check this now: if your site needs them, add the contrib version to composer.json BEFORE upgrading. Do not uninstall the module — you would destroy its configuration. And be careful, Drush can hide the update.php warnings about missing extensions.</p>\n<h3>Migrate Drupal and Migrate Drupal UI</h3>\n<p>Removed from core, with no contrib version. A D6/D7 migration must target Drupal 11 and then continue as a regular update to Drupal 12. The Migrate API itself stays in core.</p>\n<h3>Still under discussion for beta1</h3>\n<p>Search, Toolbar, Claro and Olivero are proposed for removal but are still present in alpha1. HTMX will move to v4.</p>\n<h3>An SEO detail not to miss</h3>\n<p>The shipped robots.txt now blocks search result pages with URL parameters. If you have customized yours, add the matching rules: search engines were indexing endless facet combinations, at the expense of performance and rankings.</p>\n<hr>\n<p>My recommendation as a tech lead: the contrib inventory and the 11.4/11.5 stepping stone happen in October. December is for acceptance testing, not for discovery.</p>\n<p>Which version are you on today?</p>\n<p>🔗 Release notes: <a href=\"https://www.drupal.org/project/drupal/releases/12.0.0-alpha1\">https://www.drupal.org/project/drupal/releases/12.0.0-alpha1</a></p>","excerpt":"Drupal 12.0.0-alpha1 was released on September 2. The countdown has officially started — and it ends at the same time as Drupal 10's life. 📅 The timeline…","frontmatter":{"date":"2026-09-18","metaDate":"2026-09-18","title":"Drupal 12.0.0-alpha1: the countdown has started","tags":["Drupal","Drupal 12","Drupal 11","Drupal 10","PHP","Symfony","Update","News"],"path":"/drupal-12-alpha1-release","cover":{"childImageSharp":{"fluid":{"base64":"data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAEF/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAME/9oADAMBAAIQAxAAAAHMi7Zgf//EABUQAQEAAAAAAAAAAAAAAAAAACAh/9oACAEBAAEFAov/xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAVEAEBAAAAAAAAAAAAAAAAAAAgMf/aAAgBAQAGPwKL/8QAGBABAQADAAAAAAAAAAAAAAAAAQARIDH/2gAIAQEAAT8hHCHZdP/aAAwDAQACAAMAAAAQpy//xAAWEQEBAQAAAAAAAAAAAAAAAAAAARH/2gAIAQMBAT8QZH//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/ED//xAAZEAACAwEAAAAAAAAAAAAAAAAAAREhUTH/2gAIAQEAAT8QQRO0YiqYW1wXB0iXp//Z","aspectRatio":1.7777777777777777,"src":"/static/a8491c56d34ae7fabdc08bded501cf96/88110/cover.jpg","srcSet":"/static/a8491c56d34ae7fabdc08bded501cf96/0b320/cover.jpg 480w,\n/static/a8491c56d34ae7fabdc08bded501cf96/60b32/cover.jpg 960w,\n/static/a8491c56d34ae7fabdc08bded501cf96/88110/cover.jpg 1920w,\n/static/a8491c56d34ae7fabdc08bded501cf96/c33c1/cover.jpg 2560w","srcWebp":"/static/a8491c56d34ae7fabdc08bded501cf96/d1a9d/cover.webp","srcSetWebp":"/static/a8491c56d34ae7fabdc08bded501cf96/bc3bf/cover.webp 480w,\n/static/a8491c56d34ae7fabdc08bded501cf96/39337/cover.webp 960w,\n/static/a8491c56d34ae7fabdc08bded501cf96/d1a9d/cover.webp 1920w,\n/static/a8491c56d34ae7fabdc08bded501cf96/ca60f/cover.webp 2560w","sizes":"(max-width: 1920px) 100vw, 1920px"},"resize":{"src":"/static/a8491c56d34ae7fabdc08bded501cf96/c4f3a/cover.jpg"}}}}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"pathSlug":"/drupal-12-alpha1-release","locale":"en","prev":{"fields":{"locale":"en"},"frontmatter":{"path":"/drupal-migrations-incrementales-high-water-property","title":"Incremental Migrations in Drupal: Using high_water_property Properly","tags":["Drupal","Drupal 11","Migrate","PHP","Performance"]}},"next":null}}}