Mastodon v3.2.0.rc2 Release Notes
Release Date: 2020-07-24 // over 3 years ago-
Note: This is a release candidate. It is intended to be stable, but not guaranteed.
๐ Changelog
โ Added
- โ Add
SMTP_SSL
environment variable (OmmyZhang) - โ Add hotkey for toggling content warning input in web UI (ThibG)
- โ Add e-mail-based sign in challenge for users with disabled 2FA (Gargron)
- If user tries signing in after:
- Being inactive for a while
- With a previously unknown IP
- Without 2FA being enabled
- Require to enter a token sent via e-mail before sigining in
- โ Add
limit
param to RSS feeds (noellabo) - โ Add
visibility
param to share page (noellabo) - โ Add blurhash to link previews (ThibG, ThibG, ThibG, Sasha-Sorokin, Sasha-Sorokin, ThibG, ThibG, ThibG)
- In web UI, toots cannot be marked as sensitive unless there is media attached
- However, it's possible to do via API or ActivityPub
- Thumnails of link previews of such posts now use blurhash in web UI
- The Card entity in REST API has a new
blurhash
attribute
- โ Add support for
summary
field for media description in ActivityPub (ThibG) - โ Add hints about incomplete remote content to web UI (Gargron, noellabo)
- โ Add personal notes for accounts (ThibG, Gargron, Sasha-Sorokin)
- To clarify, these are notes only you can see, to help you remember details
- Notes can be viewed and edited from profiles in web UI
- New REST API:
POST /api/v1/accounts/:id/note
withcomment
param - The Relationship entity in REST API has a new
note
attribute
- โ Add Helm chart (dunn, dunn, dunn)
- โ Add customizable thumbnails for audio and video attachments (Gargron, Gargron, Gargron, Gargron, ThibG, ThibG, noellabo, noellabo)
- Metadata (album, artist, etc) is no longer stripped from audio files
- Album art is automatically extracted from audio files
- Thumbnail can be manually uploaded for both audio and video attachments
- Media upload APIs now support
thumbnail
param - On
POST /api/v1/media
andPOST /api/v2/media
- And on
PUT /api/v1/media/:id
- ActivityPub representation of media attachments represents custom thumbnails with an
icon
attribute - The Media Attachment entity in REST API now has a
preview_remote_url
to itspreview_url
, equivalent toremote_url
to itsurl
- โ Add color extraction for thumbnails (Gargron, ThibG)
- The
meta
attribute on the Media Attachment entity in REST API can now have acolors
attribute which in turn contains three hex colors:background
,foreground
, andaccent
- The background color is chosen from the most dominant color around the edges of the thumbnail
- The foreground and accent colors are chosen from the colors that are the most different from the background color using the CIEDE2000 algorithm
- The most satured color of the two is designated as the accent color
- The one with the highest W3C contrast is designated as the foreground color
- If there are not enough colors in the thumbnail, new ones are generated using a monochrome pattern
- The
- โ Add a visibility indicator to toots in web UI (noellabo, highemerly)
- Add
tootctl email_domain_blocks
(tateisu, Gargron) - โ Add "Add new domain block" to header of federation page in admin UI (ariasuni)
- โ Add ability to keep emoji picker open with ctrl+click in web UI (bclindner, noellabo)
- โ Add custom icon for private boosts in web UI (ThibG)
- โ Add support for Create and Update activities that don't inline objects in ActivityPub (ThibG)
- โ Add support for Undo activities that don't inline activities in ActivityPub (ThibG)
๐ Changed
- ๐ Change
.env.production.sample
to be leaner and cleaner (Gargron)- It was overloaded as de-facto documentation and getting quite crowded
- Defer to the actual documentation while still giving a minimal example
- ๐ Change
tootctl search deploy
to work faster and display progress (Gargron) - ๐ Change User-Agent of link preview fetching service to include "Bot" (Gargron)
- Some websites may not render OpenGraph tags into HTML if that's not the case
- ๐ Change behaviour to carry blocks over when someone migrates their followers (ThibG)
- ๐ Change volume control and download buttons in web UI (Gargron)
- ๐ Change design of audio players in web UI (Gargron, ThibG, Gargron, ThibG, Gargron, ThibG)
- ๐ Change reply filter to never filter own toots in web UI (ThibG)
- ๐ Change boost button to no longer serve as visibility indicator in web UI (noellabo, ThibG)
- ๐ Change contrast of flash messages (cchoi12)
- ๐ Change wording from "Hide media" to "Hide image/images" in web UI (ariasuni)
- ๐ Change appearence of settings pages to be more consistent (ariasuni)
- ๐ Change "Add media" tooltip to not include long list of formats in web UI (ariasuni)
- ๐ Change how badly contrasting emoji are rendered in web UI (leo60228, ThibG, mfmfuyu, ThibG)
- ๐ Change structure of unavailable content section on about page (ariasuni)
- ๐ Change behaviour to accept ActivityPub activities relayed through group actor (noellabo)
- ๐ Change amount of processing retries for ActivityPub activities (noellabo)
โ Removed
- โ Remove the terms "blacklist" and "whitelist" from UX (Gargron, mayaeh)
- Environment variables changed (old versions continue to work):
WHITELIST_MODE
โLIMITED_FEDERATION_MODE
EMAIL_DOMAIN_BLACKLIST
โEMAIL_DOMAIN_DENYLIST
EMAIL_DOMAIN_WHITELIST
โEMAIL_DOMAIN_ALLOWLIST
- CLI option changed:
tootctl domains purge --whitelist-mode
โtootctl domains purge --limited-federation-mode
- โ Remove some unnecessary database indices (lfuelling, noellabo)
- โ Remove unnecessary Node.js version upper bound (ykzts)
๐ Fixed
- ๐ Fix sometimes occuring duplicate mention notifications (noellabo)
- ๐ Fix RSS feeds not being cachable (ThibG)
- ๐ Fix lack of locking around processing of Announce activities in ActivityPub (noellabo)
- ๐ Fix boosted toots from blocked account not being retroactively removed from TL (ThibG)
- ๐ Fix large shortened numbers (like 1.2K) using incorrect pluralization (Sasha-Sorokin)
- ๐ Fix streaming server trying to use empty password to connect to Redis when
REDIS_PASSWORD
is given but blank (ThibG) - ๐ Fix being unable to unboost posts when blocked by their author (ThibG)
- ๐ Fix account domain block not properly unfollowing accounts from domain (Gargron)
- ๐ Fix removing a domain allow wiping known accounts in open federation mode (ThibG)
- ๐ Fix blocks and mutes pagination in web UI (ThibG)
- ๐ Fix new posts pushing down origin of opened dropdown in web UI (ThibG, ThibG)
- ๐ Fix timeline markers not being saved sometimes (ThibG, ThibG, ThibG)
- ๐ Fix CSV uploads being rejected (noellabo)
- ๐ Fix incompatibility with ElasticSearch 7.x (noellabo)
- ๐ Fix being able to search posts where you're in the target audience but not actively mentioned (noellabo)
- ๐ Fix non-local posts appearing on local-only hashtag timelines in web UI (noellabo)
- ๐ Fix
tootctl media remove-orphans
choking on unknown files in storage (Gargron) - ๐ Fix
tootctl upgrade storage-schema
misbehaving (Gargron, angristan)- Fix it marking records as upgraded even though no files were moved
- Fix it not working with S3 storage
- Fix it not working with custom emojis
- ๐ Fix GIF reader raising incorrect exceptions (ThibG)
- ๐ Fix hashtag search performing account search as well (ThibG)
- ๐ Fix Webfinger returning wrong status code on malformed or missing param (ThibG)
- ๐ Fix
rake mastodon:setup
error when some environment variables are set (ThibG) - ๐ Fix admin page crashing when trying to block an invalid domain name in admin UI (ThibG)
- ๐ Fix unsent toot confirmation dialog not popping up in single column mode in web UI (ThibG)
- ๐ Fix performance of follow import (noellabo)
- Reduce timeout of Webfinger requests to that of other requests
- Use circuit breakers to stop hitting unresponsive servers
- Avoid hitting servers that are already known to be generally unavailable
- ๐ Fix filters ignoring media descriptions (BenLubar)
- ๐ Fix some actions on custom emojis leading to cryptic errors in admin UI (ThibG)
- ๐ Fix ActivityPub serialization of replies when some of them are URIs (ThibG)
- ๐ Fix
rake mastodon:setup
choking on environment variables containing%
(ThibG) - ๐ Fix account redirect confirmation message talking about moved followers (ThibG)
- ๐ Fix avatars having the wrong size on public detailed status pages (ThibG)
- ๐ Fix various issues around OpenGraph representation of media (Gargron)
- Pages containing audio no longer say "Attached: 1 image" in description
- Audio attachments now represented as OpenGraph
og:audio
- The
twitter:player
page now uses Mastodon's proper audio/video player - Audio/video buffered bars now display correctly in audio/video player
- Volume and progress bars now respond to movement/move smoother
- ๐ Fix audio/video/images/cards not reacting to window resizes in web UI (Gargron)
- ๐ Fix very wide media attachments resulting in too thin a thumbnail in web UI (ThibG)
- ๐ Fix crash when merging posts into home feed after following someone (ThibG)
- ๐ Fix unique username constraint for local users not being enforced in database (ThibG)
- ๐ Fix unnecessary gap under video modal in web UI (mfmfuyu)
- ๐ Fix 2FA and sign in token pages not respecting user locale (mfmfuyu)
- Fix unapproved users being able to view profiles when in limited-federation mode and requiring approval for sign-ups (ThibG)
- ๐ Fix initial audio volume not corresponding to what's displayed in audio player in web UI (ThibG)
- ๐ Fix timelines sometimes jumping when closing modals in web UI (ThibG)
- ๐ Fix memory usage of downloading remote files (Gargron, Gargron, noellabo)
- Don't read entire file (up to 40 MB) into memory
- Read and write it to temp file in small chunks
- ๐ Fix inconsistent account header padding in web UI (trwnh)
- ๐ Fix Thai being skipped from language detection (Sasha-Sorokin)
- Since Thai has its own alphabet, it can be detected more reliably
- ๐ Fix broken hashtag column options styling in web UI (ThibG)
- ๐ Fix pointer cursor being shown on toots that are not clickable in web UI (arielrodrigues)
- ๐ Fix lock icon not being shown when locking account in profile settings (ThibG)
- ๐ Fix domain blocks doing work the wrong way around (ThibG)
- Instead of suspending accounts one by one, mark all as suspended first (quick)
- Only then proceed to start removing their data (slow)
- Clear out media attachments in a separate worker (slow)
โฌ๏ธ 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:
- Install dependencies:
bundle install
andyarn install
- โก๏ธ โ ๏ธ No longer compatible with ElasticSearch <6.8 due to an upstream library update
๐ณ Both Docker and non-Docker:
๐ฑ โ ๏ธ If you are serving user-uploaded files from a differet domain/subdomain than the one the Mastodon web UI is served from, please keep in mind that you need to return CORS headers on those files, otherwise the new audio player will not work. Here is an example of nginx directives for returning the appropriate CORS headers:
add\_header 'Access-Control-Allow-Origin''\*';
Some object storage providers may have preferences for such CORS headers in their control panels.
- 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
- Clear cache:
- Non-Docker:
RAILS_ENV=production bin/tootctl cache clear
- Docker:
docker-compose run --rm web bin/tootctl cache clear
- Non-Docker:
Translators
- Duy (Vietnamese)
- stan ionut (Romanian)
- Besnik_b (Albanian)
- Emanuel Pina (Portuguese)
- regulartranslator (Portuguese, Brazilian)
- ButterflyOfFire (Arabic; Kabyle; French)
- adrmzz (Sardinian)
- FรฉdiQuรฉbec (French)
- GiorgioHerbie (Italian)
- ๐ Marcin Mikoลajczak (Polish)
- ariasuni (French; Esperanto)
- Thai Localization (Thai)
- ๅฅๅๆ (Chinese Simplified)
- Mentor Gashi (Albanian)
- Xosรฉ M. (Galician)
- axi (Finnish)
- Selyan Slimane AMIRI (Kabyle)
- Alix Rossi (Corsican)
- Jeroen (Dutch)
- SteinarK (Norwegian Nynorsk)
- ThonyVezbe (Breton)
- Hrach Mkrtchyan (Armenian)
- Gwenn (Breton)
- แฆแแขแตแซ ๐ท (Spanish, Argentina)
- Danial Behzadi (Persian)
- spla (Catalan)
- Rafael H L Moretti (Portuguese, Brazilian)
- Jeong Arm (Korean; Esperanto)
- koyu (German)
- Yi-Jyun Pan (Chinese Traditional)
- norayr (Armenian)
- Alessandro Levati (Italian)
- Sasha Sorokin (Russian; Catalan; Greek; Hungarian; Armenian; Albanian; Galician)
- gagik_ (Armenian)
- lamnatos (Greek)
- Sveinn รญ Felli (Icelandic)
- Zoltรกn Gera (Hungarian)
- cybergene (Japanese)
- Tagomago (Spanish)
- Michal Stanke (Czech)
- borys_sh (Ukrainian)
- Ramdziana F Y (Indonesian)
- Osoitz (Basque)
- Maya Minatsuki (Japanese)
- William(ั)โฟ (Spanish)
- BurekzFinezt (Serbian)
- Evert Prants (Estonian)
- ThibG (French)
- Dewi (Breton)
- Emyn-Russell Nt Nefydd (Welsh)
- vishnuvaratharajan (Tamil)
- tolstoevsky (Russian)
- Diluns (Occitan)
- Falling Snowdin (Vietnamese)
- Marek ฤฝach (Slovak)
- Balรกzs Meskรณ (Hungarian)
- Ryo (Korean)
- Roboron (Spanish)
- StanleyFrew (French)
- PPNplus (Thai)
- Heimen Stoffels (Dutch)
- Andrew (Romanian)
- Ivรกns (Galician)
- Carlos Solรญs (Esperanto)
- Sokratis Alichanidis (Greek)
- TS (Finnish)
- SensDeViata (Ukrainian)
- AzureNya (Chinese Simplified)
- OctolinGamer (Portuguese, Brazilian)
- ๅไๅฆๆณ (Japanese)
- ๐ Laura (Polish)
- Imre Kristoffer Eilertsen (Norwegian)
- Rikard Linde (Swedish)
- Ali Demirtaล (Turkish)
- diorama (Italian)
- Daniele Lira Mereb (Portuguese, Brazilian)
- Goudarz Jafari (Persian)
- psymyn (Hebrew)
- v4vachan (Malayalam)
- Sebastiรกn Andil (Slovak)
- Khรณo (Chinese Traditional)
- ZiriSut (Kabyle)
- strubbl (German)
- Reg3xp (Persian)
- AlexKoala (Korean)
- VSx86 (Russian)
- Mo_der Steven (Chinese Simplified)
- musix (Persian)
- ใฎใฃใฉ (Chinese Simplified; Japanese)
- Saederup92 (Danish)
- mynameismonkey (Welsh)
- omquylzu (Latvian)
- Miro Rauhala (Finnish)
- ็กซ้ ธ้ถ (Japanese)
- siamano (Thai; Esperanto)
- Viorel-Cฤtฤlin Rฤpiศeanu (Romanian)
- Pachara Chantawong (Thai)
- Balรกzs Meskรณ (Hungarian)
- Steven Tappert (German)
- Unmual (Spanish)
- Zijian Zhao (Chinese Simplified)
- Skew (French)
- enolp (Asturian)
- Yann Aguettaz (French)
- Mick Onio (Asturian)
- r3dsp1 (Chinese Traditional, Hong Kong)
- Tianqi Zhang (Chinese Simplified)
- piupiupiudiu (Chinese Simplified)
- Padraic Calpin (Slovenian)
- ใใใผใญ (Japanese)
- Belkacem Mohammed (Kabyle)
- Miquel Sabatรฉ Solร (Catalan)
- serubeena (Swedish)
- Solid Rhino (Dutch)
- Rintan (Japanese)
- ๆๆฐดๆบถ (Chinese Simplified)
- Tagada (French)
- shafouz (Portuguese, Brazilian)
- Tom_ (Czech)
- OminousCry (Russian)
- ALEM FARID (Kabyle)
- Nathaรซl Noguรจs (French)
- Robin van der Vliet (Esperanto)
- twpenguin (Chinese Traditional)
- Paz Galindo (Spanish)
- ๅคๆฅYoka (Chinese Simplified)
- ๐ mkljczk (Polish)
- kiwi0 (Italian)
- Esther (Portuguese)
- Renato "Lond" Cerqueira (Portuguese, Brazilian)
- ๐ igordrozniak (Polish)
- Philipp Fischbeck (German)
- GaggiX (Italian)
- Allen Zhong (Chinese Simplified)
- Albatroz Jeremias (Portuguese)
- Nocta (French)
- pezcurrel (Italian)
- Aditoo17 (Czech)
- ๆฃฎใฎๅญใชในใฎใใผใณใฎๅคงๅ้บ (Japanese)
- Doug (Portuguese, Brazilian)
- Fleva (Sardinian)
- โ Add