github superseriousbusiness/gotosocial v0.9.0
v0.9.0 Spicy Sloth 🌶️

latest releases: v0.15.0, v0.15.0-rc2, v0.15.0-rc1...
11 months ago

HELLO! The sloth has landed! Repeat, the sloth has landed! Introducing v0.9.0 of GoToSocial, aka Spicy Sloth!

This release was fun to work on, and we hope you enjoy using it! The project is slowly and steadily maturing and getting better 🌞

Big thank you to all contributors, folks who opened issues, instance admins who let us know weird stuff was happening, people who seem to like the code, and people who give us money to write the code!

Highlights

  • PROFILE FIELDS will now be federated. This means you can set key/value fields on your profile, just like other Fedi softwares already have, and they will federate in and out properly! It may take up to 2 days to start seeing fields on remote profiles, be patient ;)
  • Kickass new layout for web view of profiles, including fields!
  • Initial support for request tracing (https://github.com/superseriousbusiness/gotosocial/blob/main/docs/configuration/observability.md)
  • "subscribe" to an account you follow to receive notifications when they create a new post! (AKA 'click the bell' functionality.) Very useful for catching posts of followed accounts who don't post very often.
  • Automatic remote status refetching to get up-to-date replies + edits.
  • Performance improvements for message sending: you can now configure the rate at which messages will be federated outwards, better spacing out CPU usage and avoiding issues with rate-limiting.
  • Lots of caching performance improvements; things should feel generally snappier.
  • Suspend accounts from right within the admin panel by clicking through from reports.
  • We added a whole bunch of trans rights to the code 🏳️‍⚧️ The code has so much trans rights in it now. If you don't like trans rights, you won't like this code.

Migration notes

Upgrading

To upgrade to 0.9.0 from a previous release:

Binary/tar

  1. Stop GoToSocial
  2. Untar the new release, including the web assets and html templates.
  3. Edit your config.yaml file as necessary (see below).
  4. Start GoToSocial

Docker

  1. Stop GoToSocial.
  2. Pull the new docker container (superseriousbusiness/gotosocial:0.9.0 or superseriousbusiness/gotosocial:latest)
  3. Start GoToSocial.

config.yaml

The configuration file has changed since the previous release. You can see a diff of the config file here: v0.8.1...v0.9.0#diff-c071e03510b2c57e193a44503fd9528a785f0f411497cc75841a9f8d0b1ac622

Database Migrations

This release contains several database migrations which will run the first time you start up this new version. Be sure not to interrupt this migration process. This will take anywhere between a couple seconds and ten minutes (on slower hardware). Please be patient!

Features / Performance

  • 89dcbd5 [frontend] Basic user moderation actions (#1728)
  • 6c9d8e7 [feature] status refetch support (#1690)
  • 9cc9ffc [frontend] Profiles with fields & more (#1764)
  • 6392e00 [feature] initial tracing support (#1623)
  • 0e29f1f [feature] Enable federation in/out of profile PropertyValue fields (#1722)
  • 6d13858 [feature] Implement the preferences client API (#1740)
  • 3ff1391 [performance] replace domain block cache with an in-memory radix trie (#1714)
  • 68b91d2 [performance] tweak http client error handling (#1718)
  • 8b1e228 [feature] Add GET endpoint for single notification (#1719)
  • 6a29c5f [performance] improved request batching (removes need for queueing) (#1687)
  • 093cf2a [feature] Receive notification when followed account posts (if desired) (#1680)
  • 107237c [feature] Make client IP logging configurable (#1799)

Bugfixes

  • 17b9a93 [bugfix] Fix duplicating fields on profile edit (#1788)
  • e91cabb [bugfix] Fix NegotiateFormat with multiple accept headers (#1797)
  • 2478d83 [bugfix] Fix proxy_pass in named location (#1794)
  • 68e54cb [bugfix] Start + stop caches properly for testrig + pruning (#1804)
  • 99ddaba [bugfix] Fix incorrect default for empty emoji domain (#1803)
  • 2063d01 [bugfix] Add back removed ValidateRequest() before backoff-retry loop (#1805)
  • 2b7c815 [bugfix] update go-cache to v3.3.3 (#1778)
  • b47661f [bugfix] Downstep otel to fix freebsd compile issue (#1773)
  • 8eda005 [bugfix] Ensure account fields can be set by JSON (#1762)
  • 878ed48 [bugfix] Don't try to get user when serializing local instance account (#1757)
  • 11e843a [bugfix] fix possible domain blockcache nil ptr + add debug String() func (#1755)
  • 8275d70 [bugfix] update go-cache version to support multi-keying (#1756)
  • 37b4d9d [bugfix] Punycode fixes (#1743)
  • b7dd32d [bugfix] Return languages in api/v1/instance (#1741)
  • 5027d0c [bugfix] Serve correct 'application/jrd+json' content type for webfinger requests (#1738)
  • 4a012ac [bugfix] Rework notifs to use min_id for paging up (#1734)
  • a6ec2a5 [bugfix] Fix invalid og:description on account w/ empty note (#1733)
  • ead286a [bugfix] tweak httpclient error handling again ... (#1721)
  • fdd2487 [bugfix] add From to email header (#1717)
  • 6b4f6dc [bugfix] Fix remaining mangled URI escaping issues in statuses + accounts (#1712)
  • fd3bf92 [bugfix] fix small config typos (#1707)
  • cb1f935 [bugfix] Fix the bookmarks list API endpoint returning an empty array (#1700)
  • c01d2f9 [chore]: Bump golang.org/x/oauth2 from 0.6.0 to 0.7.0 (#1684)
  • 1d8f9c6 [chore]: Bump golang.org/x/crypto from 0.7.0 to 0.8.0 (#1685)
  • 014d7ac [chore]: Bump github.com/spf13/cobra from 1.6.1 to 1.7.0 (#1686)
  • 158facf [chore]: Bump golang.org/x/image from 0.6.0 to 0.7.0 (#1682)

Chores

  • e1b7ab2 [chore]: Bump golang.org/x/oauth2 from 0.7.0 to 0.8.0 (#1785)
  • 89c1d58 [chore]: Bump golang.org/x/crypto from 0.8.0 to 0.9.0 (#1784)
  • c7702c4 [chore] Change time comparison in webfinger test (#1798)
  • a0952ad [chore]: Bump github.com/minio/minio-go/v7 from 7.0.52 to 7.0.53 (#1808)
  • c48abd8 [chore] update account statuses paging logic (#1814)
  • ea1bbac [chore]: Bump github.com/go-playground/validator/v10 (#1812)
  • 9c24dee [chore] Replace pinafore with semaphore (#1801)
  • 514eb8c [frogend/chore] Fix profile domain (#1779)
  • 3046dab [frogend/chore] Update backnextlinks (#1774)
  • ec325fe [chore] Update a bunch of database dependencies (#1772)
  • 66df974 [frogend/bugfix] fix dynamicSpoiler elements (#1771)
  • b315aa1 [frogend/chore] remove break-all on profile fields (#1770)
  • ba5a464 [chore] Prefer JSON errors in API endpoints (#1766)
  • 265cc32 [frogend] use more semantic headers for profile page (#1765)
  • 65cd1ac [chore] tidy + update StatusToAPIStatus (#1754)
  • cbb9e2d [chore/performance] Make sender multiplier configurable (#1750)
  • 9b4b4d4 [chore] update readthedocs deps, use conda (#1742)
  • c41c1f9 [chore] Hide vendor from diffs (#1729)
  • 66f09a8 [chore]: Bump modernc.org/sqlite from 1.22.0 to 1.22.1 (#1726)
  • e9de7be [chore]: Bump github.com/go-playground/validator/v10 (#1724)
  • ab7f518 [chore]: Bump github.com/KimMachineGun/automemlimit from 0.2.5 to 0.2.6 (#1723)
  • 5904e3b [chore]: Bump github.com/miekg/dns from 1.1.53 to 1.1.54 (#1727)
  • 49395f2 [chore]: Bump modernc.org/sqlite from 1.21.1 to 1.22.0 (#1711)
  • f3066a1 [chore] Replacing all Pinafore mentions to Semaphore ones (#1689)
  • a3d2774 [chore]: Bump codeberg.org/gruf/go-cache/v3 from 3.2.3 to 3.2.5 (#1701)
  • c5f61c4 [chore]: Bump mvdan.cc/xurls/v2 from 2.4.0 to 2.5.0 (#1702)
  • ef3004b [chore]: Bump github.com/minio/minio-go/v7 from 7.0.50 to 7.0.52 (#1703)

Documentation

  • 19dab83 [docs] add missing observability settings to example config (#1790)
  • 32aefd5 [docs] remove nginx trailing slash (#1789)
  • 282be6f [docs] local docs hacking howto (#1816)
  • d0e747c [docs] code highlighting configuration (#1817)
  • 999a6ae [docs] support copy/pasta for code blocks (#1818)
  • 1d8dec3 [docs] Add implementation notes for report (Flag) functionality (#1324)
  • 0e03507 [docs] update instance splash and profile screenshots (#1775)
  • ae9d432 [docs] Migrates Chart Location (#1708)
  • 922bd89 [docs] Explain that markdown is enabled on the user settings page. (#1699)

New Contributors

Don't miss a new gotosocial release

NewReleases is sending notifications on new releases.