Skip to main content
← All articles
drupal

Drupal 12.0.0-beta1: I read the removal list so you don't have to

Drupal 12.0.0-beta1: I read the removal list so you don't have to

Drupal 12.0.0-beta1 is here (tagged 30 Sep 2026), and the coverage will be about what's new. For most of us the upgrade isn't about new — Drupal 12 is "nearly identical to 11.5.x" with the deprecated stuff deleted. The work is in the deletions, and some of them are modules you've run on every site for a decade without thinking of them as modules at all. So I read the removal list. Here's the practical version.

Nine modules and three themes leave core

Out of core in Drupal 12: Ban, Contact, Field Layout, History, Search, Settings Tray, Shortcut, Telephone, Toolbar. And three themes: Claro, Stable 9, Olivero — with the new Default Admin theme now stable and replacing Claro as the admin theme. The beta notes say you either composer require the contrib version or uninstall before upgrading — and they warn, correctly, that uninstalling destroys that module's config and data. So this isn't a silent transition; it's a decision per module.

Read that list again as a site owner, not a core contributor. Search. Contact. Toolbar. These aren't exotic. The upgrade to 12 is, for a lot of ordinary sites, a Composer-require checklist for things you forgot were ever optional. The good news is the audit is a one-minute command: drush pm:list --status=enabled (or dr) on staging, grep for those nine, and you know your exposure today.

The one to check carefully: Contact

Here's the wrinkle I'd flag loudest. The contrib search project looks healthy — 1.0.0 shipped 17 Sep, it's security-advisory covered, and it declares ^11.5 || ^12. But the contrib contact project, as its page reads today, describes itself as a backport/experimentation project, says it is "not covered by Drupal's security advisory policy," and lists two open security-flavoured issues (an auto-reply spam-relay concern and uploads landing in public://). So a module that was stable, SA-covered core could become a non-SA-covered contrib dependency — at least per that project page as of now.

I want to be careful here: I read one project page, which may be stale or may not be the project that ultimately becomes the blessed successor by 12.0.0. Don't take "Contact is unsafe in D12" from me as settled. Take "if your site has a contact form, go read the contrib Contact page yourself before you commit to it" — that's the honest action item.

The headline is "Drupal 12 is coming." The actual task is unglamorous: find out which of nine modules you depend on, decide require-or-remove for each, and give Contact and Search a harder look than the rest.

Requirements and the stuff that'll show in a config diff

Drupal 12 needs PHP 8.5. Database minimums listed: MySQL 8.0, MariaDB 10.11, PostgreSQL 19, SQLite 3.45 with json1. (PostgreSQL 19 as a minimum looks surprising to me — the notes list it, but I couldn't confirm PG 19 has even reached GA, so treat that line as "what the notes say," not gospel.) Default password hashing switches to argon2id, revertible to bcrypt via kernel parameters. Migrate Drupal and its UI are removed with no contrib replacement — the Migrate API stays, and D6/D7 sites route through Drupal 11 and then to 12. A few smaller things will surface in your config export: filter allowed-HTML is now sorted alphabetically (expect a one-time diff), the Syndicate block is removed, and update_fetch_with_http_fallback is gone. Dev-side: PHPUnit 12.5 (attributes, not annotations), Guzzle 8.0, Coder v9, htmx 2→4, and production on Windows is deprecated.

The update path, and the cliff behind it

You can't jump from anywhere. The updater refuses to move from 11.2 or earlier; you must be on the latest 11.x first (11.4+, or 11.5 once it's out — 11.5.0-beta1 landed 15 Oct, and both 12.0.0 and 11.5.0 target the week of 7 Dec). And the reason this isn't purely optional: Drupal 10 reaches end of life on 9 December 2026 — the same week — with no releases after. Security support for 11.3.x ends then too. So for a D10 site this is a deadline, not a preference; for an 11.x site it's a "get current so the jump is small" nudge.

The takeaway

Don't wait for a feature tour you don't need. Today, on staging: run the enabled-modules list, mark which of the nine core-exits you use, and read the contrib pages for the ones you can't live without — Contact and Search first. That ten-minute audit now is the whole difference between a calm December and a scramble, especially if any of your sites are still on Drupal 10.

Links

BM
Blue Moose
The moose behind Blue Moose. Full-stack PHP developer — Drupal by day, Symfony by night, tests always.