Skip to content

Releases: mastodon/mastodon

v1.4.5

23 Jun 01:53
Compare
Choose a tag to compare

Note: It is recommended to upgrade straight to 1.4.6

Fixes performance regression in 1.4.4 (#3892)

Contributors:

@akihikodaki
@foxsan48
@Gargron
@nightpool
@Quent-in
@rkarabut
@unarist

v1.4.4

20 Jun 23:53
Compare
Choose a tag to compare

Note: It is recommended to upgrade straight to 1.4.6

Fixes:

  • Whitelist allowed classes for federated statuses (no more spinning) (#3810)
  • Debounce autosuggestions (#3836)
  • Fix hashtag timelines not updating in real time (#3849)
  • Fix character/grapheme count stuff (#3839)
  • Account deletions can be disabled as an instance setting (#3852)
  • Set cursor: pointer only when necessary (#3857)
  • Clicking on the CW text should expand the status (#3855)
  • Fix RTL detection on Ruby side (#3867)
  • "NSFW" button replaced with eye icon, consistent with other UI elements for the function (#3759)
  • Filter direct statuses in Status.as_home_timeline (#3842)
  • Fix remote conversation URIs not being recorded (#3870)
  • Instead of each streaming server subscribing to all redis channels, subscribe on demand (#3828)

Upgrade notes:

Non-Docker only:

  • Dependency updates: bundle install and yarn install

Both Docker and non-Docker:

  • This release includes changes to assets, that means you need to run RAILS_ENV=production bundle exec rails assets:precompile (in Docker: docker-compose run --rm web rails assets:precompile)

Contributors:

@ThibG
@Gargron
@ykzts
@abcang
@unarist
@akihikodaki
@Quent-in
@nightpool
@nolanlawson
@alpaca-tc
@marrus-sh
@zunda
@masarakki
@noraworld
@m4sk1n
@sorin-davidoi
@deflis

v1.4.3

15 Jun 01:17
Compare
Choose a tag to compare

This is a hotfix release

Unfortunately right after v1.4.2 went out, I was informed of a regression from one of the pull requests. This wasn't noticed earlier even though it was up for testing on mastodon.social and glitch.social for a week. This is an important privacy bug (#3752) that we fixed immediately after being informed of it.

No special upgrade instructions are necessary. This release is otherwise identical to v1.4.2. Only the code needs to be updated.

v1.4.2

14 Jun 21:29
Compare
Choose a tag to compare

Fixes:

  • JS performance improvements (#3402, #3300, #3475)
  • Unauthorized websockets access returns 401 instead of closing connection (#3411)
  • Fix webpack building on Windows (#3426)
  • Fix crash in TW locale (#3459)
  • Focus submit button on boost modal (#3494)
  • Usernames and hashtags no longer have influence over language detection (#3503)
  • Update Rails from 5.0.x to 5.1.x (#3121)
  • Add missing database indices (#3510)
  • Clicking label influences the connected toggle (#3530)
  • Only push updates to streaming API for recipients who are signed in to the streaming API (#3278)
  • Bulk pushes to sidekiq (#3536)
  • Refocus textarea after tooting (#3537)
  • Fix limits param in favourites controller (#3553)
  • No-op when following an already followed account (#3575)
  • No-op when favouriting/reblogging toot that has already been favourited/reblogged (#3641)
  • Fix embed page being broken (#3577)
  • Introduce foreign key constraints (#3562)
  • Fix failing thread resolving (#3599, #3622)
  • Fix exact hashtag search (#3611)
  • Fix crash when searching for invalid URLs (#3613)
  • Don't show business e-mail if it's blank (#3619)
  • Allow class attribute on anchors during sanitization to preserve microformats (#3623)
  • Display error message if JS is disabled (#3634)
  • Fix race condition when resolving remote account (#3606)
  • Support multiple trusted proxies (#3639)
  • When language cannot be reliably detected, set it to nil instead of to default locale of instance (#3666)
  • Fix RTL styles (#3669)
  • Improve RTL detection by ignoring whitespace, usernames, URLs and hashtags (#3682)
  • Fix issue where some Node.js versions wouldn't have "includes" function and the streaming API would crash (#3667)
  • Fix case sensitive e-mail check (#3688)
  • Fix deletion of toot sending the original toot to mentioned addresses instead of the "delete" Salmon (#3672)
  • Fix incompatibility with Hubzilla Salmon slaps (#3699)
  • Fix badly positioned unread indicator in column (#3720)
  • Fix unclickable onboarding modal links (#3724)
  • Adjust quality settings of GIFs converted to MP4s to actually save space (#3723)
  • Link the project website from "powered by" links (#3725)
  • Fix content jumping on scroll sometimes (#3734)
  • While the home feed is being regenerated for a returning user, display live results from database instead of nothing (#3721)
  • Batch status deletes for performance and less cross-instance payloads, when suspending accounts (#3735)
  • Save column settings when they are changed rather than when the area is collapsed (#3743)
  • Suspended/deleted accounts no longer come up in search/autocomplete (#3728)

Features:

  • Columns can be pinned, unpinned and moved (#3207)
  • Regex filters on local and federated timelines (#3564)
  • Preference for confirmation dialog on toot deletion (#3368)
  • Simplify stylesheets customization again (#3373)
  • Configurable reserved usernames, so people can't register e.g. "admin", "support", etc (#3566)
  • Dynamic app manifest so "Add to homescreen" will use configured instance name etc (#3563)
  • Image viewer modal uses low-res preview images before full-res is loaded for immediate feedback (#3595)
  • Admin buttons to control PuSH subscription to a remote account (#3640)
  • Admin button to re-download avatar/header of remote account (#3640)
  • Account deletion (#3728)

Upgrade notes:

This release adds database-level constraints for ensure cross-referential integrity. Previously, incorrect records could have persisted due to race conditions and request timeouts in the Ruby codebase. Because Postgres cannot create the constraints if violations of the constraints already exist, I have written a rake task for cleaning up the incorrect records in the database that you should execute before the migration.

If for some reason you cannot deploy the code first without running database migrations in the process (e.g. Capistrano deployments), you can simply copypaste the code from the rake task into the Rails console and execute it that way.

Because of how Postgres executes the creation of foreign keys, if Mastodon activity is happening at the same time, the migration may fail with a "deadlock". In such a case I recommend disabling user access to Mastodon during the migration, which shouldn't take longer than a minute.

Non-Docker only:

  • Dependency updates: bundle install and yarn install

Both Docker and non-Docker:

  • Run the rake task to prepare for the database migrations: RAILS_ENV=production bundle exec rails mastodon:maintenance:prepare_for_foreign_keys (in Docker: docker-compose run --rm web rails mastodon:maintenance:prepare_for_foreign_keys)
  • This release includes database migrations, that means you need to run RAILS_ENV=production bundle exec rails db:migrate (in Docker: docker-compose run --rm web rails db:migrate)
  • This release includes changes to assets, that means you need to run RAILS_ENV=production bundle exec rails assets:precompile (in Docker: docker-compose run --rm web rails assets:precompile)
  • The upgrade from Rails 5.0 to 5.1 will break cached entities. Cache lives for 10 minutes, so you can either wait for it to go away after 10 minutes, or clear Rails cache with RAILS_ENV=production bundle exec rails r Rails.cache.clear (in Docker: docker-compose run --rm web rails r Rails.cache.clear)

Contributors:
@akihikodaki
@alpaca-tc
@Artoria2e5
@caasi
@ChristopherWMartin
@clworld
@danhunsaker
@diomed
@fvh-P
@Gargron
@harukasan
@ikuradon
@jackjennings
@jeroenpraat
@jumbosushi
@lindwurm
@m4sk1n
@masarakki
@mjankowski
@Naouak
@nolanlawson
@nullkal
@Quent-in
@reneklacan
@rkarabut
@salvadorpla
@sorin-davidoi
@STJrInuyasha
@takayamaki
@ThibG
@unarist
@ykzts
@yukimochi
@zunda

v1.4.1

28 May 21:55
Compare
Choose a tag to compare

Fixes:

  • Fix boost icon: center vertically (#2690)
  • Fix to completely hide NSFW-tagged images (#2724)
  • Fix width of .confirmation-modal on narrow screens (#2743)
  • Always respond with 200 to PuSH payloads (#2733)
  • Language improvements, replace whatlanguage with CLD (#2753, #2949)
  • Handle out-of-order deletes for statuses (#2734)
  • Replace best_in_place editor on admin settings page (#2789)
  • Performance: Delete records in smaller transaction (#2802)
  • More robust PuSH subscription refreshes (#2799)
  • Use Twitter::Extractor for creating links (#2502)
  • Performance: Optimize follower_accounts and following_accounts (#2820)
  • Performance: Fix slow query in notifications api (#2851)
  • Performance: Add asynchronous emojione-picker (code-splitting) (#2863)
  • Fix a aspect ratio for the embedded video (#2872)
  • Fix local fonts and change font-face values (#2877)
  • Add content-type in pubsubhubhub request header (#2943)
  • Disabled auto focus on toot form when search results are shown. (#2942)
  • Performance: Add account_id DESC to optimize PrecomputeFeedService (#2967)
  • Send HEAD request ahead of GET when fetching URL previews (#2972)
  • Fix mention regex to support unicode (#2420)
  • When avatar/header are missing, do not include the missing file into Atom (#2988)
  • Accept own ID for remote follow with and without preceding @ (#2991)
  • Delete associated notifications when a status is deleted (#2994)
  • Trim long usernames in public follower/following lists (#2993)
  • Fix not rejecting remote URIs when parsing out local IDs (#3012)
  • Prepend reblogs' wrapper content with "RT @original_author", (#3013)
  • Do not cancel PuSH subscriptions after encountering "permanent" error (#3046)
  • Do not override ctrl/cmd+click on permalinks (#3073)
  • Hide signup path unless the instance allows registration. (#3055)
  • Performance: Optimize Status#permitted_for 24x (#3069)
  • Performance: Improve Account#triadic_closures (#3079)
  • Performance: Make faster ProcessFeedService (#3080)
  • Enable to handle app immediately after closing modal (#3082)
  • Performance: Make .column-collapse animation simple (#3086)
  • Resolve preview cards for remote statuses as well as local ones (#3088)
  • Do not hardcode the exclamation in "toot!", wrap it in an extra locale key (#3089)
  • Performance: Avoid useless renders (#3141)
  • Performance: Improvements (#3168)
  • Run processes in Docker as non-root user (#3159)
  • Performance: Use joins for account properties (#3167)
  • Performance: Remove unnecessary div (#3172)
  • Performance: Faster boot time (#3176)
  • Replace mastodon:media:clear and mastodon:feeds:clear rake tasks with sidekiq scheduler (#3180)
  • Add boop sounds in Vorbis format (#2963)
  • Focus tab of Mastodon when clicking notification (#2989)
  • Fix regression in mutes API and similar (#3202)
  • Allow access token in URI in the EventSource streaming API (#3208)
  • Language attribute in statuses JSON (#3209)
  • Fix "Edit profile" on the account action bar (#3222)
  • Fix cache not being configured correctly (#3219)
  • Keep children of the column-collapsable until animation is completed (#3218)
  • Fix locale regression that made logged-out public pages crash (#3231)
  • Fix "saved" message in wrong locale after updating preferences (#3232)
  • Put creation of remote statuses in a transaction to prevent incomplete statuses from being returned in the API (#3233)
  • Fix more locale regressions from #3055 (#3242)
  • Focus the submit button (#3253)
  • Fix Devise destroy method being available to delete user record (#3266)
  • Fix following/followers API to return correct link headers (#3268)
  • Skip formatting for cashtag in status text (#3275)
  • Fix hovering default value for avatar component (#3290)
  • Fix settings model sometimes returning nil (#3213)
  • Add flex: 0 0 auto to some components to avoid bugs on iOS9 (#3313)
  • Fix "contains" CSS for Chromium <57 (#3317)
  • Fix style regression of buttons not inheriting document font by default (#3310)
  • Fix load more feature on the Account media gallery (#3293)
  • Remove status context construction in the React side (#3331)
  • Remove redundant call of recent scope in AccountsController (#3330)
  • Introduce react-textarea-autosize instead of using style.height side effects (#3334)
  • Add "meta" attribute to return of POST /api/v1/media method as well (#3333)
  • Replace onboarding elephant with friendlier graphic, shorter animation (#3337)
  • Fix some nil errors (#3338)
  • Language filtering in streaming API (#3339)
  • Add missing background center on public profile headers (#3340)
  • Avoid comparing domains when looking for an exact match of a local account (#3336)
  • Fix empty flash message on the settings page (#3345)
  • Fix #2922 - Load stylesheet from "custom.css" entrypoint when present (#3332)
  • Reject revoked access_token on Streaming API. (#3367)
  • Improve streaming API cluster logging, fix streaming API hanging up (#3370)
  • Fix Webpack Bundle Analyzer output for Webpacker (#3374)
  • Simplify isIntersecting in status_list.js (#3371)
  • Fix IntersectionObserver isIntersecting in Edge (#3365)
  • Update bootsnap to 0.3.0 (fix xattr.h error) (#3390)
  • Fix video having black border on top (#3392)

Features:

  • Filter out languages from public timelines based on preferences (#2361, #3175)
  • Admins can disable 2FA for users (#2584)
  • Webpack (#2617)
  • Show boosted user's avatar (#2518)
  • Show emoji shortname in a tooltip (#2784)
  • Decode IDN URLs in PreviewCard (#2781)
  • When streaming API is disconnected, poll home/notifications (#2776)
  • Replace ws with uws (#2807)
  • Sidekiq dashboard displays scheduled tasks (#2898)
  • Add <ostatus:conversation /> to Atom feeds (#3016)
  • Make direct statuses stand out more (#3025)
  • Ability to mute notifications for an entire conversation (#3017)
  • Admins can filter accounts based on username/display name/e-mail/IP (#2968)
  • Ability to hide all content from a domain (#2381)
  • Media gallery view on profiles (#3120)
  • Allow alternate domains to be recognized by Webfinger, while still returning a canonical acct (#3187)
  • Only load i18n data for current language in web UI (#3130)
  • Toggle sensitive from admin page (#3261)
  • Don't notify me when my toot is faved by someone i muted (#3245)
  • Performance: Use node instead of babel-node for streaming API (#3269)
  • Fix DM being highlighted when it's inside a favourite notification (#3267)
  • Show error message to suspended user (#3281)
  • Performance: Lazy load toots using IntersectionObserver (#3191)
  • Go to root after login in single user mode (#3289)

Upgrade notes:

Non-Docker only:

  • This release switches the minimum supported Node.js version from 4 to 6
  • Three additional system packages are required: pkg-config libprotobuf-dev protobuf-compiler
  • Dependency updates: bundle install and yarn install

Docker-only:

  • Processes inside Docker no longer run as root. Existing installations will require you to change directory ownership of the uploads volume to a different UID/GID: something like sudo chown -R 991:991 public/system (the default UID/GID of the new in-Docker user is 991/991)

Both Docker and non-Docker:

  • If you have CDN_HOST set, make sure it contains the protocol part (http:// or https://), if it does not, adjust it before doing the next step
  • If you set a non-default STREAMING_API_BASE_URL, change the protocol part to ws:// or wss:// respectively
  • This release includes changes to assets, that means you need to run RAILS_ENV=production bundle exec rails assets:precompile (in Docker: docker-compose run --rm web rails assets:precompile)
  • Generated assets now live under public/packs instead of public/assets. This is mostly irrelevant but might affect some custom proxying configurations.
  • This release includes database migrations, that means you need to run RAILS_ENV=production bundle exec rails db:migrate (in Docker: docker-compose run --rm web rails db:migrate)

Contributors to this release:

@AA4ch1
@abcang
@akihikodaki
@alpaca-tc
@beatrix-bitrot
@BoFFire
@bzg
@clworld
@danhunsaker
@esetomo
@Gargron
@geta6
@happycoloredbanana
@harukasan
@h-izumi
@immae
@jackjennings
@jeroenpraat
@Jnsll
@kaniini
@knu
@m4sk1n
@mabkenar
@masarakki
@mjankowski
@nolanlawson
@Pangoraw
@pfm-eyesightjp
@Quent-in
@rkarabut
@salvadorpla
@seefood
@sorin-davidoi
@stephenburgess8
@sterbfly
@tomosm
@treby
@unarist
@vidarlee
@Wonderfall
@xqus
@yiskah
@ykzts
@yookoala
@znz
@zunda

v1.4rc6

28 May 17:13
Compare
Choose a tag to compare
v1.4rc6 Pre-release
Pre-release

Fixes:

  • Reject revoked access_token on Streaming API. (#3367)
  • Improve streaming API cluster logging, fix streaming API hanging up (#3370)
  • Fix Webpack Bundle Analyzer output for Webpacker (#3374)
  • Simplify isIntersecting in status_list.js (#3371)
  • Fix IntersectionObserver isIntersecting in Edge (#3365)
  • Update bootsnap to 0.3.0 (fix xattr.h error) (#3390)
  • Fix video having black border on top (#3392)

Upgrade notes:

Non-Docker only:

  • Dependency updates: yarn install and bundle install

Both Docker and non-Docker:

  • This release includes changes to assets, that means you need to run RAILS_ENV=production bundle exec rails assets:precompile (in Docker: docker-compose run --rm web rails assets:precompile)

Contributors:

@akihikodaki
@clworld
@Gargron
@mabkenar
@nolanlawson
@sterbfly
@vidarlee

v1.4rc5

27 May 15:00
Compare
Choose a tag to compare
v1.4rc5 Pre-release
Pre-release

Fixes:

  • Remove status context construction in the React side (#3331)
  • Remove redundant call of recent scope in AccountsController (#3330)
  • Introduce react-textarea-autosize instead of using style.height side effects (#3334)
  • Add "meta" attribute to return of POST /api/v1/media method as well (#3333)
  • Replace onboarding elephant with friendlier graphic, shorter animation (#3337)
  • Fix some nil errors (#3338)
  • Language filtering in streaming API (#3339)
  • Add missing background center on public profile headers (#3340)
  • Avoid comparing domains when looking for an exact match of a local account (#3336)
  • Fix empty flash message on the settings page (#3345)
  • Fix #2922 - Load stylesheet from "custom.css" entrypoint when present (#3332)

Upgrade notes:

Non-Docker only:

  • Dependency updates: yarn install

Both Docker and non-Docker:

  • This release includes changes to assets, that means you need to run RAILS_ENV=production bundle exec rails assets:precompile (in Docker: docker-compose run --rm web rails assets:precompile)

Contributors:

@akihikodaki
@Gargron
@happycoloredbanana
@jeroenpraat
@m4sk1n
@Quent-in
@unarist

v1.4rc4

26 May 12:25
Compare
Choose a tag to compare
v1.4rc4 Pre-release
Pre-release

Fixes:

  • Fix more locale regressions from #3055 (#3242)
  • Focus the submit button (#3253)
  • Fix Devise destroy method being available to delete user record (#3266)
  • Fix following/followers API to return correct link headers (#3268)
  • Skip formatting for cashtag in status text (#3275)
  • Fix hovering default value for avatar component (#3290)
  • Fix settings model sometimes returning nil (#3213)
  • Add flex: 0 0 auto to some components to avoid bugs on iOS9 (#3313)
  • Fix "contains" CSS for Chromium <57 (#3317)
  • Fix style regression of buttons not inheriting document font by default (#3310)
  • Fix load more feature on the Account media gallery (#3293)

Features:

  • Toggle sensitive from admin page (#3261)
  • Don't notify me when my toot is faved by someone i muted (#3245)
  • Performance: Use node instead of babel-node for streaming API (#3269)
  • Fix DM being highlighted when it's inside a favourite notification (#3267)
  • Show error message to suspended user (#3281)
  • Performance: Lazy load toots using IntersectionObserver (#3191)
  • Go to root after login in single user mode (#3289)

Upgrade notes:

Non-Docker only:

  • Dependency updates: yarn install

Both Docker and non-Docker:

  • This release includes changes to assets, that means you need to run RAILS_ENV=production bundle exec rails assets:precompile (in Docker: docker-compose run --rm web rails assets:precompile)

Contributors:

@abcang
@akihikodaki
@alpaca-tc
@beatrix-bitrot
@danhunsaker
@Gargron
@knu
@masarakki
@mjankowski
@nolanlawson
@seefood
@sorin-davidoi
@unarist
@xqus
@ykzts
@zunda

v1.4rc3

22 May 19:48
Compare
Choose a tag to compare
v1.4rc3 Pre-release
Pre-release

Fixes:

  • Fix regression in mutes API and similar (#3202)
  • Allow access token in URI in the EventSource streaming API (#3208)
  • Language attribute in statuses JSON (#3209)
  • Fix "Edit profile" on the account action bar (#3222)
  • Fix cache not being configured correctly (#3219)
  • Keep children of the column-collapsable until animation is completed (#3218)
  • Fix locale regression that made logged-out public pages crash (#3231)
  • Fix "saved" message in wrong locale after updating preferences (#3232)
  • Put creation of remote statuses in a transaction to prevent incomplete statuses from being returned in the API (#3233)

Features:

  • Allow alternate domains to be recognized by Webfinger, while still returning a canonical acct (#3187)
  • Only load i18n data for current language in web UI (#3130)

Locales:

Upgrade notes:

Non-Docker only:

  • Dependency updates: yarn install

Both Docker and non-Docker:

  • This release includes changes to assets, that means you need to run RAILS_ENV=production bundle exec rails assets:precompile (in Docker: docker-compose run --rm web rails assets:precompile)

Contributors to this release:

@Gargron
@zunda
@vidarlee
@h-izumi
@akihikodaki
@sterbfly
@happycoloredbanana
@mabkenar
@ykzts
@unarist
@clworld
@m4sk1n
@nolanlawson
@immae
@rkarabut
@tomosm
@mjankowski

v1.4rc2

20 May 21:31
Compare
Choose a tag to compare
v1.4rc2 Pre-release
Pre-release

Bump version identifier to 1.4.0.2

Otherwise same as v1.4rc1