This is the full release of version 1.10.
It includes new features for users and admins, bug fixes, performance fixes and some breaking changes of the REST API.
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
- Add support for lists of keyword filters of content; they can be scoped to content, comments and profile-overviews and can have an expiration-date
- Show the custom title of users and add the option to set one for yourself
- Add the option to also show content which was boosted by people you follow in the Combined view
- Pagination is now done by "anchors" (like that date of the last thread on the page) instead of page-numbers, to improve performance
- Add an indicator when a user has their "cake day"
- Fix search not returning most of Lemmy users and magazines
- Fix the search when searching content, users or magazines by their URL
- The date field of the search form now has a preset value
- Small UI improvements to make the elements of posts and threads more consistent (the layout for posts in Combined view can be toggled in the UI settings)
- Prevent opening a thread or post when touching interactive elements (buttons, spoilers, ...) on mobile
- Suppress notification for added content if it is more than two days old (for example after delayed federation)
- Fix infinite scrolling of comments
- Fix reply button for comments on locked threads and posts not being disabled
Summary for Server Admins
- Introduces monitoring: record a variety of metrics and show statistics what causes performance-issues on your server
- Uploaded images now get compressed to fit the size limit (see the docs)
- Cached images can be removed with a command
- A new command for deleting orphaned media
- Extend the "check duplicate magazines" command to find and delete duplicate users in the database (which might block DB migrations)
- Make the language of fulltext-search configurable (see the docs)
- Fix list of inactive users always being empty
Tip about the Messengers
As the load of deliveries can get high from time to time it is now recommended to run at least one separate messenger process for the Deliver queue.
Summary for developers
Mbin:
- PHP updated to 8.4
- Symfony updated to 7.4
- Some dependencies updated
App:
- New API endpoints to retrieve content, boosts and list moderated magazines of a user
- New or extended API endpoints listing who liked and boosted content
- New API endpoints for managing mod and owner requests of magazines
- Get Combined feed for magazine (
/api/magazine/{magazine_id}/combined[/v2]) - Get chat messages of specific user (
/api/users/{user_id}/messages) - Get content for a Tag (
/api/tag/{name}/[entries|entryComments|post|postComments]) - Add filter 'abandoned' for /api/magazines
- New OAuth permissions
- Breaking API changes:
- Schema of the DTO for notifications on user signup
/api/combined/{collectionType}changed from PUT to GET- Reworked response of the search API
Fediverse:
- Fix federation issues of some activities by adding the
publishedproperty to the Instance actor - Fix federation of link+image threads to Lemmy
- Send Delete activities to all known instances (instead of only ones the user interacted with)
- Honor the "application/ld+json" type in endpoint requests
- Periodic updates of user actors will also update their username
- Fix parsing of actors from PeerTube
- Treat
as:Publicor justPubliccorrectly - Fix support for image property on Page type, add support for string
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
- Ensure you have PHP 8.4 installed
- 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.10.0-rc1 - 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 - 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.
What's Changed
- API for getting who upvoted / boosted content by @blued-gear in #1998
- add API for managing moderator and ownership requests by @blued-gear in #2006
- Translations update from Hosted Weblate by @weblate in #2011
- make the vote button of posts the same size as on entries by @blued-gear in #2009
- API endpoints to get the content of a user and their moderated magazines by @blued-gear in #2012
- Fix most lemmy users and magazines missing from search by @BentiGorlich in #2014
- Use Debian Trixie as our Docker CI/CD image by @melroy89 in #2005
- add API endpoint to get moderator and ownership requests by @blued-gear in #2010
- use apId as URL for crossposts of remote entries by @blued-gear in #2016
- Update symfony to 7.4 by @BentiGorlich in #1966
- Instance actor: add
publishedproperty by @BentiGorlich in #2019 - use DateType instead of DateTimeType in search and label the field by @blued-gear in #2017
- docs(contributor): contributors readme action update by @github-actions[bot] in #2022
- Abbreviate numbers by @BentiGorlich in #2021
- Fix criteria missing when rendering for front xml request by @BentiGorlich in #2025
- Fix composer audit: firebase/php-jwt use v7.0.2 as 6.11.1 by @BentiGorlich in #2027
- Fix the inactive user list by @BentiGorlich in #2024
- Improve performance of random panels by @BentiGorlich in #2018
- Translations update from Hosted Weblate by @weblate in #2031
- Put the link first in the attachments for lemmy compatibility by @BentiGorlich in #2029
- Send delete to all known instances by @BentiGorlich in #2028
- Fix responding with html to ActivityStreams profile by @BentiGorlich in #2032
- add filter 'abandoned' for /api/magazines by @blued-gear in #2000
- Fix a bunch of deprecations by @blued-gear in #1968
- docs(contributor): contributors readme action update by @github-actions[bot] in #2038
- suppress opening subject on touch for interactive elements by @blued-gear in #2037
- change DTO of signup notifications by @blued-gear in #2039
- fix layout of posts on startpage if combined mode is used by @blued-gear in #2020
- Fix notifications from old threads by @BentiGorlich in #2035
- Add a command to delete orphaned media by @BentiGorlich in #2033
- Bump predis/predis from 3.2.0 to 3.3.0 by @dependabot[bot] in #2001
- Bump twig/cssinliner-extra from 3.22.0 to 3.23.0 by @dependabot[bot] in #2002
- Introducing monitoring by @BentiGorlich in #1960
- Change user clause to use user_id instead of user by @TheVillageGuy in #2042
- Bump league/commonmark from 2.7.1 to 2.8.1 in the php group across 1 directory by @dependabot[bot] in #2044
- Bump symfonycasts/verify-email-bundle from 1.17.4 to 1.18.0 by @dependabot[bot] in #2045
- Translations update from Hosted Weblate by @weblate in #2046
- Bump nelmio/cors-bundle from 2.6.0 to 2.6.1 by @dependabot[bot] in #1981
- add icon what a user account has its "birthday" by @blued-gear in #2049
- Doctrine Upgrade by @BentiGorlich in #2026
- show boosts for followed users by @blued-gear in #2054
- Implement support for custom usernames by @blued-gear in #2036
- Bump minishlink/web-push from 9.0.2 to 10.0.3 by @dependabot[bot] in #2052
- Bump knplabs/knp-time-bundle from 2.4.0 to 2.5.0 by @dependabot[bot] in #2051
- Bump symfony/maker-bundle from 1.63.0 to 1.66.0 by @dependabot[bot] in #2050
- Bump phpseclib/phpseclib from 3.0.47 to 3.0.50 in the php group across 1 directory by @dependabot[bot] in #2055
- Bump league/commonmark from 2.8.1 to 2.8.2 in the php group across 1 directory by @dependabot[bot] in #2056
- Bump twig/intl-extra from 3.22.0 to 3.24.0 by @dependabot[bot] in #2059
- Bump twig/cssinliner-extra from 3.23.0 to 3.24.0 by @dependabot[bot] in #2057
- Bump phpstan/phpstan from 2.1.32 to 2.1.42 by @dependabot[bot] in #2058
- Bump symfony/monolog-bundle from 3.10.0 to 4.0.1 by @dependabot[bot] in #2003
- Restore compatibility with Mastodon by @BentiGorlich in #2063
- Fix messenger and php container being not healthy by @BentiGorlich in #2062
- Improve image handling by @BentiGorlich in #2041
- Bump aws/aws-sdk-php from 3.369.3 to 3.374.2 by @dependabot[bot] in #2070
- Supress some logs by @blued-gear in #2053
- Move the front page to cursor based pagination by @BentiGorlich in #1985
- Improve performance of RemoveRemoteMediaCommand by @BentiGorlich in #2064
- Add command to fix user duplicates by @BentiGorlich in #2047
- Bump phpstan/phpstan from 2.1.42 to 2.1.44 by @dependabot[bot] in #2067
- Bump symfony/ux-twig-component from 2.32.0 to 2.34.0 by @dependabot[bot] in #2068
- Bump scienta/doctrine-json-functions from 6.3.0 to 6.5.0 by @dependabot[bot] in #2069
- use new AP resolve code from SearchController in SearchRetrieveApi by @blued-gear in #2013
- fix log_filter_handler config by @blued-gear in #2075
- Reintroduce English as the fallback by @BentiGorlich in #2076
- fix error when searching for a non-fedi URL by @blued-gear in #2074
- Update npm package minor/patch versions only by @melroy89 in #2084
- Bump league/flysystem-aws-s3-v3 from 3.30.1 to 3.32.0 by @dependabot[bot] in #2079
- Bump justinrainbow/json-schema from 6.6.1 to 6.8.0 by @dependabot[bot] in #2080
- Bump babdev/pagerfanta-bundle from 4.5.0 to 4.6.0 by @dependabot[bot] in #2081
- Bump pagerfanta/doctrine-dbal-adapter from 4.7.2 to 4.8.0 by @dependabot[bot] in #2082
- Add ability to filter feeds, comments and the profile by key-words by @BentiGorlich in #2073
- fix: handle array-typed url field in ActivityPub actor payload by @melroy89 in #2077
- Translations update from Hosted Weblate by @weblate in #2087
- Translations update from Hosted Weblate by @weblate in #2089
- Bump phpseclib/phpseclib from 3.0.50 to 3.0.51 in the php group across 1 directory by @dependabot[bot] in #2092
- Fix
Create->Announce->Delivercircle by @BentiGorlich in #2095 - fix query for boosted comments + better layout for post comments in combined by @blued-gear in #2090
- Bump thenetworg/oauth2-azure from 2.2.2 to 2.2.5 by @dependabot[bot] in #2093
- bump to v1.10.0-rc1 by @blued-gear in #2096
- fix documentation of dedup users command by @blued-gear in #2097
- fix handling of special unicode in user title by @blued-gear in #2102
- add option to use old post component in combined view by @blued-gear in #2103
- fix infinite scrolling for comments by @blued-gear in #2104
- Bump phpstan/phpdoc-parser from 2.3.0 to 2.3.2 by @dependabot[bot] in #2099
- Bump meteo-concept/hcaptcha-bundle from 4.3.0 to 4.5.0 by @dependabot[bot] in #2100
- Bump league/oauth2-server-bundle from 1.0.0 to 1.1.1 by @dependabot[bot] in #2101
- only enable includeBoosts if sorting is set to newest by @blued-gear in #2105
- Fix flaky test case in
UserFilterListApiTestby @BentiGorlich in #2110 - Treat
as:Publicor justPubliccorrectly -> the same ashttps://www.w3.org/ns/activitystreams#Publicby @BentiGorlich in #2109 - Fix support for
imageproperty onPagetype, add support for string by @BentiGorlich in #2111 - Fix type error on mention extraction from tags by @BentiGorlich in #2108
- Translations update from Hosted Weblate by @weblate in #2114
- Fix command only working halfway through by @BentiGorlich in #2116
- Add the second cursor to the query by @BentiGorlich in #2121
- Fix the mapping of the magazine modlog by @BentiGorlich in #2122
- disable reply button for commenst on locked threads and posts by @blued-gear in #2124
- Some new API endpoints by @blued-gear in #2123
- Bump liip/imagine-bundle from 2.15.0 to 2.17.1 by @dependabot[bot] in #2118
- Bump gumlet/php-image-resize from 2.1.2 to 2.1.3 by @dependabot[bot] in #2117
- Bump symfony/mercure-bundle from 0.3.9 to 0.4.2 by @dependabot[bot] in #2119
- Bump pagerfanta/twig from 4.7.2 to 4.8.0 by @dependabot[bot] in #2094
- Bump nelmio/api-doc-bundle from 5.7.1 to 5.10.0 by @dependabot[bot] in #2120
- Update robots.txt by @melroy89 in #2126
- Fix another flaky test by @BentiGorlich in #2129
- Update phpunit and paratest by @BentiGorlich in #2130
- Translations update from Hosted Weblate by @weblate in #2132
- Fix typo in monitoring_duration_twig_render by @melroy89 in #2131
- Harmonized layout for thread_comments in combined view by @blued-gear in #2115
- docs(contributor): contributors readme action update by @github-actions[bot] in #2134
- Bump version to v1.10.0-rc2 by @BentiGorlich in #2128
- fix duplicates-users-magazines docs by @blued-gear in #2140
- update vulnerable dependencies by @blued-gear in #2148
- Translations update from Hosted Weblate by @weblate in #2142
- update vulnerable dependencies by @blued-gear in #2149
- configurable language for fulltext-search by @blued-gear in #2133
- Update several action actions to latest version (using v24 nodejs) by @melroy89 in #2153
- Translations update from Hosted Weblate by @weblate in #2154
- remove menu from crosspost list entry by @blued-gear in #2150
- bump version to 1.10.0 by @blued-gear in #2157
Full Changelog: v1.9.1...v1.10.0