Releases: mastodon/mastodon
v4.0.0
Upgrade overview
This release contains upgrade notes that deviate from the norm:
ℹ️ Requires two-step database migration process for zero-downtime deployment
ℹ️ Some migrations may take a long time to run
ℹ️ Behaviour of AUTHORIZED_FETCH
changed
ℹ️ Requires review of Sidekiq queues in some setups (new queue: ingress
)
ℹ️ Some server settings, like thumbnail, short description, and so on, changed and may need to be looked at
For more information, scroll down to the upgrade instructions section.
Changelog
Some of the features in this release have been funded through the NGI0 Discovery Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 825322.
Added
- Add ability to filter followed accounts' posts by language (Gargron, ClearlyClaire)
- Add ability to follow hashtags (Gargron, Gargron, Gargron, noellabo)
- Add ability to filter individual posts (ClearlyClaire)
- Add ability to translate posts (Gargron, ClearlyClaire, Gargron, ClearlyClaire, Gargron, ykzts, Gargron)
- Add featured tags to web UI (noellabo, noellabo, noellabo, noellabo, Gargron, ykzts, noellabo, noellabo, Gargron, Gargron, ClearlyClaire)
- Add support for language preferences for trending statuses and links (Gargron, Gargron, ykzts)
- Previously, you could only see trends in your current language
- For less popular languages, that meant empty trends
- Now, trends in your preferred languages' are shown on top, with others beneath
- Add server rules to sign-up flow (Gargron)
- Add privacy icons to report modal in web UI (ClearlyClaire)
- Add
noopener
to links to remote profiles in web UI (shleeable) - Add option to open original page in dropdowns of remote content in web UI (Gargron)
- Add warning for sensitive audio posts in web UI (rgroothuijsen)
- Add language attribute to posts in web UI (tribela)
- Add support for uploading WebP files (Saiv46)
- Add support for uploading
audio/vnd.wave
files (tribela) - Add support for uploading AVIF files (txt-file)
- Add support for uploading HEIC files (Gargron)
- Add more debug information when processing remote accounts (ClearlyClaire, ClearlyClaire)
- Add retention policy for cached content and media (Gargron, zunda, Gargron, Gargron)
- Set for how long remote posts or media should be cached on your server
- Hands-off alternative to
tootctl
commands
- Add customizable user roles (Gargron, ClearlyClaire, Gargron, tribela, tribela, ClearlyClaire, ClearlyClaire, unextro, tribela, ClearlyClaire)
- Previously, there were 3 hard-coded roles, user, moderator, and admin
- Create your own roles and decide which permissions they should have
- Add notifications for new reports (Gargron, Gargron)
- Add ability to select all accounts matching search for batch actions in admin UI (Gargron, Gargron)
- Add ability to view previous edits of a status in admin UI (Gargron)
- Add ability to block sign-ups from IP (Gargron)
- Add webhooks to admin UI (Gargron)
- Add admin API for managing domain allows (ClearlyClaire)
- Add admin API for managing domain blocks (ClearlyClaire)
- Add admin API for managing e-mail domain blocks (Gargron)
- Add admin API for managing canonical e-mail blocks (Gargron)
- Add admin API for managing IP blocks (Gargron, trwnh)
- Add
sensitized
attribute to accounts in admin REST API (trwnh) - Add
services
andmetadata
to the NodeInfo endpoint (MFTabriz) - Add
--remove-role
option totootctl accounts modify
(Gargron) - Add
--days
option totootctl media refresh
(tribela) - Add
EMAIL_DOMAIN_LISTS_APPLY_AFTER_CONFIRMATION
environment variable (ClearlyClaire) - Add
IP_RETENTION_PERIOD
andSESSION_RETENTION_PERIOD
environment variables (kescherCode) - Add
http_hidden_proxy
environment variable (tribela) - Add
SMTP_ENABLE_STARTTLS
environment variable (erbridge) - Add caching for payload serialization during fan-out (ClearlyClaire, Gargron, ClearlyClaire, ClearlyClaire, ClearlyClaire)
- Add assets from Twemoji 14.0 (Gargron)
- Add reputation and followers score boost to SQL-only account search (Gargron)
- Add Scots, Balaibalan, Láadan, Lingua Franca Nova, Lojban, Toki Pona to languages list (VyrCossont)
- Set autocomplete hints for e-mail, password and OTP fields (rcombs, offbyone, ClearlyClaire)
- Add support for DigitalOcean Spaces in setup wizard (v-aisac)
Changed
- Change brand color and logotypes (Gargron, Gargron, Gargron, ClearlyClaire, Gargron, mayaeh)
- Change post editing to be enabled in web UI (Gargron)
- Change web UI to work for logged-out users ([Gargron](https://github.co...
v4.0.0rc4
Note: This is a release candidate. It is intended to be stable, but not guaranteed.
For all notes, see v4.0.0rc1. This update includes a variety of fixes and improvements. Upgrading from v4.0.0rc3 requires a code update, assets precompilation, and a web process reload/restart.
v3.5.5
This is a backport for the 3.5.x branch.
Changelog
Fixed
- Fix nodes order being sometimes mangled when rewriting emoji (ClearlyClaire)
Upgrade notes
Because this is a backport, it is not available with git pull
. Use git fetch && git checkout v3.5.5
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
Dependencies
External dependencies have not changed compared to v3.5.3, the compatible Ruby, PostgreSQL, Node, Elasticsearch and Redis versions are the same, that is:
- Ruby: 2.6 to 3.0
- PostgreSQL: 9.5 or newer
- Elasticsearch (optional, for full-text search): 7.x
- Redis: 4 or newer
- Node: 12.22 or newer
Update steps
The following instructions are for updating from 3.5.3.
If you are upgrading directly from an earlier release, please carefully read the upgrade notes for the skipped releases as well, as they often require extra steps such as database migrations or dependency updates.
Non-Docker
- Pull the code:
git fetch && git checkout v3.5.5
- Rebuild assets:
RAILS_ENV=production bundle exec rails assets:precompile
- Restart
mastodon-web
andmastodon-sidekiq
:
systemctl reload mastodon-web
systemctl restart mastodon-sidekiq
Docker
The exact steps depend on your setup, but they are likely to match the following:
- Pull the code:
git fetch && git checkout v3.5.5
- Pull the prebuilt images:
docker-compose pull
, or, alternatively, build them yourself:docker-compose build --pull
- Restart all Mastodon processes:
docker-compose up -d
v3.5.4
This is a backport for the 3.5.x branch.
Changelog
Fixed
- Fix error when a remote report includes a private post the server has no access to (ClearlyClaire)
Security
- Fix emoFix emoji substitution not applying only to text nodes in backend code (ClearlyClaire)
- Fix emoji substitution not applying only to text nodes in Web UI (ClearlyClaire)
- Fix rate limiting for paths with formats (Gargron)
- Fix out-of-bound reads in blurhash transcoder (delroth)
Upgrade notes
Because this is a backport, it is not available with git pull
. Use git fetch && git checkout v3.5.4
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
Dependencies
External dependencies have not changed compared to v3.5.3, the compatible Ruby, PostgreSQL, Node, Elasticsearch and Redis versions are the same, that is:
- Ruby: 2.6 to 3.0
- PostgreSQL: 9.5 or newer
- Elasticsearch (optional, for full-text search): 7.x
- Redis: 4 or newer
- Node: 12.22 or newer
Update steps
The following instructions are for updating from 3.5.3.
If you are upgrading directly from an earlier release, please carefully read the upgrade notes for the skipped releases as well, as they often require extra steps such as database migrations or dependency updates.
Non-Docker
- Pull the code:
git fetch && git checkout v3.5.4
- Rebuild assets:
RAILS_ENV=production bundle exec rails assets:precompile
- Restart
mastodon-web
andmastodon-sidekiq
:
systemctl reload mastodon-web
systemctl restart mastodon-sidekiq
Docker
The exact steps depend on your setup, but they are likely to match the following:
- Pull the code:
git fetch && git checkout v3.5.4
- Pull the prebuilt images:
docker-compose pull
, or, alternatively, build them yourself:docker-compose build --pull
- Restart all Mastodon processes:
docker-compose up -d
v3.4.10
This is a backport for the 3.4.x branch.
Changelog
Fixed
- Fix nodes order being sometimes mangled when rewriting emoji (ClearlyClaire)
Upgrade notes
Because this is a backport, it is not available with git pull
. Use git fetch && git checkout v3.4.10
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
Dependencies
External dependencies have not changed compared to v3.4.7, the compatible Ruby, PostgreSQL, Node, Elasticsearch and Redis versions are the same, that is:
- Ruby: 2.6 to 3.0
- PostgreSQL: 9.5 or newer
- Elasticsearch (optional, for full-text search): 5.x, 6.x or 7.x
- Redis: 4 or newer
- Node: 12.22 or higher
Update steps
The following instructions are for updating from 3.4.8.
If you are upgrading directly from an earlier release, please carefully read the upgrade notes for the skipped releases as well, as they often require extra steps such as database migrations or dependency updates.
Non-Docker
- Pull the code:
git fetch && git checkout v3.4.10
- Rebuild assets:
RAILS_ENV=production bundle exec rails assets:precompile
- Restart
mastodon-web
andmastodon-sidekiq
:
systemctl reload mastodon-web
systemctl restart mastodon-sidekiq
Docker
The exact steps depend on your setup, but they are likely to match the following:
- Pull the code:
git fetch && git checkout v3.4.10
- Pull the prebuilt images:
docker-compose pull
, or, alternatively, build them yourself:docker-compose build --pull
- Restart all Mastodon processes:
docker-compose up -d
v3.4.9
This is a backport for the 3.4.x branch.
Changelog
Security
- Fix emoji substitution not applying only to text nodes in backend code (ClearlyClaire)
- Fix emoji substitution not applying only to text nodes in Web UI (ClearlyClaire)
- Fix rate limiting for paths with formats (Gargron)
- Fix out-of-bound reads in blurhash transcoder (delroth)
Upgrade notes
Because this is a backport, it is not available with git pull
. Use git fetch && git checkout v3.4.9
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
Dependencies
External dependencies have not changed compared to v3.4.7, the compatible Ruby, PostgreSQL, Node, Elasticsearch and Redis versions are the same, that is:
- Ruby: 2.6 to 3.0
- PostgreSQL: 9.5 or newer
- Elasticsearch (optional, for full-text search): 5.x, 6.x or 7.x
- Redis: 4 or newer
- Node: 12.22 or higher
Update steps
The following instructions are for updating from 3.4.8.
If you are upgrading directly from an earlier release, please carefully read the upgrade notes for the skipped releases as well, as they often require extra steps such as database migrations or dependency updates.
Non-Docker
- Pull the code:
git fetch && git checkout v3.4.9
- Rebuild assets:
RAILS_ENV=production bundle exec rails assets:precompile
- Restart
mastodon-web
andmastodon-sidekiq
:
systemctl reload mastodon-web
systemctl restart mastodon-sidekiq
Docker
The exact steps depend on your setup, but they are likely to match the following:
- Pull the code:
git fetch && git checkout v3.4.9
- Pull the prebuilt images:
docker-compose pull
, or, alternatively, build them yourself:docker-compose build --pull
- Restart all Mastodon processes:
docker-compose up -d
v4.0.0rc3
Note: This is a release candidate. It is intended to be stable, but not guaranteed.
Upgrade overview
This release contains upgrade notes that deviate from the norm:
ℹ️ Requires two-step database migration process for zero-downtime deployment
ℹ️ Some migrations may take a long time to run
ℹ️ Behaviour of AUTHORIZED_FETCH
changed
ℹ️ Requires review of Sidekiq queues in some setups. This also applies to updating from v4.0.0rc2
For more information, scroll down to the upgrade instructions section.
Changelog
TBD. This update includes a variety of fixes and improvements on top of v4.0.0rc1.
Upgrade notes
To get the code for v4.0.0rc3, use git fetch && git checkout v4.0.0rc3
.
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
Update steps
The following instructions are for updating from 3.5.3.
If you are upgrading directly from an earlier release, please carefully read the upgrade notes for the skipped releases as well, as they often require extra steps such as database migrations.
Non-Docker only:
- The recommended Ruby version has been bumped to 3.0.4. You can upgrade, or you can continue using the old version by overwriting the
.ruby-version
file with e.g.3.0.3
which was recommended previously - Install dependencies:
bundle install
andyarn install
Both Docker and non-Docker:
⚠️ Incoming federated activity now uses a newingress
queue in Sidekiq. If you customize Sidekiq processes/queues, ensure that there is at least one process handling theingress
queue.
- 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
- Non-Docker:
- 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
- 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
- Non-Docker:
- Restart all Mastodon processes
For all notes, see v4.0.0rc1. This update includes a variety of fixes and improvements. Upgrading from v4.0.0rc1 requires a code update, assets precompilation, and a web process reload/restart.
v4.0.0rc2
Note: This is a release candidate. It is intended to be stable, but not guaranteed.
For all notes, see v4.0.0rc1. This update fixes a performance regression in account search when not using Elasticsearch, introduced in v4.0.0rc1. Upgrading from v4.0.0rc1 requires only the code update and a web process reload/restart.
v4.0.0rc1
Note: This is a release candidate. It is intended to be stable, but not guaranteed.
Upgrade overview
This release contains upgrade notes that deviate from the norm:
ℹ️ Requires two-step database migration process for zero-downtime deployment
ℹ️ Some migrations may take a long time to run
ℹ️ Behaviour of AUTHORIZED_FETCH
changed
For more information, scroll down to the upgrade instructions section.
Changelog
Some of the features in this release have been funded through the NGI0 Discovery Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 825322.
Added
- Add ability to filter followed accounts' posts by language (Gargron, ClearlyClaire)
- Add ability to follow hashtags (Gargron, Gargron, Gargron, noellabo)
- Add ability to filter individual posts (ClearlyClaire)
- Add ability to translate posts (Gargron, ClearlyClaire, Gargron, ClearlyClaire, Gargron, ykzts, Gargron)
- Add featured tags to web UI (noellabo, noellabo, noellabo, noellabo, Gargron, ykzts, noellabo, noellabo, Gargron, Gargron)
- Add support for language preferences for trending statuses and links (Gargron, Gargron, ykzts)
- Previously, you could only see trends in your current language
- For less popular languages, that meant empty trends
- Now, trends in your preferred languages' are shown on top, with others beneath
- Add server rules to sign-up flow (Gargron)
- Add privacy icons to report modal in web UI (ClearlyClaire)
- Add
noopener
to links to remote profiles in web UI (shleeable) - Add warning for sensitive audio posts in web UI (rgroothuijsen)
- Add language attribute to posts in web UI (tribela)
- Add support for uploading WebP files (Saiv46)
- Add support for uploading
audio/vnd.wave
files (tribela) - Add support for uploading AVIF files (txt-file)
- Add support for uploading HEIC files (Gargron)
- Add more debug information when processing remote accounts (ClearlyClaire, ClearlyClaire)
- Add retention policy for cached content and media (Gargron, zunda, Gargron, Gargron)
- Set for how long remote posts or media should be cached on your server
- Hands-off alternative to
tootctl
commands
- Add customizable user roles (Gargron, ClearlyClaire, Gargron, tribela, tribela, ClearlyClaire, ClearlyClaire, unextro, tribela, ClearlyClaire)
- Previously, there were 3 hard-coded roles, user, moderator, and admin
- Create your own roles and decide which permissions they should have
- Add notifications for new reports (Gargron, Gargron)
- Add ability to select all accounts matching search for batch actions in admin UI (Gargron, Gargron)
- Add ability to view previous edits of a status in admin UI (Gargron)
- Add ability to block sign-ups from IP (Gargron)
- Add webhooks to admin UI (Gargron)
- Add admin API for managing domain allows (ClearlyClaire)
- Add admin API for managing domain blocks (ClearlyClaire)
- Add admin API for managing e-mail domain blocks (Gargron)
- Add admin API for managing canonical e-mail blocks (Gargron)
- Add admin API for managing IP blocks (Gargron)
- Add
services
andmetadata
to the NodeInfo endpoint (MFTabriz) - Add
--remove-role
option totootctl accounts modify
(Gargron) - Add
--days
option totootctl media refresh
(tribela) - Add
EMAIL_DOMAIN_LISTS_APPLY_AFTER_CONFIRMATION
environment variable (ClearlyClaire) - Add
IP_RETENTION_PERIOD
andSESSION_RETENTION_PERIOD
environment variables (kescherCode) - Add
http_hidden_proxy
environment variable (tribela) - Add caching for payload serialization during fan-out (ClearlyClaire, Gargron, ClearlyClaire, ClearlyClaire)
- Add assets from Twemoji 14.0 (Gargron)
- Add reputation and followers score boost to SQL-only account search (Gargron)
Changed
- Change brand color and logotypes (Gargron, Gargron, Gargron, ClearlyClaire, Gargron, mayaeh)
- Change post editing to be enabled in web UI (Gargron)
- Change web UI to work for logged-out users (Gargron, Gargron, Gargron, Gargron, Gargron, ykzts, Gargron, ClearlyClaire, ClearlyClaire, Gargron, Gargron, Gargron, ClearlyClaire, Gargron, Gargron, Gargron, Gargron, Gargron, ykzts, [ykzts](https://github.com/mastodon/mastodon...
v3.5.3
Changelog
Added
- Add language dropdown to compose form in web UI (Gargron, ykzts)
- Add warning for limited accounts in web UI (Gargron)
- Add
limited
attribute to accounts in REST API (Gargron)
Changed
- Change RSS feeds (Gargron, tribela)
- Titles are now date and time of post
- Bodies now render all content faithfully, including polls and emojis
- All media attachments are included with Media RSS
- Change "dangerous" to "sensitive" in privacy policy and web UI (Gargron)
- Change unconfirmed accounts to not be visible in REST API (ClearlyClaire)
- Change
tootctl search deploy
to improve performance (Gargron, Gargron) - Change search indexing to use batches to minimize resource usage (Gargron)
Fixed
- Fix follower and other counters being able to go negative (Gargron)
- Fix unnecessary query when creating a status (ClearlyClaire)
- Fix warning an account outside of a report closing all reports for that account (ClearlyClaire)
- Fix error when resolving a link that redirects to a local post (ClearlyClaire)
- Fix preferred posting language returning unusable value in REST API (Gargron)
- Fix race condition error when external status is reblogged (ykzts)
- Fix missing string for appeal validation error (Gargron)
- Fix block/mute lists showing a follow button in web UI (ClearlyClaire)
- Fix Redis configuration not being changed by
mastodon:setup
(ClearlyClaire) - Fix streaming notifications not using quick filter logic in web UI (ClearlyClaire)
- Fix ambiguous wording on appeal actions in admin UI (ClearlyClaire)
- Fix floating action button obscuring last element in web UI (ClearlyClaire)
- Fix account warnings not being recorded in audit log (ClearlyClaire)
- Fix leftover icons for direct visibility statuses (Steffo99)
- Fix link verification requiring case sensitivity on links (sgolemon)
- Fix embeds not setting their height correctly (rinsuki)
Security
- Fix concurrent unfollowing decrementing follower count more than once (Gargron)
- Fix being able to appeal a strike unlimited times (Gargron)
- Fix being able to report otherwise inaccessible statuses (Gargron)
- Fix empty votes arbitrarily increasing voters count in polls (Gargron)
- Fix moderator identity leak when approving appeal of sensitive marked statuses (Gargron)
- Fix suspended users being able to access APIs that don't require a user (Gargron)
- Fix confirmation redirect to app without
Location
header (Gargron)
Upgrade notes
To get the code for v3.5.3, use git fetch && git checkout v3.5.3
.
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
Dependencies
Dependencies have not changed. To summarize, the dependency requirements for v3.5.3 are:
- Ruby: 2.6 up to 3.0
- PostgreSQL: 9.5 or newer
- Elasticsearch (optional, for full-text search): 7.x
- Redis: 4 or newer
- Node: 12 or newer
Update steps
The following instructions are for updating from 3.5.2.
If you are upgrading directly from an earlier release, please carefully read the upgrade notes for the skipped releases as well, as they often require extra steps such as database migrations.
Non-Docker only:
- Install dependencies:
bundle install
andyarn install
Both Docker and non-Docker:
- 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