Skip to content

v3.1.0

Compare
Choose a tag to compare
@Gargron Gargron released this 08 Feb 23:47

Mastodon

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: and xmpp 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 to tootctl 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 when object 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 without href (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 to PUT /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> without href 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 then apt install nodejs
  • Install dependencies: bundle install and yarn install

Both Docker and non-Docker:

  1. 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
  3. 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)