Hello my magnificent Flarumites!

We have taxed your patience in bringing the newest beta installment of Flarum. Yet this release marks closure on the most impactful change in preparation for stable since beta 8, the frontend framework upgrade. With 80+ issues closed in addition to that upgrade, Beta 14 is the largest release Flarum has seen so far. Moreover, this release only took 5 months, in comparison to Beta 8 which had comparable scope but took 17 months.

It wasn't always easy, especially with all that happened in the world around us, but our team persevered in shipping a release we can be proud of.

It does not matter how slowly you go so long as you do not stop. --Confucius

Cairns Birdwing


Cairns Birdwing

🔔 What’s Changed?


The focus of this release was a long overdue upgrade of Flarum's frontend framework from Mithril v0.2 to Mithril v2.0. This also included refactors of many major frontend components like the discussion list, notifications dropdown, and post stream. We also started using TypeScript in core's frontend, upgraded the Laravel packages we used from v5 to v6, and fixed a lot of bugs. Most changes are more applicable to extension developers, but they go a long way towards increasing stability of our frontend. A few user-visible highlights:

  • 📦️ When enabling and disabling extensions we will now check their dependencies on other extensions to prevent bricking your forum. For instance , since askvortsov/categories relies on flarum/tags, you can't enable it unless flarum/tags is enabled. (flarum/core2188)
  • 🗨️ Fixed a bunch of bugs with the post stream
  • 🏷️ Improved tag discussion count and last posted discussion calculations
  • ⬅️ Added a "view post" popup when having edited a post similar to when you create a post. (flarum/core2108)
  • ✉️ Email configuration can now be tested from within the admin area. (flarum/core2023)
  • 🔍 Searching for users based on groups is now also possible using the group ID. (flarum/core2192)
  • 🕛️ Relative times are now updated without reloading. (flarum/core2208)
  • ⚠️ Improved request error handling with modals. (flarum/core1929)
  • 😁 Font Awesome was updated. (flarum/core2274)
  • 📛 User display names are now implemented as drivers, and have extenders (flarum/core2174)
  • 🔒️ The bundled Facebook, GitHub and Twitter authentication extensions have moved to Friends of Flarum. flarum/core#2006

There are a bunch more! If you're into this, feel free to scour our changelogs and releases on GitHub.

👨‍💻 For Developers


If you are a developer please understand there are many breaking changes in this release, make sure to read the full upgrade guide in our docs! Some key points:

  • We are now using Mithril 2, which means a lot of changes to components will be needed. (flarum/core2255)
  • You MUST use the new View extender for registering Laravel View namespaces instead of resolving the View factory directly in extend.php (flarum/core2134)
  • The Laravel packages Flarum uses have been upgraded to v6 from v5. This means that some helpers, like array_get, are no longer available. Also, theApplication has been decoupled from the IoC container and Laravel's Application contract flarum/core#2243
  • Application paths have been moved to the resolvable Paths class. (flarum/core2142)
  • Config (config.php contents) has been moved to the resolvable Config class. (flarum/core2271)
  • Subjects and bodies for notification emails can (and should!!!) now be translated. (flarum/core2244)
  • A user extender for display name drivers and user group pre-processing has been added. (flarum/core2110)
  • Other changes are mentioned in the upgrade guide for this release.

Developers are urged to check the changelogs of relating packages when they discover issues. You can review the Beta 14 Upgrade Guide to ensure your extensions are up to date.

If you have any questions or run into any obstacles in upgrading, please open a new discussion in the Dev tag or find us in #extend on our Discord.

⤴️ Upgrading


Please note that Beta 14 comes with a lot of changes, and extension developers will need some time to catch up. Please ensure that all extensions you need have been updated for beta 14 before upgrading your forum.

Before you run the upgrade, make sure to create a backup of your public/assets directory, your composer.json and your database!

Step 1: Ensure you are on version 0.1.0-beta.13 in your Admin Dashboard or by running php flarum info (use the previous release notes for upgrading from an earlier version)
Step 2: Uninstall every 3rd party extension that isn't compatible with beta 14 yet. Most extensions are no longer compatible! You can check which extensions are compatible at Extiverse (it needs up to one hour after release to display compatible extensions).
Step 3: Disable the remaining extensions. Re-enabling them one at a time after you update will make it easier to debug if any issues occur.
Step 4: Run the following commands:

