Pleroma major release: 2.5.0
Pleroma 2.5.0 is a major release. Featuring many fixes, additions and improvements.
Breaking changes
- MastoFE is removed, a drop-in alternative being glitch-lily
- Users may find that the nsfw cover image cannot be displayed (see this bug). If this happens on your instance, you can upload one image in admin-fe > Settings > Frontend > Frontend configurations > NSFW Censor Image. The default cover image for the current version can be found at https://git.pleroma.social/pleroma/pleroma-fe/-/blob/2.5.0/src/assets/nsfw.png. ## Upgrade notes
From source only
Get new dependencies and recompile Pleroma:
MIX_ENV=prod mix deps.get MIX_ENV=prod mix compile
Everyone
- Run database migrations (inside Pleroma directory):
- OTP:
./bin/pleroma_ctl migrate
- From Source:
mix ecto.migrate
Due to the large amount of migrations, it can take a long time to run this, depending on the size of your instance. It is recommended to schedule the downtime ahead of time for the migrations.
- OTP:
- Recommended: Run
VACUUM ANALYZE
on your database - Restart Pleroma
Frontend changes
Fixed
- UI no longer lags when switching between mobile and desktop mode
- Popovers no longer constrained by DOM hierarchy, shouldn’t be cut off by anything
- Emoji autocomplete popover and picker popover stick to the text cursor.
- Attachments are ALWAYS in same order as user uploaded, no more “videos first”
- Pinned statuses no longer appear at bottom of user timeline (still appear as part of the timeline when fetched deep enough)
- Fixed many many bugs related to new mentions, including spacing and alignment issues
- Links in profile bios now properly open in new tabs
- “Always show mobile button” is working now
- Inline images now respect their intended width/height attributes
- Links with
&
in them work properly now - Attachment description is prefilled with backend-provided default when uploading
- Proper visual feedback that next image is loading when browsing
- Additional HTML sanitization on frontend side in case backend sanitization fails
- Interaction list popovers now properly emojify names
- AdminFE button no longer scrolls page to top when clicked
- User handles with non-ascii domains now have less intrusive indicator for the domain name
- Completely hidden posts still no longer have 1px border
- A lot of accessibility improvements
Changed
- Using Vue 3 now
- A lot of internal dependencies updated
- “(You)s” are optional (opt-in) now, bolding your nickname is also optional (opt-out)
- User highlight background now also covers the
@
- Reverted back to textual
@
, svg version is opt-in. - Settings window has been thoroughly rearranged to make more sense and make navigation settings easier.
- Uploaded attachments are uniform with displayed attachments
- Flash is watchable in media-modal (takes up nearly full screen though due to sizing issues)
- Notifications about likes/repeats/emoji reacts are now minimized so they always take up same amount of space irrelevant to size of post. (You can expand them to full if need be)
- Slight width/spacing adjustments
- More sizing stuff is font-size dependent now
- Scrollbars are styled/colorized now
- Scrollbars are toggleable (for stuff that didn’t have visible scrollbars before) (opt-in)
- Updated localization files
- Top bar is more useful in mobile mode now.
- “Show new” button is way more compact in mobile mode
- Slightly adjusted placement and spacing of the topbar buttons so it’s less easy to accidentally log yourself out
Added
- 3 column mode: only enables when there’s space for it (opt-out, customizable)
- Apologetic pleroma-tan
- New button on timeline header to change some of the new and often-used settings
- Support for lists
- Added ability to edit posts and view post edit history etc.
- Added ability to add personal note to users
- Added initial support for admin announcements
- Added ui for account migration
- Added ui for backups
- Added ability to force-unfollow a user from you
- Emoji are now grouped by pack
- Ability to pin navigation items and collapse the navigation menu
- Ability to rearrange order of attachments when uploading
- Ability to scroll column (or page) to top via panel header button
- Options to show domains in mentions
- Option to show user avatars in mention links (opt-in)
- Option to disable the tooltip for mentions
- Option to completely hide muted threads
- Option to customize what clicking user avatar does in user popover
- Notifications for poll results
- “Favorites” link in navigation
- Very early and somewhat experimental system for automatic settings sync (used only for pinned navigation and apologetic pleroma-tan)
- Implemented remote interaction with statuses for anon visitors
- Ability to open videos in modal even if you disabled that feature, via an icon button
- New button on attachment that indicates that attachment has a description and shows a bar filled with description
- Attachments are truncated just like post contents
- Media modal now also displays description and counter position in gallery (i.e. 1/5)
- Enabled users to zoom and pan images in media viewer with mouse and touch
- Timelines/panels and conversations have sticky headers now (a bit glitchy on some browsers like safari) (opt-out)
Backend changes
Removed
- MastoFE, which you can get back via glitch-lily
- Quack, the logging backend that pushes to Slack channels
Changed
- Breaking: Elixir >=1.11 is now required (was >= 1.9)
- Allow users to remove their emails if instance does not need email to register
- Uploadfilter
Pleroma.Upload.Filter.Exiftool
has been renamed toPleroma.Upload.Filter.Exiftool.StripLocation
- Breaking:
/api/v1/pleroma/backups
endpoints now requiresread:backups
scope instead ofread:accounts
- Updated the recommended pleroma.vcl configuration for Varnish to target Varnish 7.0+
- Set timeout values for Oban queues. The default is infinity and some operations may not time out on their own.
- Delete activities are federated at lowest priority
- CSP now includes wasm-unsafe-eval
Added
activeMonth
andactiveHalfyear
fields in NodeInfo usage.users object- Experimental support for Finch. Put
config :tesla, :adapter, {Tesla.Adapter.Finch, name: MyFinch}
in your secrets file to use it. Reverse Proxy will still use Hackney. ForceMentionsInPostContent
MRF policy- PleromaAPI: Add remote follow API endpoint at
POST /api/v1/pleroma/remote_interaction
- MastoAPI: Add
GET /api/v1/accounts/lookup
- MastoAPI: Profile Directory support
- MastoAPI: Support v2 Suggestions (handpicked accounts only)
- Ability to log slow Ecto queries by configuring
:pleroma, :telemetry, :slow_queries_logging
- Added Phoenix LiveDashboard at
/phoenix/live_dashboard
- Added
/manifest.json
for progressive web apps. - MastoAPI: Support for
birthday
andshow_birthday
field in/api/v1/accounts/update_credentials
. - Configuration: Add
birthday_required
andbirthday_min_age
settings to provide a way to require users to enter their birth date. - PleromaAPI: Add
GET /api/v1/pleroma/birthdays
API endpoint - Make backend-rendered pages translatable. This includes emails. Pages returned as a HTTP response are translated using the language specified in the
userLanguage
cookie, or theAccept-Language
header. Emails are translated using thelanguage
field when registering. This language can be changed byPATCH /api/v1/accounts/update_credentials
with thelanguage
field. - Add fine grained options to provide privileges to moderators and admins (e.g. delete messages, manage reports…)
- Uploadfilter
Pleroma.Upload.Filter.Exiftool.ReadDescription
returns description values to the FE so they can pre fill the image description field - Added move account API
- Enable remote users to interact with posts
- Possibility to discover users like
user@example.org
, while Pleroma is working onpleroma.example.org
. Additional configuration required.
Fixed
- Subscription(Bell) Notifications: Don’t create from Pipeline Ingested replies
- Handle Reject for already-accepted Follows properly
- Display OpenGraph data on alternative notice routes.
- Fix replies count for remote replies
- Fixed hashtags disappearing from the end of lines when Markdown is enabled
- ChatAPI: Add link headers
- Limited number of search results to 40 to prevent DoS attacks
- ActivityPub: fixed federation of attachment dimensions
- Fixed benchmarks
- Elixir 1.13 support
- Fixed crash when pinned_objects is nil
- Fixed slow timelines when there are a lot of deactivated users
- Fixed account deletion API
- Fixed lowercase HTTP HEAD method in the Media Proxy Preview code
- Removed useless notification call on Delete activities
- Improved performance for filtering out deactivated and invisible users
- RSS and Atom feeds for users work again
- TwitterCard meta tags conformance
Admin Frontend changes
Added
- Support for fine-grained privileges
Fixed
- Crash when parsing tuples in Settings
- Broken parsing of Settings