Mastodon v3.1.0 Release Notes
Release Date: 2020-02-09 // about 4 years ago-
๐ Changelog
โ Added
- โ Add bookmarks (ThibG, Gargron, Gomasy)
- โ Add announcements (Gargron, Gargron, Gargron, Gargron, Gargron, Gargron, Gargron, Gargron, Gargron, Gargron, ThibG, ThibG, Gargron, ThibG, ThibG)
- โ Add number animations in web UI (Gargron, Gargron)
- โ Add
kab
,is
,kn
,mr
,ur
to available locales (Gargron, BoFFire, Gargron) - โ Add profile filter category (ThibG)
- โ Add ability to add oneself to lists (ThibG)
- โ Add hint how to contribute translations to preferences page (Sasha-Sorokin)
- โ Add signatures to statuses in archive takeout (noellabo)
- โ Add support for
magnet:
andxmpp
links (ThibG, ThibG) - โ Add
follow_request
notification type (ThibG) - โ Add ability to filter reports by account domain in admin UI (ThibG)
- โ Add link to search for users connected from the same IP address to admin UI (ThibG)
- โ Add link to reports targeting a specific domain in admin view (ThibG)
- โ Add support for EventSource streaming in web UI (BenLubar)
- โ Add hotkey for opening media attachments in web UI (ThibG, Kjwon15)
- โ Add relationship-based options to status dropdowns in web UI (Gargron, ThibG, Gargron)
- โ Add support for submitting media description with
ctrl
+enter
in web UI (ThibG) - โ Add download button to audio and video players in web UI (NimaBoscarino)
- โ Add setting for whether to crop images in timelines in web UI (duxovni)
- โ Add support for
Event
activities (tcitworld) - โ Add basic support for
Group
actors (noellabo) - Add
S3_OVERRIDE_PATH_STYLE
environment variable (Gargron) - Add
S3_OPEN_TIMEOUT
environment variable (tateisu) - โ Add
LDAP_MAIL
environment variable (madmath03) - Add
LDAP_UID_CONVERSION_ENABLED
environment variable (madmath03) - โ Add
--remote-only
option totootctl emoji purge
(ThibG) - โ Add
tootctl media remove-orphans
(Gargron, Gargron) - โ Add
tootctl media lookup
command (irlcatgirl) - โ Add cache for OEmbed endpoints to avoid extra HTTP requests (Gargron)
- โ Add support for KaiOS arrow navigation to public pages (nolanlawson)
- โ Add
discoverable
to accounts in REST API (trwnh) - โ Add admin setting to disable default follows (ArisuOngaku)
- โ Add support for LDAP and PAM in the OAuth password grant strategy (ntl-purism, Gargron)
- ๐ Allow support for
Accept
/Reject
activities with a non-embedded object (puckipedia) - โ Add "Show thread" button to public profiles (Sasha-Sorokin)
๐ Changed
- Change
last_status_at
to be a date, not datetime in REST API (ThibG) - ๐ Change followers page to relationships page in admin UI (Gargron, Gargron)
- ๐ Change reported media attachments to always be hidden in admin UI (Gargron, ThibG)
- ๐ Change string from "Disable" to "Disable login" in admin UI (nileshkumar)
- ๐ Change report page structure in admin UI (Sasha-Sorokin)
- ๐ Change swipe sensitivity to be lower on small screens in web UI (umonaca)
- ๐ Change audio/video playback to stop playback when out of view in web UI (Gargron)
- ๐ Change media description label based on upload type in web UI (ThibG)
- ๐ Change large numbers to render without decimal units in web UI (noellabo)
- ๐ Change "Add a choice" button to be disabled rather than hidden when poll limit reached in web UI (ThibG, hinaloe)
- ๐ Change
tootctl statuses remove
to keep statuses favourited or bookmarked by local users (ThibG, Gomasy) - โก๏ธ Change domain block behavior to update user records (fast) before deleting data (slower) (ThibG)
- ๐ Change behaviour to strip audio metadata on uploads (hugogameiro)
- ๐ Change accepted length of remote media descriptions from 420 to 1,500 characters (ThibG)
- ๐ Change preferences pages structure (Sasha-Sorokin, mayaeh, Sasha-Sorokin, Sasha-Sorokin, Sasha-Sorokin, Sasha-Sorokin)
- ๐ Change format of titles in RSS (devkral)
- ๐ Change favourite icon animation from spring-based motion to CSS animation in web UI (ThibG)
- ๐ Change minimum required Node.js version to 10, and default to 12 (Shleeble, mkody, Shleeble)
- ๐ Change spam check to exempt server staff (ThibG)
- ๐ Change to fallback to to
Create
audience whenobject
has no defined audience (ThibG) - ๐ Change Twemoji library to 12.1.3 in web UI (koyuawsmbrtn)
- ๐ Change blocked users to be hidden from following/followers lists (ThibG)
- ๐ Change signature verification to ignore signatures with invalid host (Gargron)
โ Removed
๐ Fixed
- ๐ Fix some translatable strings being used wrongly (Sasha-Sorokin, Sasha-Sorokin, Sasha-Sorokin, mayaeh)
- ๐ Fix headline of public timeline page when set to local-only (ykzts)
- ๐ Fix space between tabs not being spread evenly in web UI (Sasha-Sorokin, Sasha-Sorokin, Sasha-Sorokin)
- ๐ Fix interactive delays in database migrations with no TTY (Gargron)
- ๐ Fix status overflowing in report dialog in web UI (ThibG)
- ๐ Fix unlocalized dropdown button title in web UI (Sasha-Sorokin)
- ๐ Fix media attachments without file being uploadable (Gargron)
- ๐ Fix unfollow confirmations in profile directory in web UI (ThibG)
- ๐ Fix duplicate
description
meta tag on accounts public pages (ThibG) - ๐ Fix slow query of federated timeline (notozeki)
- ๐ Fix not all of account's active IPs showing up in admin UI (Gargron, Gargron)
- ๐ Fix search by IP not using alternative browser sessions in admin UI (Gargron)
- ๐ Fix โX new itemsโ not showing up for slow mode on empty timelines in web UI (ThibG)
- ๐ Fix OEmbed endpoint being inaccessible in secure mode (Gargron)
- ๐ Fix proofs API being inaccessible in secure mode (Gargron)
- ๐ Fix Ruby 2.7 incompatibilities (ThibG, ThibG, Shleeble, zunda)
- ๐ Fix invalid poll votes being accepted in REST API (ThibG)
- ๐ Fix old migrations failing because of strong migrations update (ThibG, ThibG)
- ๐ Fix reuse of detailed status components in web UI (ThibG)
- ๐ Fix base64-encoded file uploads not being possible in REST API (Gargron, Gargron)
- ๐ Fix error due to missing authentication call in filters controller (Gargron)
- ๐ Fix uncaught unknown format error in host meta controller (Gargron)
- ๐ Fix URL search not returning private toots user has access to (ThibG, ThibG)
- ๐ Fix cache digesting log noise on status embeds (Gargron)
- ๐ Fix slowness due to layout thrashing when reloading a large set of statuses in web UI (panarom, panarom, Gargron)
- ๐ Fix error when fetching followers/following from REST API when user has network hidden (Gargron)
- ๐ Fix IDN mentions not being processed, IDN domains not being rendered (Gargron, Gargron, Gargron)
- ๐ Fix error when searching for empty phrase (Gargron)
- ๐ Fix backups stopping due to read timeouts (chr-1x)
- ๐ Fix batch actions on non-pending tags in admin UI (ThibG)
- Fix sample
SAML_ACS_URL
,SAML_ISSUER
(orlea) - ๐ Fix manual scrolling issue on Firefox/Windows in web UI (ThibG)
- ๐ Fix archive takeout failing if total dump size exceeds 2GB (scd31, Gargron)
- ๐ Fix custom emoji category creation silently erroring out on duplicate category (ThibG)
- ๐ Fix link crawler not specifying preferred content type (ThibG)
- ๐ Fix featured hashtag setting page erroring out instead of rejecting invalid tags (ThibG)
- ๐ Fix tooltip messages of single/multiple-choice polls switcher being reversed in web UI (acid-chicken)
- ๐ Fix typo in help text of
tootctl statuses remove
(trwnh) - ๐ Fix generic HTTP 500 error on duplicate records (Gargron)
- ๐ Fix old migration failing with new status default scope (ThibG)
- ๐ Fix errors when using search API with no query (Gargron, trwnh)
- ๐ Fix poll options not being selectable via keyboard in web UI (ThibG)
- ๐ Fix conversations not having an unread indicator in web UI (Gargron)
- ๐ Fix lost focus when modals open/close in web UI (ThibG)
- ๐ Fix pending upload count not being decremented on error in web UI (ThibG)
- ๐ Fix empty poll options not being removed on remote poll update (ThibG)
- ๐ Fix OCR with delete & redraft in web UI (ThibG)
- ๐ Fix blur behind closed registration message (ThibG)
- ๐ Fix OEmbed discovery not handling different URL variants in query (Gargron)
- ๐ Fix link crawler crashing on
<a>
tags withouthref
(ThibG) - ๐ Fix whitelisted subdomains being ignored in whitelist mode (noiob)
- ๐ Fix broken audit log in whitelist mode in admin UI (ThibG)
- ๐ Fix unread indicator not honoring "Only media" option in local and federated timelines in web UI (ThibG)
- ๐ Fix error when rebuilding home feeds (dariusk)
- ๐ Fix relationship caches being broken as result of a follow request (ThibG)
- ๐ Fix more items than the limit being uploadable in web UI (ThibG)
- ๐ Fix various issues with account migration (ThibG)
- ๐ Fix filtered out items being counted as pending items in slow mode in web UI (ThibG)
- ๐ Fix notification filters not applying to poll options (ThibG)
- ๐ Fix notification message for user's own poll saying it's a poll they voted on in web UI (ykzts)
- ๐ Fix polls with an expiration not showing up as expired in web UI (noellabo)
- ๐ Fix volume slider having an offset between cursor and slider in Chromium in web UI (ThibG)
- ๐ Fix Vagrant image not accepting connections (shrft)
- ๐ Fix batch actions being hidden on small screens in admin UI (ThibG)
- ๐ Fix incoming federation not working in whitelist mode (ThibG)
- ๐ Fix error when passing empty
source
param toPUT /api/v1/accounts/update_credentials
(jglauche) - ๐ Fix HTTP-based streaming API being cacheable by proxies (BenLubar)
- ๐ Fix users being able to register while
tootctl self-destruct
is in progress (Kjwon15) - ๐ Fix microformats detection in link crawler not ignoring
h-card
links (nightpool) - ๐ Fix outline on full-screen video in web UI (hinaloe)
- ๐ Fix TLD domain blocks not being editable (ThibG)
- ๐ Fix Nanobox deploy hooks (danhunsaker)
- ๐ Fix needlessly complicated SQL query when performing account search amongst followings (ThibG)
- ๐ Fix favourites count not updating when unfavouriting in web UI (NimaBoscarino)
- ๐ Fix occasional crash on scroll in Chromium in web UI (hinaloe)
- ๐ Fix intersection observer not working in single-column mode web UI (panarom)
- ๐ Fix voting issue with remote polls that contain trailing spaces (ThibG)
- ๐ Fix dynamic elements not working in pgHero due to CSP rules (ykzts)
- ๐ Fix overly verbose backtraces when delivering ActivityPub payloads (zunda)
- ๐ Fix rendering
<a>
withouthref
when scheme unsupported (Gargron) - ๐ Fix unfiltered params error when generating ActivityPub tag pagination (Gargron)
- ๐ Fix malformed HTML causing uncaught error (Gargron)
- ๐ Fix native share button not being displayed for unlisted toots (ThibG)
- ๐ Fix remote convertible media attachments (e.g. GIFs) not being saved (Gargron)
- ๐ Fix account query not using faster index (abcang)
- ๐ Fix error when sending moderation notification (renatolond)
๐ Security
- ๐ Fix OEmbed leaking information about existence of non-public statuses (Gargron)
- ๐ Fix password change/reset not immediately invalidating other sessions (Gargron)
- ๐ Fix settings pages being cacheable by the browser (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 minimum supported Node.js version has been bumped from 8 to 10. To upgrade Node.js, run
curl -sL https://deb.nodesource.com/setup_10.x | bash -
and thenapt install nodejs
- Install dependencies:
bundle install
andyarn install
๐ณ Both Docker and non-Docker:
- Run database migrations:
- Non-Docker:
RAILS_ENV=production bundle exec rails db:migrate
- Docker:
docker-compose run --rm 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
- Non-Docker:
- Restart all Mastodon processes
Troubleshooting
โฌ๏ธ If you have problems accessing the Sidekiq dashboard after upgrading, log out and log back in.
Translators
- Sveinn รญ Felli (Icelandic)
- taicv (Vietnamese)
- Daniele Lira Mereb (Portuguese, Brazilian)
- แฆแแขแตแซ (Spanish, Argentina)
- Michal Stanke (Czech)
- Miguel Mayol (Spanish; Catalan)
- Imre Kristoffer Eilertsen (Norwegian)
- Peterandre (Norwegian Nynorsk; Norwegian)
- Danial Behzadi (Persian)
- Ivรกns (Galician)
- enolp (Asturian)
- ButterflyOfFire (Kabyle; Arabic; French)
- arshat (Kazakh)
- Ramdziana F Y (Indonesian)
- tolstoevsky (Russian)
- Sasha Sorokin (Russian; Vietnamese; Swedish; French; Danish; German; Korean; Ukrainian)
- YubaWissin (Kabyle)
- Oฤuz Ersen (Turkish)
- Xosรฉ M. (Galician; Spanish)
- Emanuel Pina (Portuguese)
- Thai Localization (Thai)
- Evert Prants (Estonian)
- Jeong Arm (Korean; Esperanto; Japanese)
- ๅๅฎๅ (Chinese Simplified)
- vishnuvaratharajan (Tamil)
- Geoflly Adonias (Portuguese, Brazilian)
- spla (Catalan; Spanish)
- Masoud Abkenar (Persian)
- Taloran (Norwegian Nynorsk)
- Akarshan Biswas (Bengali)
- Alessandro Levati (Italian)
- Emyn Nant Nefydd (Welsh)
- Marek ฤฝach (Slovak)
- ThibG (French; Icelandic)
- Bertil Hedkvist (Swedish)
- Roby Thomas (Malayalam)
- Bharat Kumar (Hindi)
- lamnatos (Greek)
- christalleras (Norwegian Nynorsk)
- ariasuni (Esperanto; French)
- Osoitz (Basque)
- Mathias B. Vagnes (Norwegian)
- dashersyed (Urdu)
- Acolyte (Ukrainian)
- Jeroen (Dutch)
- Conight Wang (Chinese Simplified)
- Damjan Dimitrioski (Macedonian)
- Diluns (Occitan)
- jaranta (Finnish)
- Isis (Swedish)
- Aditoo17 (Czech)
- borys_sh (Ukrainian)
- Jess Rafn (Danish)
- Tiago Epifรขnio (Portuguese)
- norayr (Armenian)
- jmontane (Catalan)
- Alix Rossi (Corsican)
- Arunmozhi (Tamil)
- Balรกzs Meskรณ (Hungarian)
- PPNplus (Thai)
- FรฉdiQuรฉbec (French)
- ๐ Marcin Mikoลajczak (Polish)
- marzuquccen (Kabyle)
- koyu (German)
- Zoltรกn Gera (Hungarian)
- cybergene (Japanese)
- ๐ Laura (Polish)
- andruhov (Ukrainian; Russian)
- Sam Tux (Bengali)
- ๆฃฎใฎๅญใชในใฎใใผใณใฎๅคงๅ้บ (Japanese)
- Kinshuk Sunil (Hindi)
- Ullas Joseph (Malayalam)
- Roboron (Spanish)
- ๐ Stasiek Michalski (Polish)
- Yu-Pai Liu (Chinese Traditional)
- Amarin Cemthong (Thai)
- Rikard Linde (Swedish)
- Tagomago (Spanish; French)
- Ryo (Korean)
- carolinagiorno (Portuguese, Brazilian)
- Rajarshi Guha (Bengali)
- Yi-Jyun Pan (Chinese Traditional)
- EPEMA (German)
- Dewi (Breton; French)
- Parthan S Ramanujam (Tamil)
- Maya Minatsuki (Japanese)
- Kasper Nymand (Danish)
- Saederup92 (Danish)
- d5Ziif3K (Ukrainian)
- Ram varma (Tamil)
- Hrach Mkrtchyan (Armenian)
- kekkepikkuni (Tamil)
- oorsutri (Tamil)
- Nithin V (Tamil)
- Guillaume Turchini (French)
- Ganesh D (Marathi)
- arethsu (Swedish)
- Sokratis Alichanidis (Greek)
- Pedro Henrique (Portuguese, Brazilian)
- Tejas Harad (Marathi)
- ฯ๏ญโโ๏ญฮฑ (Spanish)
- Vasanthan (Tamil)
- Goudarz Jafari (Persian)
- manukp (Malayalam)
- earth dweller (Marathi)
- meijerivoi (Finnish)
- essaar (Tamil)
- ใใใผใญ (Japanese)
- valarivan (Tamil)
- Miro Rauhala (Finnish)
- Ivan T. (Chinese Traditional, Hong Kong)
- ๐ Karol Kosek (Polish)
- Bottle (Tamil)
- Cutls (Japanese)
- serubeena (Swedish)
- gowthamanb (Tamil)
- Arttu Ylhรคvuori (Finnish)
- Ali Demirtaล (Turkish)
- SKELET (Danish)
- enipra (Armenian)
- Balรกzs Meskรณ (Hungarian)
- diazepan (Spanish, Argentina)
- ybardapurkar (Marathi)
- rasheedgm (Kannada)
- Navjot Singh (Hindi)
- Ozai (German)
- ALEM FARID (Kabyle)
- se7entime (Indonesian)
- Siddhartha Sarathi Basu (Bengali)
- Steven Tappert (German)
- Rhys Harrison (Esperanto)
- turtle836 (German)
- Guru Prasath Anandapadmanaban (Tamil)
- Daniel Dimitrov (Bulgarian)
- GatoOscuro (Spanish)
- Lamin (Japanese)
- Feruz Oripov (Russian)
- frumble (German)
- tykayn (French)
- hg6 (Hindi)
- Malik Mann (German)
- padulafacundo (Spanish)
- Belkacem Mohammed (Kabyle)
- cenegd (Chinese Simplified)
- Gargron (German; Galician)
- Hinaloe (Japanese)
- Muha Aliss (Turkish)
- AmazighNM (Kabyle)
- parnikkapore (Thai)
- Jothipazhani Nagarajan (Tamil)
- sabri (Spanish; Spanish, Argentina)
- hallomaurits (Dutch)
- mynameismonkey (Welsh)
- liffon (Swedish)
- Vanege (Esperanto)
- Daniel M. (Catalan)
- Swati Sani
- ็กซ้ ธ้ถ (Japanese)
- Jaz-Michael King (Welsh)
- Kk (Kannada)
- Shrinivasan T (Tamil)
- Ray (Spanish)
- Zinkokooo (Basque)
- SusVersiva (Catalan)
- Vikatakavi (Kannada)
- Sahak Petrosyan (Armenian)
- tsundoker (Malayalam)
- Selyan Slimane AMIRI (Kabyle)
- prabhjot (Hindi)
- Livingston Samuel (Tamil)
- Ricardo Colin (Spanish)
- ralozkolya (Georgian)
- Anoop (Malayalam)
- Aymeric (French)
- Samir Tighzert (Kabyle)
- Trond Boksasp (Norwegian)
- koppe-pan (Japanese)
- Miquel Sabatรฉ Solร (Catalan)
- Sais Lakshmanan (Tamil)
- Matias Lavik (Norwegian Nynorsk)
- Mohammad Adnan Mahmood (Arabic)
- Amith Raj Shetty (Kannada)
- smedvedev (Russian)
- mikel (Spanish)