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
🔔 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/core#2188)
- 🗨️ 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/core#2108)
- ✉️ Email configuration can now be tested from within the admin area. (flarum/core#2023)
- 🔍 Searching for users based on groups is now also possible using the group ID. (flarum/core#2192)
- 🕛️ Relative times are now updated without reloading. (flarum/core#2208)
- ⚠️ Improved request error handling with modals. (flarum/core#1929)
- 😁 Font Awesome was updated. (flarum/core#2274)
- 📛 User display names are now implemented as drivers, and have extenders (flarum/core#2174)
- 🔒️ 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/core#2255)
- You MUST use the new View extender for registering Laravel View namespaces instead of resolving the View factory directly in
- 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, the
Application 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/core#2142)
- Config (
config.php contents) has been moved to the resolvable Config class. (flarum/core#2271)
- Subjects and bodies for notification emails can (and should!!!) now be translated. (flarum/core#2244)
- A user extender for display name drivers and user group pre-processing has been added. (flarum/core#2110)
- 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.
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
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, @phenomlab, @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!