composer remove --no-update flarum/auth-facebook flarum/auth-github flarum/auth-twitter

Now run the update all versions without installing (yet):

composer update --no-install --with-all-dependencies

[optional] In case you used the facebook, github or twitter log in extensions:

composer require --no-update fof/oauth

Now install everything you've updated:

composer install --prefer-dist --no-dev -a

Last step is to run the database changes and clear the cache:

php flarum migrate
php flarum cache:clear

Step 5: Use your newly-upgraded Flarum site!

If you run into any problems, please open a new discussion in the Support tag. There may be discussions of similar issues, but open a new one anyway, it helps us get your specific problem resolved faster.

If the problem persists – we're here to help! Make sure to include the output of php flarum info. Please also include the output of composer why-not flarum/core v0.1.0-beta.14

🙇‍♀️ Acknowledgements


Flarum releases wouldn't be possible without a multitude of people, our thanks go out to all of them! Thank you...

To everyone who contributed code this release, especially @w-4, @matteocontrini, @SychO, @Kylo, @Littlegolden, @iPurpl3x, @fengkx, @corvofeng, @Qiaeru, @davwheat, @gruentee, @tariqthedev, @eddiewebb, @angus, @alphaman, x7airworker, w3Abhishek, phanlyhuynh, nlssn, lhsazevedo, julakali, Heniisbaba, timas130, spekulatius, razonyang, jxsl13, and anyone else we've missed;

To our eagle-eyed bug reporters, especially @w-4, @matteocontrini, @SychO, @LianSheng, @peopleinside, @iPurpl3x and anyone else we've missed;

To the incredible team behind Flarum, including @Franz, @luceos, @jordanjay29, @datitisev, @clarkwinkelmann, @tankerkiller125, @askvortsov, @Prosperous, @Digital, @Pollux, @katos, @Kyrne and @Ralkage;

To every Open Collective supporter and Github Sponsor, but especially Glowing Blue AG and KAV Partners. And also @rehrar, @BartVB, Christoph Schneegans, Dan Rezykowski, Sridhar Kamma, Donald Broussard, GuitarTalk, Hari, @IanM, Jian Gong, @[deleted], @Edmilerad, Daniel Alter, espectrunk, FibraClick, HostBend LLC, Ken Lam, Lay Dominicans of bl. Michał Czartoryski, odyssea-ogc, Open Collective Inc, Timotheus Pokorra, malago86, yannisme, @askvortsov, zgq354, AndreiTelteu, @tankerkiller125, @angus, Wadera, @pkernstock, demianh, @hrvoje_hr;

Your continued support is extremely helpful, being fundamental to stable development for Flarum! Help us become a sustainable project by backing us on Open Collective or on GitHub

And finally, to you for your ongoing support and enthusiasm that keeps us all going!

    • [deleted]

    Thank you! Finally its out.

    peopleinside Thanks for letting us know about the email, I'll investigate but I don't have email notifications turned on so I may not be able to investigate that well. What might help me is if you could open the email source (the headers and code) that you received and send that to me privately (tankerkiller125 @ flarum.org) that would help me out a ton in figuring out why.

      luceos a minor regex issue blocked properly scanning extensions for their compatibility (also on earlier Flarum versions). This has now been resolved, the hourly scan is running and Extiverse will now properly list compatible versions again.

      Please note that Flarum v0.1.0-beta.14 to Extiverse is a non-backward compatible release and extensions will only show us once they explicitly target beta 14 or higher in the composer.json.

      Amazing release, team! Such a crazy year we've had so far, wouldn't you agree? 😄

      Oh wow here comes beta 14! Thanks the great team and all the contributors behind this huge effort!

      Is there any way to programmatically compare my Flarum set up to Extiverse and see which, if any, of my installed extensions are not compatible with beta 14? (This could be a useful extension?)

        cmwetherell Right now, without you updating any of them, it's most likely that none of them are compatible with beta 14. You will want to check their discussions to see if a beta 14 update was posted.

        Beta 14 breaks many things in the frontend and the backend as we updated many dependencies. Only a bare few might be compatible without an update.

          datitisev One part I'm still not clear on. Can I update extensions as they are ready, and then whenever all my extensions are updated to be compatible with beta 14, I should update to beta 14? Or, do I need to wait until all the extensions I want are compatible, update them all at once, then update to beta 14, all in one fell swoop?

          Thanks!