Skip to content

@Gargron Gargron released this Oct 3, 2019 · 56 commits to master since this release


Note: This is a release candidate. It is intended to be stable, but not guaranteed.



  • Add scrolling to the search bar on focus in web UI (Kjwon15)
  • Add refresh button to list of rebloggers/favouriters in web UI (Gargron)
  • Add error description and button to copy stack trace to web UI (Gargron)
  • Add parallelization to tootctl search deploy (noellabo)
  • Add new languages (Gargron)
    • Breton
    • Spanish (Argentina)
    • Estonian
    • Macedonian
    • New Norwegian
  • Add NodeInfo endpoint (Gargron, Gargron)


  • Change link preview fetcher to not perform a HEAD request first (Gargron)
  • Change tootctl domains purge to accept multiple domains at once (Gargron)


  • Fix n+1 query when approving multiple follow requests (abcang)
  • Fix records not being indexed into ElasticSearch sometimes (Gargron)
  • Fix needlessly indexing unsearchable statuses into ElasticSearch (Gargron)
  • Fix new user bootstrapping crashing when to-be-followed accouns are invalid (ThibG)
  • Fix featured hashtag URL being interpreted as media or with_replies (Gargron)
  • Fix account counters being overwritten by parallel writes (Gargron)


  • Fix performance of GIF re-encoding and always strip EXIF data from videos (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.6.4. You can upgrade, or you can continue using the old version by overwriting the .ruby-version file with e.g. 2.6.1 or 2.5.3 which were recommended previously
  • Install dependencies: bundle install and yarn 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
  3. Restart all Mastodon processes
  4. 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
  6. Restart all Mastodon processes
  7. If you are using ElasticSearch, there are new indices to be deployed (this step is likely to take a considerable amount of time, so running it through screen or tmux is advisable):
    • Non-Docker: RAILS_ENV=production bin/tootctl search deploy
    • Docker: docker-compose run --rm web bin/tootctl search deploy


  • Zoltán Gera (Hungarian)
  • Kristijan Tkalec (Slovenian)
  • Evert Prants (Estonian)
  • borys_sh (Ukrainian)
  • Muha Aliss (Turkish)
  • 唐宗勛 (Chinese Simplified)
  • Jeong Arm (Korean; Esperanto; Japanese)
  • Roboron (Spanish)
  • Osoitz (Basque)
  • ButterflyOfFire (French; Arabic)
  • Alix Rossi (Corsican; French)
  • Aditoo17 (Czech)
  • Masoud Abkenar (Persian)
  • Xosé M. (Galician)
  • Koyu Berteon (German)
  • Maya Minatsuki (Japanese)
  • d5Ziif3K (Ukrainian)
  • Thai Localization (Thai)
  • Marek Ľach (Slovak; Polish)
  • lamnatos (Greek)
  • atarashiako (Chinese Simplified)
  • 101010 (Polish)
  • Jeroen (Dutch)
  • silkevicious (Italian)
  • Diluns (Occitan)
  • Jaz-Michael King (Welsh)
  • spla (Catalan)
  • FédiQuébec (French)
  • tykayn (French)
  • carolinagiorno (Portuguese, Brazilian)
  • Alessandro Levati (Italian)
  • taoxvx (Danish)
  • shioko (Chinese Simplified)
  • Yi-Jyun Pan (Chinese Traditional)
  • Emyn Nant Nefydd (Welsh)
  • Sasha Sorokin (Russian)
  • Tiago Epifânio (Portuguese)
  • dxwc (Bengali)
  • liffon (Swedish)
  • Vanege (Esperanto)
  • kat (Ukrainian; Russian)
  • oti4500 (Hungarian; Ukrainian)
  • Juan José Salvador Piedra (Spanish)
  • diazepan (Spanish)
  • christalleras (Norwegian Nynorsk)
  • Saederup92 (Danish)
  • sabri (Spanish)
  • Stasiek Michalski (Polish)
  • Dewi (Breton; French)
  • oɹʇuʞ (Spanish, Argentina)
  • ariasuni (French)
  • AW Unad (Indonesian)
  • Ray (Spanish)
  • Unmual (Spanish)
  • Ryo (Korean)
  • juanda097 (Spanish)
  • ruine (Japanese)
  • MadeInSteak (Finnish)
  • frumble (German)
  • dragnucs2 (Arabic)
  • erikstl (Esperanto)
  • PPNplus (Thai)
  • EPEMA YT (German)
  • Rhys Harrison (Esperanto)
  • KEINOS (Japanese)
  • JzshAC (Chinese Simplified)
  • Rintan1 (Japanese)
  • hiphipvargas (Portuguese)
  • tctovsli (Norwegian Nynorsk)
  • SamitiMed (Thai)
  • vjasiegd (Polish)
  • Adrián Lattes (Spanish)
  • Renato "Lond" Cerqueira (Portuguese, Brazilian)
  • filippodb (Italian)
  • Marcin Mikołajczak (Polish)
  • 森の子リスのミーコの大冒険 (Japanese)
  • Hinaloe (Japanese)
  • Sahak Petrosyan (Armenian)
  • Daniel Dimitrov (Bulgarian)
  • Hugh Liu (Chinese Simplified)
  • Rakino (Chinese Simplified)
  • SnDer (Dutch)
  • eichkat3r (German)
  • Karol Kosek (Polish)
  • Akarshan Biswas (Bengali)
  • Tradjincal (French)
  • sergioaraujo1 (Portuguese, Brazilian)
  • mmokhi (Persian)
  • Evgeny Petrov (Russian)
  • JackXu (Chinese Simplified)
  • Zoé Bőle (German)
  • Lukas Fülling (German)
  • Dremski (Bulgarian)
  • cybergene (Japanese)
  • OpenAlgeria (Arabic)
  • 硫酸鶏 (Japanese)
  • Cutls (Japanese)
  • Ch. (Korean)
  • skaaarrr (German)
  • djoerd (Dutch)
  • さっかりんにーさん (Japanese)
  • Abijeet Patro (Basque)
Assets 2
You can’t perform that action at this time.