Mastodon v3.3.0.rc1 Release Notes
Release Date: 2020-12-01 // over 3 years ago-
Note: This is a release candidate. It is intended to be stable, but not guaranteed.
๐ Changelog
โ Added
- โ Add hotkeys for audio/video control in web UI (Gargron, Gargron)
Space
andk
to toggle playbackm
to toggle mutef
to toggle fullscreenj
andl
to go back and forward by 10 seconds.
and,
to go back and forward by a frame (video only)
- โ Add expand/compress button on media modal in web UI (mashirozx, mashirozx, mashirozx)
- โ Add border around ๐บ emoji in web UI (ThibG)
- โ Add border around ๐ emoji in web UI (ThibG)
- โ Add home link to the getting started column when home isn't mounted (ThibG)
- โ Add option to disable swiping motions across the web UI (ThibG)
- โ Add pop-out player for audio/video in web UI (Gargron, Gargron, Gargron)
- Continue watching/listening when you scroll away
- Action bar to interact with/open toot from the pop-out player
- โ Add unread notification markers in web UI (ThibG, ThibG, ThibG, noellabo, noellabo)
- โ Add paragraph about browser add-ons when encountering errors in web UI (ThibG)
- โ Add import and export for bookmarks (ThibG)
- โ Add cache buster feature for media files (Gargron)
- If you have a proxy cache in front of object storage, deleted files will persist until the cache expires
- If enabled, cache buster will make a special request to the proxy to signal a cache reset
- โ Add duration option to the mute function (aquarla)
- โ Add replies policy option to the list function (ThibG)
- โ Add
og:published_time
OpenGraph tags on toots (nornagon) - โ Add option to be notified when a followed user posts (Gargron, ThibG, Gargron)
- If you don't want to miss a toot, click the bell button!
- โ Add client-side validation in password change forms (ThibG)
- โ Add client-side validation in the registration form (ThibG, ThibG)
- โ Add support for Gemini URLs (joshleeb)
- โ Add WebAuthn as an alternative 2FA method (santiagorodriguez96, jiikko)
- โ Add icon for mutual relationships in relationship manager (noellabo)
- โ Add follow selected followers button in relationship manager (noellabo)
- โ Add subresource integrity for JS and CSS assets (Gargron)
- If you use a CDN for static assets (JavaScript, CSS, and so on), you have to trust that the CDN does not modify the assets maliciously
- Subresource integrity compares server-generated asset digests with what's actually served from the CDN and prevents such attacks
- โ Add
ku
,sa
,sc
,zgh
to available locales (ykzts) - โ Add ability to force an account to mark media as sensitive (noellabo)
- โ Add ability to block access or limit sign-ups from chosen IPs (Gargron)
- Add rules for IPs or CIDR ranges that automatically expire after a configurable amount of time
- Choose the severity of the rule, either blocking all access or merely limiting sign-ups
- โ Add support for reversible suspensions through ActivityPub (Gargron)
- Servers can signal that one of their accounts has been suspended
- During suspension, the account can only delete its own content
- A reversal of the suspension can be signalled the same way
- A local suspension always overrides a remote one
- โ Add ActivityPub follower synchronization mechanism (ThibG, ThibG)
- โ Add outbox attribute to instance actor (ThibG)
- โ Add featured hashtags as an ActivityPub collection (Gargron)
- โ Add support for dereferencing objects through bearcaps (Gargron, noellabo)
- Add
S3_READ_TIMEOUT
environment variable (tateisu) - Add
ALLOWED_PRIVATE_ADDRESSES
environment variable (ThibG) - โ Add
--fix-permissions
option totootctl media remove-orphans
(Gargron, uist1idrju3i) - โ Add
tootctl accounts merge
(Gargron)- Has someone changed their domain or subdomain thereby creating two accounts where there should be one?
- This command will fix it on your end
- โ Add
tootctl maintenance fix-duplicates
(ThibG, Gargron)- Index corruption in the database?
- This command is for you
- โ Add support for managing multiple stream subscriptions in a single connection (Gargron, Gargron, mfmfuyu, zunda)
- Previously, getting live updates for multiple timelines required opening a HTTP or WebSocket connection for each
- More connections means more resource consumption on both ends, not to mention the (ever so slight) delay when establishing a new connection
- Now, with just a single WebSocket connection you can subscribe and unsubscribe to and from multiple streams
- Add support for limiting results by both
min_id
andmax_id
at the same time in REST API (tateisu) - โ Add
GET /api/v1/accounts/:id/featured_tags
to REST API (noellabo) - โ Add optional
tootctl remove media
cronjob in Helm chart (dunn)
๐ Changed
- ๐ Change media modals look in web UI (Gargron, Gargron)
- Background of the overlay matches the color of the image
- Action bar to interact with or open the toot from the modal
- ๐ Change order of announcements in admin UI to be newest-first (ThibG)
- ๐ Change account suspensions to be reversible by default (Gargron, ThibG, ThibG, ThibG, ThibG, noellabo)
- Suspensions no longer equal deletions
- A suspended account can be unsuspended with minimal consequences for 30 days
- Immediate deletion of data is still available as an explicit option
- Suspended accounts can request an archive of their data through the UI
- ๐ Change REST API to return empty data for suspended accounts (Gargron)
- ๐ Change web UI to show empty profile for suspended accounts (Gargron)
- ๐ Change featured hashtag suggestions to be recently used instead of most used (abcang)
- ๐ Change direct toots to appear in the home feed again (Gargron, ThibG, noellabo)
- Return to treating all toots the same instead of trying to retrofit direct visibility into an instant messaging model
- ๐ Change email address validation to return more specific errors (ThibG)
- ๐ Change HTTP signature requirements to include
Digest
header onPOST
requests (ThibG) - ๐ Change click area of video/audio player buttons to be bigger in web UI (ariasuni)
- ๐ Change order of filters by alphabetic by "keyword or phrase" (ariasuni)
- ๐ Change suspension of remote accounts to also undo outgoing follows (ThibG)
- ๐ Change string "Home" to "Home and lists" in the filter creation screen (ariasuni)
- ๐ Change string "Boost to original audience" to "Boost with original visibility" in web UI (3n-k1)
- ๐ Change string "Show more" to "Show newer" and "Show older" on public pages (ariasuni)
- ๐ Change order of announcements to be reverse chronological in web UI (dariusk, dariusk)
- ๐ Change visibility icon next to timestamp to be clickable in web UI (ariasuni, mayaeh)
โ Removed
- โ Remove fade-in animation from modals in web UI (Gargron)
- โ Remove auto-redirect to direct messages in web UI (Gargron)
- โ Remove obsolete IndexedDB operations from web UI (Gargron)
- โ Remove dependency on unused and unmaintained http_parser.rb gem (ThibG)
๐ Fixed
- ๐ Fix deletes not reaching every server that interacted with toot (Gargron)
- Previously, delete of a toot would be primarily sent to the followers of its author, people mentioned in the toot, and people who reblogged the toot
- Now, additionally, it is ensured that it is sent to people who replied to it, favourited it, and to the person it replies to even if that person is not mentioned
- ๐ Fix resolving an account through its non-canonical form (i.e. alternate domain) (ThibG)
- ๐ Fix sending redundant ActivityPub events when processing remote account deletion (ThibG)
- ๐ Fix Move handler not being triggered when failing to fetch target account (ThibG)
- ๐ Fix downloading remote media files when server returns empty filename (ThibG)
- ๐ Fix account processing failing because of large collections (ThibG)
- ๐ Fix not being able to unfavorite toots one has lost access to (ThibG)
- ๐ Fix not being able to unbookmark toots one has lost access to (ThibG)
- ๐ Fix possible casing inconsistencies in hashtag search (ThibG)
- ๐ Fix updating account counters when association is not yet created (Gargron)
- ๐ Fix cookies not having a SameSite attribute (Gargron)
- ๐ Fix poll ending notifications being created for each vote (ThibG)
- ๐ Fix multiple boosts of a same toot erroneously appearing in TL (ThibG)
- ๐ Fix asset builds not picking up
CDN_HOST
change (ThibG) - ๐ Fix desktop notifications permission prompt in web UI (Gargron, Gargron, ThibG)
- Some time ago, browsers added a requirement that desktop notification prompts could only be displayed in response to a user-generated event (such as a click)
- This means that for some time, users who haven't already given the permission before were not getting a prompt and as such were not receiving desktop notifications
- ๐ Fix "Mark media as sensitive" string not supporting pluralizations in other languages in web UI (ariasuni)
- ๐ Fix glitched image uploads when canvas read access is blocked in web UI (ThibG)
- ๐ Fix some account gallery items having empty labels in web UI (ThibG)
- ๐ Fix alt-key hotkeys activating while typing in a text field in web UI (ThibG)
- ๐ Fix wrong seek bar width on media player in web UI (mfmfuyu)
- ๐ Fix logging out on mobile in web UI (ThibG)
- ๐ Fix wrong click area for GIFVs in media modal in web UI (noellabo)
- ๐ Fix unreadable placeholder text color in high contrast theme in web UI (Gargron)
- ๐ Fix scrolling issues when closing some dropdown menus in web UI (ThibG)
- ๐ Fix notification filter bar incorrectly filtering gaps in web UI (ThibG)
- ๐ Fix disabled boost icon being replaced by private boost icon on hover in web UI (ThibG)
- ๐ Fix hashtag detection in compose form being different to server-side in web UI (kedamaDQ, ThibG)
- ๐ Fix home last read marker mishandling gaps in web UI (ThibG)
- ๐ Fix inefficiency when fetching hashtag timeline (noellabo, akihikodaki)
- ๐ Fix inefficiency when fetching bookmarks (akihikodaki)
- ๐ Fix inefficiency when fetching favourites (akihikodaki)
- ๐ Fix inefficiency when fetching media-only account timeline (akihikodaki)
- ๐ Fix redundant query when processing batch actions on custom emojis (niwatori24)
- ๐ Fix PostgreSQL secret name for cronjob in Helm chart (metal3d)
- ๐ Fix Procfile not being compatible with herokuish (acuteaura)
- ๐ Fix installation of tini being split into multiple steps in Dockerfile (ryncsn)
๐ Security
- ๐ Fix streaming API allowing connections to persist after access token invalidation (Gargron)
- ๐ Fix 2FA/sign-in token sessions being valid after password change (Gargron)
โฌ๏ธ Upgrade notes
โฌ๏ธ > As always, make sure you have backups of the database before performing any upgrades. If you are using docker-compose, this is how a backup command might look: docker exec mastodon_db_1 pg_dump -Fc -U postgres postgres > name_of_the_backup.dump
๐ณ Non-Docker only:
- โฌ๏ธ The recommended Ruby version has been bumped to 2.7.2. You can upgrade, or you can continue using the old version by overwriting the
.ruby-version
file with e.g.2.6.6
which was recommended previously - Install dependencies:
bundle install
andyarn install
๐ณ Both Docker and non-Docker:
๐ 1. Run the pre-deployment database migrations by specifying the
SKIP_POST_DEPLOYMENT_MIGRATIONS=true
environment variable:- Non-Docker:
SKIP_POST_DEPLOYMENT_MIGRATIONS=true RAILS_ENV=production bundle exec rails db:migrate
- Docker:
docker-compose run --rm -e SKIP_POST_DEPLOYMENT_MIGRATIONS=true web rails db:migrate
๐ฑ 2. Precompile the assets: - Non-Docker:
RAILS_ENV=production bundle exec rails assets:precompile
- Docker: The assets are already precompiled during the build step
- Restart all Mastodon processes
- Clear cache:
- Non-Docker:
RAILS_ENV=production bin/tootctl cache clear
- Docker:
docker-compose run --rm web bin/tootctl cache clear
๐ 5. Now that the new code is running, we can finish the database migrations. This will run the post-deployment ones: - Non-Docker:
RAILS_ENV=production bundle exec rails db:migrate
- Docker:
docker-compose run --rm web rails db:migrate
- Restart all Mastodon processes
Translators
TBA
- โ Add hotkeys for audio/video control in web UI (Gargron, Gargron)