github MbinOrg/mbin v1.9.1

7 hours ago

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
☑️ ☑️ ☑️ ☑️ ☑️

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 ### Rules in 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 to and cc field are now supported. JSON-LD allows this for array fields
  • Like Activities use the magazine id instead of followers collection in the to field
  • We no longer include the activity streams namespace twice (once in the @context and once in the /context.json)

Upgrade Instructions

For Docker

  1. Get the official image or checkout the code and build it locally
  2. Stop all containers docker compose down
  3. Start all containers docker compose up -d

For Bare Metal

  1. Login as the mbin/kbin user: su mbin
  2. Go to your repo cd /var/www/mbin
  3. Get the new release: git fetch && git checkout v1.9.1
  4. Run the update script: bash bin/post-upgrade.
  5. Run exit so we are back at the root user (or put a sudo in front of every command)
  6. clear your opcache by reloading php fpm systemctl restart php8.4-fpm (or for PHP 8.3: systemctl restart php8.3-fpm)
  7. 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-magazines
Docker: docker compose exec php php bin/console mbin:check:duplicates-users-magazines
This 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

New Contributors

Full Changelog: v1.9.0...v1.9.1

Don't miss a new mbin release

NewReleases is sending notifications on new releases.