Mbin Releases
This is our v1.9.1 stable release of Mbin. This release includes bug fixes, performance improvements, ActivityPub compatibility improvements, thread and microblog locking, usability improvements and more...
Comparison to previous stable version v1.9.0:
| DB migrations | New ENV vars | Renamed ENV vars | Admin guide changes | Suggest cache clearing | New dependencies |
|---|---|---|---|---|---|
| :ballot_box_with_check: | :ballot_box_with_check: | :x: | :ballot_box_with_check: | :ballot_box_with_check: | :ballot_box_with_check: |
We have 3 different summaries below. One for end-users, one for server admins, and finally a summary for developers.
Summary for Users
- Improve the RSS feeds: they should be faster, you can also get a combined feed of threads and microblogs now
- The search should be a lot faster now and you can also search for magazines and users by their URL again (previously you could only search for their handle)
- Likes, dislikes and boosts of Mastodon posts can now be extracted, however Mastodon does not sent us updates if these values change
- We added a discoverability setting for users and magazines. This setting is activated by default. If disabled you and your content cannot be found by searching and do not appear on /all
- Fix comments from Mastodon posts not appearing
- Threads and microblogs can now be locked
- The combined view should look more coherent. We adjusted the way microblog posts are displayed in this view
- The notification switches now have a tooltip
- We added an indexable setting for users and magazines. This setting is also activated by default. If disabled, search engines are advised to not index the corresponding threads and microblogs. Because you can only set this on a page to page basis and your comments appear on the page of threads or microblogs, the indexability of comments is dependent on the thread or microblog you're commenting on
- The random magazine is now pre-selected when creating a microblog
- Each magazine has a Tags page in which moderators of the magazine can set the hashtags by which microblogs are put in this magazine. Previously we used the name as a tag as well, without telling the user and without a way to disable it. We now add the name of each magazine to its tags page to make this behavior clear and to provide a way to disable it. When creating a magazine, we added a checkbox to add the name as a hashtag
- Infinite scroll is now working on the search page and the profile pages
- The magazine rules field is now officially deprecated. If a magazine currently has this field populated, it will still be editable, otherwise this field is removed. It will be removed in the future, as there is not a good way to federate this field to other servers. At the moment we just append it to the description with a
### Rulesin front of it
Summary for Server Admins
- Signup notifications should be created correctly again. We previously introduced a bug preventing these notifications from being sent
- Add some problematic paths to the robots.txt, which should result in fewer hits by crawlers (like, dislike, boost, search, ...)
- We removed some indexes from the DB which should result in some size savings
- We also added some missing indexes, which resulted in some performance hits. If you run in any conflicts, we created a command to fix errors for duplicate users or magazines (see documentation)
- We reduced the amount of requests to other instances in the background jobs -> should run faster
Summary for developers
Mbin:
- Improve CI by just doing nothing in some actions if there are no relevant files changes -> the required actions still run, they just don't do anything
App:
- The subject of the magazine log API is now correctly set in case of a pinned, unpinned, banned, unbanned, moderator add and moderator removed "events". The documentation should reflect that now. See #1951
- When supplying a rules value in the MagazineUpdateApi, but the magazine did not already have rules defined, the API will throw an error, because this field is now deprecated
- There are new endpoints to lock a thread and a microblog post
- There also are new OAuth scopes for locking and we added a missing one for pinning microblog posts
Fediverse:
- Having a single URL instead of an array of URLs in the
toandccfield are now supported. JSON-LD allows this for array fields - Like Activities use the magazine id instead of followers collection in the
tofield - We no longer include the activity streams namespace twice (once in the
@contextand once in the/context.json)
Upgrade Instructions
For Docker
- Get the official image or checkout the code and build it locally
- Stop all containers
docker compose down - Start all containers
docker compose up -d
For Bare Metal
- Login as the mbin/kbin user:
su mbin - Go to your repo
cd /var/www/mbin - Get the new release:
git fetch && git checkout v1.9.1 - Run the update script:
bash bin/post-upgrade. - Run
exitso we are back at the root user (or put a sudo in front of every command) - clear your opcache by reloading php fpm
systemctl restart php8.4-fpm(or for PHP 8.3:systemctl restart php8.3-fpm) - Restart the messengers:
supervisorctl restart messenger:*
[!WARNING] Executing the migrations might fail. If that is the case and the error message says something like "Unique violation: 7 ERROR: could not create unique index [...]", we prepared a command to fix these duplications. Bare metal (as the mbin/kbin user):
php bin/console mbin:check:duplicates-users-magazinesDocker:docker compose exec php php bin/console mbin:check:duplicates-users-magazinesThis command will start a guided tour to delete all duplicated users or magazines. If you are unsure, you can just run it twice: once for magazines and once for users
What's Changed
- Add safe directory before get composer cache steps by @melroy89 in https://github.com/MbinOrg/mbin/pull/1920
- use bigger PHP limits for devcontainer by @blued-gear in https://github.com/MbinOrg/mbin/pull/1927
- Update aws sdk php dependency (security) by @melroy89 in https://github.com/MbinOrg/mbin/pull/1928
- Update php config for Docker by @jwr1 in https://github.com/MbinOrg/mbin/pull/1929
- Translations update from Hosted Weblate by @weblate in https://github.com/MbinOrg/mbin/pull/1925
- Translations update from Hosted Weblate by @weblate in https://github.com/MbinOrg/mbin/pull/1932
- fix post_controller comment element handling by @blued-gear in https://github.com/MbinOrg/mbin/pull/1926
- skip tests on non-code paths but keep the GitHub action by @blued-gear in https://github.com/MbinOrg/mbin/pull/1919
- Adding the documentation of the
Deleteactivity for accounts by @BentiGorlich in https://github.com/MbinOrg/mbin/pull/1921 - Clear old push subscriptions by @BentiGorlich in https://github.com/MbinOrg/mbin/pull/1943
- fix wrong nav URLs when on /people, /magazines and /search by @blued-gear in https://github.com/MbinOrg/mbin/pull/1939
- docs(contributor): contributors readme action update by @github-actions[bot] in https://github.com/MbinOrg/mbin/pull/1945
- Fix signup notifications by @BentiGorlich in https://github.com/MbinOrg/mbin/pull/1942
- Improve our RSS feed by @BentiGorlich in https://github.com/MbinOrg/mbin/pull/1941
- Fix MessageManager#createMessage to properly access 'to' & 'cc' properties by @grahhnt in https://github.com/MbinOrg/mbin/pull/1930
- docs(contributor): contributors readme action update by @github-actions[bot] in https://github.com/MbinOrg/mbin/pull/1950
- Small fixes by @BentiGorlich in https://github.com/MbinOrg/mbin/pull/1948
- Fix magazine log api subject by @BentiGorlich in https://github.com/MbinOrg/mbin/pull/1951
- Improve search by @BentiGorlich in https://github.com/MbinOrg/mbin/pull/1949
- Fix like, dislike, shares collection extraction if it is an array by @BentiGorlich in https://github.com/MbinOrg/mbin/pull/1953
- Add discoverable setting for users and magazines by @BentiGorlich in https://github.com/MbinOrg/mbin/pull/1947
- Fixing Mastodon mentions again again again by @BentiGorlich in https://github.com/MbinOrg/mbin/pull/1954
- Introducing thread/microblog locking by @BentiGorlich in https://github.com/MbinOrg/mbin/pull/1773
- Harmonize posts and threads in combined view by @blued-gear in https://github.com/MbinOrg/mbin/pull/1888
- Improve MagazinePeopleFrontController by @BentiGorlich in https://github.com/MbinOrg/mbin/pull/1957
- AP bots may boost by @blued-gear in https://github.com/MbinOrg/mbin/pull/1955
- Add missing oauth user consent and translation by @BentiGorlich in https://github.com/MbinOrg/mbin/pull/1959
- improve logs and fix some warnings by @blued-gear in https://github.com/MbinOrg/mbin/pull/1936
- Fix combined post compact view by @blued-gear in https://github.com/MbinOrg/mbin/pull/1961
- catch all exceptions in ImageManager::getMimetype() by @blued-gear in https://github.com/MbinOrg/mbin/pull/1962
- Translations update from Hosted Weblate by @weblate in https://github.com/MbinOrg/mbin/pull/1964
- DeleteUserHandler: roll back nested transaction if any exception occurs. by @blued-gear in https://github.com/MbinOrg/mbin/pull/1963
- add tooltip to thread / magazine notification switches by @blued-gear in https://github.com/MbinOrg/mbin/pull/1965
- Disallow vote, boost, report, crosspost in robots.txt by @BentiGorlich in https://github.com/MbinOrg/mbin/pull/1971
- Remove duplicate indexes by @BentiGorlich in https://github.com/MbinOrg/mbin/pull/1970
- Translations update from Hosted Weblate by @weblate in https://github.com/MbinOrg/mbin/pull/1975
- Fix/missing magazine ap public url index by @BentiGorlich in https://github.com/MbinOrg/mbin/pull/1956
- update symfony/process by @blued-gear in https://github.com/MbinOrg/mbin/pull/1977
- skip tests on non-code paths but keep the GitHub action - vol 2 by @blued-gear in https://github.com/MbinOrg/mbin/pull/1935
- Like Activities - use magazine id instead of followers collection by @BentiGorlich in https://github.com/MbinOrg/mbin/pull/1944
- Add Indexable setting for users and magazines by @BentiGorlich in https://github.com/MbinOrg/mbin/pull/1946
- Reduce webfinger fetches by @BentiGorlich in https://github.com/MbinOrg/mbin/pull/1978
- Disallow /search in robots.txt by @BentiGorlich in https://github.com/MbinOrg/mbin/pull/1979
- Fix composer packages to pass twig linter in https://github.com/MbinOrg/mbin/pull/1016
- preselect "random" magazine for post-create-form (microblogs) when not in a magazine by @blued-gear in https://github.com/MbinOrg/mbin/pull/1980
- update devcontainer build dependencies by @blued-gear in https://github.com/MbinOrg/mbin/pull/1988
- Translations update from Hosted Weblate by @weblate in https://github.com/MbinOrg/mbin/pull/1986
- Bump symfony/process from 7.3.4 to 7.4.5 in /tools in the composer group across 1 directory by @dependabot[bot] in https://github.com/MbinOrg/mbin/pull/1976
- Bump oneup/flysystem-bundle from 4.13.0 to 4.14.1 by @dependabot[bot] in https://github.com/MbinOrg/mbin/pull/1982
- Fix PushSubscription removal by @BentiGorlich in https://github.com/MbinOrg/mbin/pull/1990
- Don't match microblogs by magazine name hashtag anymore by @BentiGorlich in https://github.com/MbinOrg/mbin/pull/1800
- Fix infinite scroll on user profile and search pages by @BentiGorlich in https://github.com/MbinOrg/mbin/pull/1952
- Deprecate the magazine rules field by @BentiGorlich in https://github.com/MbinOrg/mbin/pull/1987
- Fix SearchController URL actor search by @blued-gear in https://github.com/MbinOrg/mbin/pull/1991
- Fix recursive context inclusion of ActivityStreams URL by @BentiGorlich in https://github.com/MbinOrg/mbin/pull/1997
- Translations update from Hosted Weblate by @weblate in https://github.com/MbinOrg/mbin/pull/1992
- Add check for duplicates command (guided tour) by @melroy89 in https://github.com/MbinOrg/mbin/pull/1994
- Add documentation for the check duplicates command by @BentiGorlich in https://github.com/MbinOrg/mbin/pull/2007
- Bump to v1.9.1 by @BentiGorlich in https://github.com/MbinOrg/mbin/pull/2008
New Contributors
- @grahhnt made their first contribution in https://github.com/MbinOrg/mbin/pull/1930
Full Changelog: https://github.com/MbinOrg/mbin/compare/v1.9.0...v1.9.1