The Drupal 12 release date is still a target, not a date. Drupal 10’s end of life is a date. Both now sit in the same week of December, and only one of them is guaranteed.
Editor’s note: this piece was first drafted around September 20. Drupal 12.0.0-beta1 shipped on September 30, after that draft. This version reflects the beta.
If a client is sitting on Drupal 10 waiting for Drupal 12 so they can upgrade once, that plan does not work. It never did. This piece explains why, and what has to happen before December 9.
We wrote about Drupal 10’s end of life in May. We published a Drupal 12 preview in June. That preview is now wrong in ways worth correcting out loud. We do that below.
Where Drupal 12 is today
Drupal 12 is in beta. It got there late.
Drupal 12.0.0-beta1 was released on September 30, 2026. That fell during DrupalCon Rotterdam, which ran September 28 to October 1. The release page says the beta is for testing, not for production sites.
Drupal’s release schedule planned beta1 for the week of September 14. The beta requirements deadline was Friday, September 11. The beta arrived about two weeks after that window.
Its companion release did not ship. Drupal 11.5.0-beta1 was scheduled for the same week. As of October 4, its release page returns a 404. It is not on the core releases list.
The vocabulary matters, and coverage often mangles it. An alpha is a compatibility snapshot with no upgrade path between builds. A beta is meant to be feature frozen and starts the upgrade path. A release candidate means no further changes are planned. Drupal 12 has moved from the first stage to the second. Its only alpha was 12.0.0-alpha1, from September 2.
What the Drupal 12 release date looks like now
Drupal publishes release windows, not exact dates. Each one depends on hitting a beta deadline.
Window one, the week of June 15, 2026. Abandoned in March. The core team’s March 23 post said "we are confident that not all critical requirements will be completed by March 27." It reset the target to August.
Window two, the week of August 10, 2026. Also dropped. A comment on the release meta issue gives the reason: "The August release date was quashed due to lack of progress on the required issues."
The beta week of September 14. Missed by about two weeks. Beta1 arrived September 30.
Window three, the week of December 7, 2026. This is the current target for 12.0.0 and 11.5.0. The meta issue reads "Drupal 12 will be released in early December 2026." The release schedule plans rc1 for the week of November 9.
One caution on that schedule page. It was last updated August 27. It still lists beta1 in the week of September 14. It also carries a warning most people skip: "there is no guarantee that all release windows will be used to release new Drupal versions."
The blog did not announce the slips
The June cancellation got a core blog post. The August cancellation did not. Neither did the September beta slip. Neither did beta1 itself.
As of October 4, the core blog has no post on any of them. They are recorded in the issue queue and on release pages.
If you track Drupal timing for a client roadmap, the blog is not enough. The schedule page is not enough either. The issue queue is the record.
Drupal 10’s deadline did not move
This is the part that turns a release slip into a client problem.
Drupal 10 reaches end of life on December 9, 2026. That date was fixed by policy in July 2025. The policy expected exactly this situation: "Drupal 10 will reach end of life on December 9, 2026, after Drupal 12 has been released. No new releases of Drupal 10 will be made after this date."
Drupal 10.6.0 is the last minor release of Drupal 10. The latest patch is 10.6.18, from September 26.
The date did not move when Drupal 12 slipped from June to August. It did not move when August slipped to December. It did not move when the beta ran late.
December 9 is a Wednesday. It falls inside the week of December 7, Drupal 12’s target window. One date is a target that has already moved twice. The other is a policy date that has never moved.
The same schedule ends security support for 11.3.x and 10.6.x in that December window. That matters below.
You cannot go from Drupal 10 to Drupal 12
This is the most important operational fact in the release.
Drupal 12 removed every update hook added before Drupal 11.3.0. The beta1 notes are blunt about it. Drupal’s update system "will refuse to update from Drupal 11.2 or earlier."
So the hard floor is 11.3.0. A site on 11.3 is not refused. But the notes go further: "we recommend updating to at least Drupal 11.4 (or 11.5 once it is available)." They also tell sites to update to the latest Drupal 11 release first.
There is no 10 to 12 path. A Drupal 10.6 site cannot take Drupal 12 when it ships. It has to reach Drupal 11 first. That is a real project with contrib compatibility work in it. It is not a composer update. Our Drupal 10 to 11 upgrade guide covers the steps.
So the "wait for 12 and do it once" plan was never available. It always required a move to 11. Waiting only shrank the time to do it.
Aim for 11.4, not 11.3. The 11.3.x branch loses security support in December, the same week as Drupal 10. Drupal 11.4.x has security coverage until June 2027. That makes it a real place to land, not a short stop.
The current Drupal 11 release is 11.4.8, published September 26, 2026. It is a bugfix release. The last security release on that branch was 11.4.7, on September 16.
What is actually in Drupal 12
We checked these against change records and the alpha1 and beta1 release notes. Several widely repeated items did not survive.
Symfony 8. Committed to main in March. Alpha1 shipped Symfony 8.1.
Navigation replaces Toolbar. Toolbar moves to contrib. Navigation went stable in Drupal 11.3.0 in December 2025. This is a removal, not an introduction.
Default Admin replaces Claro. This changed with beta1. The notes say the Default Admin theme, "added as experimental in Drupal 11.4, has now been marked stable." It is derived from Gin. It is not the contrib Gin theme. Its machine name is default_admin. Claro moves to contrib.
PHPUnit 12.5, up from 11.5. Tests must use PHPUnit attributes instead of annotations.
Core removals. Nine modules move to contrib: Ban, Contact, Field Layout, History, Search, Settings Tray, Shortcut, Telephone and Toolbar. So do the Claro, Stable 9 and Olivero themes. Migrate Drupal and Migrate Drupal UI are removed and not moved to contrib.
Security and front-end changes. Default password hashing moves to argon2id. Weak hash algorithms are disallowed. htmx moves from 2.0 to 4.0. Backbone.js and Underscore.js are removed.
No named Olivero replacement. The beta1 notes do not name a new default front-end theme. If you are planning a Drupal 12 build, ask in the issue queue. Do not assume.
What our June preview got wrong
Our June preview made claims we now need to withdraw or qualify.
The JavaScript Import Maps API is not in core. The issue is still Active, with activity as recent as October 4. It is not in the beta1 release notes.
Test files may finally be out of the download. Our first draft said this had not been committed. The beta1 changelog now lists issue #3067979, "Exclude test files from release packages." The beta1 tar.gz is 16.94 MB. Alpha1’s was 23.03 MB. But the issue page still reads Needs review. Treat the final packaging as unsettled until 12.0.0 ships.
Drupal Canvas is not part of Drupal 12. It is the renamed Experience Builder. It is a contrib module under the Drupal CMS initiative. It went generally available in December 2025. Nothing on its project page mentions core inclusion. We also could not verify the claim that it replaces Layout Builder.
Platform requirements
The beta1 release notes list these minimums:
- PHP 8.5. This is the one most likely to strand a site. It is a hosting decision, not a code decision.
- MySQL 8.0, MariaDB 10.11, PostgreSQL 19, SQLite 3.45 with the json1 extension.
- Composer 2.9.3 is recommended, not required.
- Node.js 24 applies to core development only.
PostgreSQL is the number to watch. Our first draft went with 18. That matched the January platform post and the system requirements page. The alpha1 and beta1 release notes both say 19. The requirements page, last updated September 4, still says 18. Plan hosting on 19. If 18 turns out to be enough, you lost nothing.
The AI work is shipping in contrib, not core
Drupal AI announcements are loud. What you can install is narrower.
The AI Initiative reported 32 partner organizations, more than 50 contributors and over $2.3 million in committed funding as of its July 31 update. Its February roadmap names eight target capabilities.
What ships is the AI contrib module. Version 1.5.0 went stable on September 25. A 2.0.x development branch is in progress. About 23,800 sites report using it.
None of this is core. It does not wait on Drupal 12, and it runs on Drupal 11 today. Read the module’s release notes, not the announcements. We took the same view of the September contrib advisories. A fast-moving contrib module is where the capability is. It is also where the security surface is.
What to do before December 9
If a site is on Drupal 10, start the move to Drupal 11 now. Not after the beta settles. Not when Drupal 12 ships. About nine weeks remain.
Land on 11.4, not 11.3. The 11.3.x branch loses security support in December. The 11.4.x branch is covered until June 2027.
Check PHP and the database first. Drupal 12 needs PHP 8.5. The release notes say PostgreSQL 19. If a host does not offer those yet, that is a procurement conversation with its own lead time.
Do not plan a December Drupal 12 launch. The target has moved twice, and the beta ran two weeks late. Drupal 11.5.0-beta1 has not shipped. Plan Drupal 11 for December. Evaluate Drupal 12 in the new year, once contrib catches up with a stable release.
Keep patching Drupal 10 until you leave it. Drupal 10 still gets security releases until December 9. The September Webform advisories are a recent test of that process. Our plain-language Webform guide lists what to ask your vendor.
Track the issue queue, not the blog. The August slip, the September slip and beta1 itself never made the core blog.
Audit for removed modules. Contact, Search, Shortcut, Settings Tray, Field Layout, History, Telephone and Ban are all leaving core. Most have contrib homes. That means a composer requirement you do not have yet, not a rewrite. Better to find that in an audit than in a failed update.
Frequently Asked Questions
What is the Drupal 12 release date?
The current target is the week of December 7, 2026. That is the third release window. The June and August 2026 windows were both dropped. Drupal publishes windows, not exact dates, and its schedule page warns that a window may go unused.
Has Drupal 12 reached beta?
Yes. Drupal 12.0.0-beta1 was released on September 30, 2026, about two weeks after its scheduled week of September 14. Drupal 11.5.0-beta1, scheduled for the same week, had not shipped as of October 4. Release candidate 1 is planned for the week of November 9.
When does Drupal 10 reach end of life?
December 9, 2026. The date was fixed by policy in July 2025 and did not move when Drupal 12 slipped. Drupal 10.6.0 is the last minor release of Drupal 10.
Can I upgrade from Drupal 10 directly to Drupal 12?
No. Drupal 12 removed all update hooks added before Drupal 11.3.0. Its update system refuses to update from Drupal 11.2 or earlier. A Drupal 10 site must move to Drupal 11 first.
What is the minimum Drupal 11 version for upgrading to 12?
Drupal 11.3.0 is the hard floor, and 11.3 sites are not refused. The beta1 notes recommend at least Drupal 11.4, or 11.5 once it is available. They also say to update to the latest Drupal 11 release first.
So what should a Drupal 10 site do now?
Move to Drupal 11.4. The 11.3.x branch loses security support in December, the same week as Drupal 10. Drupal 11.4.x has security coverage until June 2027. The current release is 11.4.8, from September 26.
What are Drupal 12’s platform requirements?
PHP 8.5, MySQL 8.0, MariaDB 10.11, PostgreSQL 19 and SQLite 3.45 with json1, per the beta1 release notes. The system requirements page still says PostgreSQL 18, so plan for 19. Node.js 24 applies to core development only.
Is Gin the new default admin theme?
Not the contrib Gin theme. Drupal 12 ships Default Admin, a core theme derived from Gin, with the machine name `default_admin`. Beta1 marked it stable. Claro is removed from core and has moved to contrib.
Will the Drupal 12 download be smaller?
Probably. The beta1 changelog lists the issue that excludes test files from release packages. The beta1 tar.gz is 16.94 MB, against 23.03 MB for alpha1. The issue page still reads Needs review, so the final packaging may change.
Which modules are being removed from core?
Ban, Contact, Field Layout, History, Search, Settings Tray, Shortcut, Telephone and Toolbar, plus the Claro, Stable 9 and Olivero themes. These move to contrib. Migrate Drupal and Migrate Drupal UI are removed without a contrib home.