Flarum 2.0.0-rc.7 Released - the release candidate for 2.0
This is the short one, and it might be the important one.
2.0.0-rc.6 landed a day ago
#39716 and, so far, it has held. The real-world upgrade reports have been overwhelmingly the same: fast, smooth, boring - which, for a release candidate, is exactly the word you want to hear. 2.0.0-rc.7 is a small, fast follow-up: five fixes, one of which clears a genuine upgrade blocker, and nothing else. No new features, no behaviour changes - just the last few rough edges taken off.
Here where we are: this is the candidate we expect to become 2.0.0 stable, unchanged. rc.6 got us to the door; rc.7 is meant to be the one we walk through. The only thing standing between this and a stable 2.0 is a few more forums running it and reporting back that it holds.
🚀 Upgrading is composer update -W, then php flarum migrate and php flarum cache:clear. Nothing about the dependency picture changed this cycle, but keep the -W — take a backup, stage it if you can, keep a way back. Same as always.
👀 discuss.flarum.org is running it. As with every release this cycle, this forum is on the final 2.0.0-rc.7 — the exact build you'll download. The nightly demo tracks 2.x too.
🔧 What's fixed
Five fixes, all bugs, no surprises:
- The upgrade no longer aborts on a circular dependency. A common extension set — Audit, FoF GeoIP, FoF Ban IPs and the moderation extensions - formed a dependency loop that halted the
1.x → 2.x migration with "Circular dependencies detected… aborting." If your upgrade hit that wall on rc.6, this is the fix that clears it. (#4978)
queue:pause no longer fatals on some setups. A queue connection an extension leaves unnamed (as FoF Redis did) made pause/resume crash and the dashboard miss the pause. The connection is now always named. (#4977)
- Internal links work on forums installed in a subdirectory. A link into your own forum was landing on the index instead of the discussion it pointed at, when the forum lives under a path like
/forum. (#4976)
- A deleted reply no longer leaves a failed job. The subscriptions reply-notification job is dropped cleanly when its post is gone between dispatch and pickup, instead of failing twice and logging noise. (#4975)
- Icon-less tags line up again. A tag with no icon had its coloured square sitting slightly high against its label; it's centred now. (#4979)
That's the whole release. The full changelog has the details.
🗳️ The question we're putting to the whole community
We've said it every cycle, and it has never been truer than right now: a release candidate that holds up in the real world becomes 2.0.0 stable, unchanged. rc.7 is that candidate. There is no more feature work or behaviour change planned before stable — from here, the line moves on one thing only, and it isn't ours to move alone.
So we're asking everyone - not just the people who file issues, but the whole community: is 2.0.0-rc.7 ready to be 2.0.0?
This is a genuine call for consensus, not a formality. Flarum reaching 2.0 stable is a huge milestone, and a decision the community makes together. In a few days we'll put it to a straight vote: a dedicated poll where anyone can register a simple yes or no on shipping rc.7 as 2.0.0. Watch out for it landing soon.
Consider the next few days the run-up to that. The vote will only mean something if the people casting it have actually run rc.7, so the job right now is to get it onto real forums and form a view. Whether you run a forum of ten people, ten thousand or ten million, whether you've been here since the very first beta or arrived last week, your read on this counts.
So if you've been waiting for the moment to weigh in, this is it. Not the demo, not our testing - your forum, your extensions, your members, your traffic, and your honest verdict.
- Upgrade a real forum -
composer update -W, then php flarum migrate, php flarum cache:clear. Back up first; stage it if you can.
- Form your view before the poll. "Upgraded, holds up, ship it" is exactly as valuable as a bug report right now, maybe more. Get a real read on it, so that when the poll opens, your vote is grounded in your own forum.
- If something breaks, tell us how much it hurts. Data loss, a security issue, a broken upgrade, a regression, or something with no workaround is a must-fix-now and holds the stable tag. A rough edge, a cosmetic thing, or something a bit of CSS works around can land in
2.0.1 or 2.1 without holding 2.0 back. Tell us what and how badly, and we'll draw the line together.
Share your first impressions in this thread, and send the specifics where they belong:
🧭 On the fence? Ask the Upgrade Advisor
If "should I upgrade?" really means "will my extensions come with me?", the FoF Upgrade Advisor answers it before you touch a thing — it checks every installed extension for a 2.0-compatible release, and your PHP and database versions against what 2.0 needs.
composer require fof/upgrade-advisor:"*"
Read the verdict, clear what it flags, then uninstall once you're green.
🧑💻 One for the extension developers: frontend tests that actually work standalone
A quick aside for those of you who build extensions. Our docs have long told you how to write frontend (JS) tests — but that setup only ever worked inside the framework monorepo. Try it in your own Composer-installed extension and it fell over: core wasn't resolvable, so the documented bootstrapForum() tests couldn't run at all.
That's now fixed. With the new @flarum/jest-config 2.0.2, a single yarn add --dev @flarum/jest-config@^2.0.2 in your extension's js folder is all it takes — it resolves core from your vendor/ and pulls in what the tests need. Component and app-bootstrapped tests run in a standalone extension exactly as the docs describe. The frontend testing guide has been updated to match.
No forum-facing change here — but if you've wanted a real test suite for your extension's UI, the tooling is finally there to back it.
🗓️ A heads-up on timing
I'm going to be away for the next several days right after this release. That's deliberate on my part, not a sign anything is fragile - rc.6 has held, rc.7 only tightens it, and it's running here on discuss. But it does mean responses to reports will be slower than usual for about a week.
Please keep testing and keep reporting in that window - nothing will be missed, it'll just be picked up when I'm back. Honestly, it's not a bad thing for the "is this 2.0?" question to sit with the community for a few days without me hovering over the thread: this call was never meant to be mine alone, and a quieter week is a fair chance for the consensus to form on its own terms. If you hit a genuine security issue, use security@flarum.org so it's handled privately regardless of timing.
If rc.7 holds up while I'm away and the verdict comes back "ship it," then the next step is the one we've all been working toward: tagging it 2.0.0. 💙