Releases: superseriousbusiness/gotosocial
v0.16.0-rc3
Hiya! Third RC for 0.16.0!
No db migrations or config file changes between v0.16.0-rc2 and this version, so upgrading is as simple as updating your docker container or stopping GtS, untarring the release, and starting GtS again.
For instructions to update to this release candidate from versions < v0.16.0-rc1, see the v0.16.0-rc1 release candidate notes, but replace v0.16.0-rc1
with v0.16.0-rc3
throughout.
Detailed Changelog
- [bugfix] Correct Swagger path for poll voting by @VyrCossont in #2996
- [chore] Upgrade WASM SQLite to v0.16.2 by @daenney in #2997
- [bugfix] Ensure side effects handled for local unlocked follows by @tsmethurst in #2998
- [chore] Bump braces from 3.0.2 to 3.0.3 in /web/source by @dependabot in #2999
- [chore] Don't render sign-up form when registrations closed by @tsmethurst in #3001
- [chore] Update move test by @tsmethurst in #3005
- [docs] Add optional instructions for replicating SQLite for disaster recovery by @martijndeb in #2981
- [chore] Silence memlimit package by @daenney in #3002
- [docs] Rework README a bit, import into docs by @tsmethurst in #3006
- [feature] filter API v2: restore keywords_attributes and statuses_attributes by @VyrCossont in #2995
- [bugfix] avoid v. long notification clear query by @tsmethurst in #3007
v0.16.0-rc2
Hiya! Second RC for 0.16.0!
No db migrations or config file changes between v0.16.0-rc1 and this version, so upgrading is as simple as updating your docker container or stopping GtS, untarring the release, and starting GtS again.
For instructions to update to this release candidate from versions < v0.16.0-rc1, see the v0.16.0-rc1 release candidate notes, but replace v0.16.0-rc1
with v0.16.0-rc2
throughout.
Detailed Changelog
- [chore]: Bump github.com/minio/minio-go/v7 from 7.0.70 to 7.0.71 by @dependabot in #2988
- [chore]: Bump golang.org/x/net from 0.25.0 to 0.26.0 by @dependabot in #2986
- [chore]: Bump github.com/tdewolff/minify/v2 from 2.20.32 to 2.20.33 by @dependabot in #2984
- [chore]: Bump github.com/gorilla/websocket from 1.5.1 to 1.5.2 by @dependabot in #2987
- [chore]: Bump golang.org/x/image from 0.16.0 to 0.17.0 by @dependabot in #2985
- [chore] Roll back use of
(created)
pseudo-header pending #2991 by @tsmethurst in #2992 - [bugfix] boost and account recursion by @NyaaaWhatsUpDoc in #2982
- [bugfix] Deref stats async, serve stub collections if handshaking by @tsmethurst in #2990
v0.16.0-rc1 Snappy Sloth
Hello you nerds, dorks, and dweebs ❤️
This here is the first release candidate for version 0.16.0 of GoToSocial, codename SNAPPY SLOTH.
Release highlights
- Sign up / registration: In this release, you can open your instance to new registrations (aka sign-ups) via the new signup page at
https://[your-instance.tld]/signup
. No more manually creating new users via the CLI :)
Documentation here: https://docs.gotosocial.org/en/latest/admin/signups/ - Accounts overview for moderators: To support the new sign-up feature, and help instance admins to moderate, we made a new section in the settings panel where admins + moderators can get an overview of accounts, and filter by instance, status, and more. You'll find this new accounts view in the settings panel.
- Totally reworked message delivery system and worker queues: We've completely reworked the way GoToSocial sends out messages to your followers and performs worker-related tasks; this should drastically increase the speed that outgoing messages are delivered, especially for users with lots of followers. It also paves the way for future work in terms of persisting worker and message queues over restarts.
- Account mutes: The account mute API endpoints are now implemented, meaning you can put (timed) mutes of accounts in place, to hide statuses from specific accounts from your home timeline, and/or hide notifications from muted accounts.
- Accurate account stats: This release introduces code to pull up-to-date counts of statuses, followers, and following from remote instances and show these stats via the API. So now in your client of choice, you should see an accurate count of the number of statuses and followers/following of a given account, no more "0 followers, 0 following, 0 statuses".
- HTTP header permissions settings: The settings panel now has a section that allows admins to set regular expressions to deny requests depending on HTTP headers.
Documentation here: https://docs.gotosocial.org/en/latest/admin/request_filtering_modes/ - Filters v2 implementation: We've now implemented the v2 API for filters, which means you can create more complex filters to hide keywords or statuses, and more clients should be able to create filters on GoToSocial.
- Send test email: Admins can now use the settings panel to send a test email, to check if their SMTP (email) configuration is valid.
- Profile API: Clients that use the profile API to delete avatar + header images should now work, since we've now implemented this part of the API.
- Search operators: We've added a first search operator to GoToSocial, so when you're searching for statuses, you can add
from:@[username]@[domain]
to your search term, to search only within statuses created by the given account (while still respecting the search limitations we already had in place).
Documentation here: https://docs.gotosocial.org/en/latest/user_guide/search/ - Email change: Users can now change their email address in the settings panel without admin intervention.
Documentation here: https://docs.gotosocial.org/en/latest/user_guide/settings/#email-change - Memory usage optimizations: GoToSocial now uses memory more conservatively than before; you should only need about 150-200MiB of memory to run GtS with a full cache, and it will spike less.
Migration notes
Upgrading
To upgrade to 0.16.0-rc1 from a previous release:
Binary/tar
- Stop GoToSocial
- Untar the new release, including the web assets and html templates.
- Edit your config.yaml file as necessary (see below).
- Start GoToSocial
Docker
- Stop GoToSocial.
- Pull the new docker container (
superseriousbusiness/gotosocial:0.16.0-rc1
orsuperseriousbusiness/gotosocial:latest
) - Start GoToSocial.
config.yaml
The configuration file has changed since the previous release. You can see a diff of the config file here: v0.15.0...v0.16.0-rc1#diff-c071e03510b2c57e193a44503fd9528a785f0f411497cc75841a9f8d0b1ac622
Database Migrations
Detailed Changelog
Features + Performance
- [performance] massively improved ActivityPub delivery worker efficiency by @NyaaaWhatsUpDoc in #2812
- [feature] New user sign-up via web page by @tsmethurst in #2796
- [performance] update GetAccountsByIDs() to use the new multi cache loader endpoint by @NyaaaWhatsUpDoc in #2828
- [feature] Admin accounts endpoints; approve/reject sign-ups by @tsmethurst in #2826
- [performance] cached oauth database types by @NyaaaWhatsUpDoc in #2838
- [feature/performance] Store account stats in separate table by @tsmethurst in #2831
- [feature] Stub status history endpoint by @tsmethurst in #2847
- [feature] Status source endpoint by @tsmethurst in #2848
- [feature] Stub account mutes endpoint by @tsmethurst in #2852
- [feature] Stub conversations endpoint by @tsmethurst in #2853
- [performance] update remaining worker pools to use queues by @NyaaaWhatsUpDoc in #2865
- [feature] Page through accounts as moderator by @tsmethurst in #2881
- [feature] Add HTTP header permission section to frontend by @tsmethurst in #2893
- feature: filters v2 server-side warning/hiding by @VyrCossont in #2793
- [performance] update go-structr -> v0.8.2 which includes some minor memory usage improvements by @NyaaaWhatsUpDoc in #2904
- [performance] update go-structr and go-mutexes with memory usage improvements by @NyaaaWhatsUpDoc in #2909
- [performance] cache v2 filter keyword regular expressions by @NyaaaWhatsUpDoc in #2903
- [performance] update storage backend and make use of seek syscall when available by @NyaaaWhatsUpDoc in #2924
- [experiment] add alternative wasm sqlite3 implementation available via build-tag by @NyaaaWhatsUpDoc in #2863
- [feature/frontend] Let admins send test email to validate SMTP config by @tsmethurst in #2934
- [feature] Debug admin endpoint to clear caches by @tsmethurst in #2940
- Implement profile API by @VyrCossont in #2926
- [feature] Implement Filter API v2 by @VyrCossont in #2936
- [feature] Add from: search operator and account_id query param by @VyrCossont in #2943
- [feature/frontend] Add debug sections to settings panel by @tsmethurst in #2950
- [performance] bump go-structr to v0.8.5 to improve memory usage by @NyaaaWhatsUpDoc in #2955
- [feature] log worker startup counts by @NyaaaWhatsUpDoc in #2958
- [feature] do not uncache status / emoji media if attached status is bookmarked by @NyaaaWhatsUpDoc in #2956
- [feature] Self-serve email change for users by @tsmethurst in #2957
- [feature] User muting by @VyrCossont in #2960
- Implement filters_changed stream event by @VyrCossont in #2972
Bugfixes
- [bugfix] Include MIME email headers to avoid mangling non-ascii text by @tsmethurst in #2827
- [bugfix] fix get all tokens by @tsmethurst in #2841
- [bugfix] Fix minor API issue w/ boosted statuses by @tsmethurst in #2846
- [bugfix] nil panic when deleting status by @NyaaaWhatsUpDoc in #2849
- [bugfix] Fix incorrect field name for status source, add helpful message by @tsmethurst in #2854
- [bugfix] fix error string typo by @NyaaaWhatsUpDoc in #2873
- [bugfix] paging rel links by @NyaaaWhatsUpDoc in #2883
- [bugfix] retry on http 500 errors inclusive by @NyaaaWhatsUpDoc in #2886
- [bugfix] further paging mishaps by @NyaaaWhatsUpDoc in #2884
- [bugfix] flaky paging test by @NyaaaWhatsUpDoc in ...
v0.15.0 Shagadelic Sloth
Hey nerds! 🌷 🦥 🌸
First spring time release of GoToSocial, here's version 0.15.0 Shagadelic Sloth!
Release highlights
- Incoming and outgoing Move Activities are now processed properly. This means you will automatically follow other people when they move their accounts, and you can also Move your own account from your GtS instance to somewhere else, or move your account from somewhere else to your GtS instance!
User docs here: https://docs.gotosocial.org/en/latest/user_guide/settings/#migration
Federation docs (for devs) here: https://docs.gotosocial.org/en/latest/federation/federating_with_gotosocial/#actor-migration-aliasing - You can hide your followers and following collections now! When hidden, your followers/following count will no longer appear on your profile, and your collections of followers/following will be hidden from other servers (and other accounts on your server).
User docs here: https://docs.gotosocial.org/en/latest/user_guide/settings/#hide-who-you-follow-are-followed-by - V1 Filter support! Depending on the client you're using, you will now be able to add filters to hide certain phrases from your timeline.
- Preset user-selectable CSS themes are here! In the settings page, you can now choose a theme for your profile, which will change how it appears in the web view of your account! For now we added 5 different themes to choose from, screenshots below!
User docs: https://docs.gotosocial.org/en/latest/user_guide/settings/#select-theme
Docs for admins (how to add your own themes to your instance): https://docs.gotosocial.org/en/latest/admin/themes/
Blurple light: Light blue/purple/pink theme.
Blurple dark: Dark blue/purple theme.
Midnight trip: chunky purple and neon-green theme with magenta ombre.
Soft: a light pink, blue, and white theme.
Sunset: yellow / orange / aubergine theme with a sunset ombre.
Migration notes
Upgrading
To upgrade to 0.15.0 from a previous release:
Binary/tar
- Stop GoToSocial
- Untar the new release, including the web assets and html templates.
- Edit your config.yaml file as necessary (see below).
- Start GoToSocial
Docker
- Stop GoToSocial.
- Pull the new docker container (
superseriousbusiness/gotosocial:0.15.0
orsuperseriousbusiness/gotosocial:latest
) - Start GoToSocial.
config.yaml
No config file changes in this release compared to 0.14.2.
Database Migrations
Detailed changelog
Features / performance
- [feature] Filters v1 by @VyrCossont in #2594
- [feature/chore] Add Move database functions + cache by @tsmethurst in #2647
- [feature] Process incoming
Move
activity by @tsmethurst in #2724 - [feature] Process outgoing Move from clientAPI by @tsmethurst in #2750
- [feature] Add healthcheck endpoints
/livez
and/readyz
by @tsmethurst in #2783 - [feature] User-selectable preset CSS themes for accounts by @tsmethurst in #2777
- [feature] Add
enable
command to mirror existingdisable
command; update docs by @tsmethurst in #2792 - [feature] Option to hide followers/following by @tsmethurst in #2788
Bugfixes
- [chore/bugfix] Little DB fixes by @tsmethurst in #2726
- [bugfix] Fix Swagger spec and add test script by @VyrCossont in #2698
- [bugfix] add workaround for Xsqlite_interrupt() permanently breaking connection by @NyaaaWhatsUpDoc in #2731
- [bugfix] Don't error when populating MovedTo if account not found by @tsmethurst in #2741
- [bugfix] Fix whitespace move_id issue by @tsmethurst in #2742
- [bugfix] bump modernc.org/sqlite to fixed version (v1.28.0 -> v1.29.4) by @NyaaaWhatsUpDoc in #2749
- [bugfix] only check replyTo visibility during permission checks IF status is local by @NyaaaWhatsUpDoc in #2757
- [bugfix] Don't return 500 when searching for unpermitted status by @tsmethurst in #2753
- [bugfix] Parse links that contain non-ascii characters by @tsmethurst in #2762
- [bugfix] add all possible busy result codes to the sqlite errBusy catching check by @NyaaaWhatsUpDoc in #2775
- [bugfix] Mitigate empty public/local timeline query pages by @tsmethurst in #2784
- [bugfix] Serve correct URI for AP following collection by @tsmethurst in #2787
- [bugfix] httpclient not signing subsequent redirect requests by @NyaaaWhatsUpDoc in #2798
- [bugfix] set the host header within the signing transport by @NyaaaWhatsUpDoc in #2799
- [bugfix] Set domain for empty-domain Friendica accounts by @tsmethurst in #2800
- 6db7d01 [bugfix] Ensure side effects for local -> local follows get processed (#2820)
- 85bc140 [bugfix] temporarily replace
modernc.org/sqlite-v1.29.5
withgitlab.com/NyaaaWhatsUpDoc/sqlite-v1.29.5-concurrency-workaround
(#2811) - 83e7847 [bugfix] fix possible nil panic (#2809)
- 8ed1b81 [bugfix] Sort follows chronologically (#2801)
- 15ede4c [bugfix] improved authenticate post inbox error handling (#2803)
Chores / version bumps
- [chore] Fix a Swagger warning that only manifests during Go client code generation by @VyrCossont in #2729
- [chore] Downgrade sqlite v1.29.2 -> v1.28.0 by @tsmethurst in #2736
- [chore] seperate snapshot from release in goreleaser by @CDN18 in #2740
- [chore]: Bump github.com/gin-contrib/cors from 1.5.0 to 1.7.0 by @dependabot in #2745
- [chore]: Bump github.com/jackc/pgx/v5 from 5.5.3 to 5.5.5 by @dependabot in #2747
- [chore]: Bump github.com/go-jose/go-jose/v3 from 3.0.1 to 3.0.3 by @dependabot in #2733
- [chore]: Bump github.com/minio/minio-go/v7 from 7.0.67 to 7.0.69 by @dependabot in #2748
- [chore] Update usage of OTEL libraries by @daenney in #2725
- [chore] Expose move endpoint again, small settings panel fixes by @tsmethurst in #2752
- [chore] Different error message for email validation from net/mail parsing on go 1.21.8 and above by @blakesmith in #2760
- [chore]: Bump github.com/technologize/otel-go-contrib from 1.1.0 to 1.1.1 by @dependabot in #2765
- [chore]: Bump golang.org/x/oauth2 from 0.17.0 to 0.18.0 by @dependabot in #2766
- Bump follow-redirects from 1.15.4 to 1.15.6 in /web/source by @dependabot in #2763
- [chore]: Bump github.com/tdewolff/minify/v2 from 2.20.18 to 2.20.19 by @dependabot in #2767
- [chore]: Bump modernc.org/sqlite from 1.29.4 to 1.29.5 by @dependabot in #2768
- [chore] Move local account settings to separate db table by @tsmethurst in #2770
- [chore]: Bump github.com/gin-contrib/gzip from 0.0.6 to 1.0.0 by @dependabot in #2781
- [chore]: Bump github.com/gin-contrib/cors from 1.7.0 to 1.7.1 by @dependabot in #2778
- [chore]: Bump github.com/coreos/go-oidc/v3 from 3.9.0 to 3.10.0 by @dependabot in #2779
- [chore]: Bump github.com/gin-contrib/sessions from 0.0...
v0.15.0-rc2
Hiya! Bugfixes! Here's the second RC, enjoy!
No db migrations or config file changes between v0.15.0-rc1 and this version, so upgrading is as simple as updating your docker container or stopping GtS, untarring the release, and starting GtS again.
For instructions to update to this release candidate from versions < v0.15.0-rc1, see the v0.15.0-rc1 release candidate notes, but replace v0.15.0-rc1
with v0.15.0-rc2
throughout.
Detailed Changelog
- 6db7d01 [bugfix] Ensure side effects for local -> local follows get processed (#2820)
- 85bc140 [bugfix] temporarily replace
modernc.org/sqlite-v1.29.5
withgitlab.com/NyaaaWhatsUpDoc/sqlite-v1.29.5-concurrency-workaround
(#2811) - 83e7847 [bugfix] fix possible nil panic (#2809)
- 236604b [chore] Log less output on failed test (#2804)
- 8ed1b81 [bugfix] Sort follows chronologically (#2801)
- 15ede4c [bugfix] improved authenticate post inbox error handling (#2803)
v0.15.0-rc1 Shagadelic Sloth
Hey nerds! 🌷 🦥 🌸
First spring time release of GoToSocial, here's the first release candidate for version 0.15.0 Shagadelic Sloth!
Release highlights
- Incoming and outgoing Move Activities are now processed properly. This means you will automatically follow other people when they move their accounts, and you can also Move your own account from your GtS instance to somewhere else!
User docs here: https://docs.gotosocial.org/en/latest/user_guide/settings/#migration
Federation docs (for devs) here: https://docs.gotosocial.org/en/latest/federation/federating_with_gotosocial/#actor-migration-aliasing - You can hide your followers and following collections now! When hidden, your followers/following count will no longer appear on your profile, and your collections of followers/following will be hidden from other servers (and other accounts on your server).
User docs here: https://docs.gotosocial.org/en/latest/user_guide/settings/#hide-who-you-follow-are-followed-by - V1 Filter support! Depending on the client you're using, you will now be able to add filters to hide certain phrases from your timeline.
- Preset user-selectable CSS themes are here! In the settings page, you can now choose a theme for your profile, which will change how it appears in the web view of your account! For now we added 5 different themes to choose from, screenshots below!
User docs: https://docs.gotosocial.org/en/latest/user_guide/settings/#select-theme
Docs for admins (how to add your own themes to your instance): https://docs.gotosocial.org/en/latest/admin/themes/
Blurple light: Light blue/purple/pink theme.
Blurple dark: Dark blue/purple theme.
Midnight trip: chunky purple and neon-green theme with magenta ombre.
Soft: a light pink, blue, and white theme.
Sunset: yellow / orange / aubergine theme with a sunset ombre.
Migration notes
Upgrading
To upgrade to 0.15.0-rc1 from a previous release:
Binary/tar
- Stop GoToSocial
- Untar the new release, including the web assets and html templates.
- Edit your config.yaml file as necessary (see below).
- Start GoToSocial
Docker
- Stop GoToSocial.
- Pull the new docker container (
superseriousbusiness/gotosocial:0.15.0-rc1
orsuperseriousbusiness/gotosocial:latest
) - Start GoToSocial.
config.yaml
No config file changes in this release compared to 0.14.2.
Database Migrations
Detailed changelog
Features / performance
- [feature] Filters v1 by @VyrCossont in #2594
- [feature/chore] Add Move database functions + cache by @tsmethurst in #2647
- [feature] Process incoming
Move
activity by @tsmethurst in #2724 - [feature] Process outgoing Move from clientAPI by @tsmethurst in #2750
- [feature] Add healthcheck endpoints
/livez
and/readyz
by @tsmethurst in #2783 - [feature] User-selectable preset CSS themes for accounts by @tsmethurst in #2777
- [feature] Add
enable
command to mirror existingdisable
command; update docs by @tsmethurst in #2792 - [feature] Option to hide followers/following by @tsmethurst in #2788
Bugfixes
- [chore/bugfix] Little DB fixes by @tsmethurst in #2726
- [bugfix] Fix Swagger spec and add test script by @VyrCossont in #2698
- [bugfix] add workaround for Xsqlite_interrupt() permanently breaking connection by @NyaaaWhatsUpDoc in #2731
- [bugfix] Don't error when populating MovedTo if account not found by @tsmethurst in #2741
- [bugfix] Fix whitespace move_id issue by @tsmethurst in #2742
- [bugfix] bump modernc.org/sqlite to fixed version (v1.28.0 -> v1.29.4) by @NyaaaWhatsUpDoc in #2749
- [bugfix] only check replyTo visibility during permission checks IF status is local by @NyaaaWhatsUpDoc in #2757
- [bugfix] Don't return 500 when searching for unpermitted status by @tsmethurst in #2753
- [bugfix] Parse links that contain non-ascii characters by @tsmethurst in #2762
- [bugfix] add all possible busy result codes to the sqlite errBusy catching check by @NyaaaWhatsUpDoc in #2775
- [bugfix] Mitigate empty public/local timeline query pages by @tsmethurst in #2784
- [bugfix] Serve correct URI for AP following collection by @tsmethurst in #2787
- [bugfix] httpclient not signing subsequent redirect requests by @NyaaaWhatsUpDoc in #2798
- [bugfix] set the host header within the signing transport by @NyaaaWhatsUpDoc in #2799
- [bugfix] Set domain for empty-domain Friendica accounts by @tsmethurst in #2800
Chores / version bumps
- [chore] Fix a Swagger warning that only manifests during Go client code generation by @VyrCossont in #2729
- [chore] Downgrade sqlite v1.29.2 -> v1.28.0 by @tsmethurst in #2736
- [chore] seperate snapshot from release in goreleaser by @CDN18 in #2740
- [chore]: Bump github.com/gin-contrib/cors from 1.5.0 to 1.7.0 by @dependabot in #2745
- [chore]: Bump github.com/jackc/pgx/v5 from 5.5.3 to 5.5.5 by @dependabot in #2747
- [chore]: Bump github.com/go-jose/go-jose/v3 from 3.0.1 to 3.0.3 by @dependabot in #2733
- [chore]: Bump github.com/minio/minio-go/v7 from 7.0.67 to 7.0.69 by @dependabot in #2748
- [chore] Update usage of OTEL libraries by @daenney in #2725
- [chore] Expose move endpoint again, small settings panel fixes by @tsmethurst in #2752
- [chore] Different error message for email validation from net/mail parsing on go 1.21.8 and above by @blakesmith in #2760
- [chore]: Bump github.com/technologize/otel-go-contrib from 1.1.0 to 1.1.1 by @dependabot in #2765
- [chore]: Bump golang.org/x/oauth2 from 0.17.0 to 0.18.0 by @dependabot in #2766
- Bump follow-redirects from 1.15.4 to 1.15.6 in /web/source by @dependabot in #2763
- [chore]: Bump github.com/tdewolff/minify/v2 from 2.20.18 to 2.20.19 by @dependabot in #2767
- [chore]: Bump modernc.org/sqlite from 1.29.4 to 1.29.5 by @dependabot in #2768
- [chore] Move local account settings to separate db table by @tsmethurst in #2770
- [chore]: Bump github.com/gin-contrib/gzip from 0.0.6 to 1.0.0 by @dependabot in #2781
- [chore]: Bump github.com/gin-contrib/cors from 1.7.0 to 1.7.1 by @dependabot in #2778
- [chore]: Bump github.com/coreos/go-oidc/v3 from 3.9.0 to 3.10.0 by @dependabot in #2779
- [chore]: Bump github.com/gin-contrib/sessions from 0.0.5 to 1.0.0 by @dependabot in #2782
- [chore/frontend] Adjust contrast, mute blurple a bit (meta update: blurple nerfed) by @tsmethurst in #2785
- Bump express from 4.18.2 to 4.19.2 in /web/source by @dependabot in #2790
- [chore] Vendor mkdocs fonts; update docs dependencies by @tsmeth...
v0.14.2 Spoiledest Sloth
Another day another bugfix release 😎
We fixed a bug in 0.14.0 and 0.14.1 that was causing 404 errors sometimes when viewing an account or its statuses, if that account had moved at some point.
No db migrations or config file changes between v0.14.1 and this version, so upgrading is as simple as updating your docker container or stopping GtS, untarring the release, and starting GtS again.
For instructions to update to this release from versions < v0.14.0, see the v0.14.0 release notes, but replace v0.14.0
with v0.14.2
throughout.
Thanks!
Detailed Changelog
v0.14.1 Spoileder Sloth
Hello! Here's a bugfix release!
There was a bug in 0.14.0 which was causing SQLite-backed instances to sometimes become unresponsive, with lots of errors in the logs containing interrupted(9)
(see #2728).
We poked around and this looks like an issue in our SQLite dependency, so we stepped down to the most recent stable version, and also added some code to prevent the problem from rendering an instance unresponsive.
No db migrations or config file changes between v0.14.0 and this version, so upgrading is as simple as updating your docker container or stopping GtS, untarring the release, and starting GtS again.
For instructions to update to this release from versions < v0.14.0, see the v0.14.0 release notes, but replace v0.14.0
with v0.14.1
throughout.
Thanks!
Detailed Changelog
v0.14.0 Spoiled Sloth
Look at that! This sloth is spoiled rotten! 🦥 👀
Here's GoToSocial version 0.14.0 Spoiled Sloth!
Release highlights
- Account aliasing. You can now set the
alsoKnownAs
field on your account via the settings panel, to indicate other accounts you own. This doesn't do much now, but it's the first step towards the Move implementation for account migration coming in v0.15.0. We originally wanted to include Move in this release but it needs more testing so we pushed it back. Hang in there :) - Much better thread sorting. Conversation threads on both the web view and client API use a new sorting mechanism which makes them way more readable. No longer will replies in a thread be scattered all over the place.
- Better HTTP signature support. We fixed a longstanding issue with including vs not including query parameters in signed GET requests. We now try (and accept) both methods of constructing signatures. Which leads to...
- Improved thread fetching. You'll see far fewer "orphaned" statuses in your timeline now, and you'll see more replies on statuses from other instances.
- Syntax highlighting for code blocks on the web UI. When you include a code block in your markdown now, and correctly indicate the language the code is written in, it will be syntax highlighted when rendered on your profile in the web UI. This requires javascript, but it's a progressive enhancement feature. Visitors to your profile with javascript turned off will just see the code block without syntax highlighting :)
- Improved "about this instance" page, with a link to the page in the nav bar. Previously the "about this instance" page was more or less hidden. We've now surfaced it better, so you can write all your terms and conditions and instance description stuff there. Relatedly....
- Parse instance descriptions and terms and conditions as markdown. Previously it was very difficult to properly edit these fields, because you had to read + write HTML to do so. Now they're parsed as markdown. This means you can more easily include things like blockquotes, lists, etc.
- Big refactor of HTML templates + CSS. We did a serious rework of HTML templates to fix indentation. Previously if you did "view source" on a GoToSocial profile page, you'd see a mess of sloppily-indented HTML. With this refactor, the HTML is now nicely indented and much more readable. We also did an accessibility pass and tested our HTML with various screen readers to try to make the web view a bit less annoying to navigate.
- First pass at a basic spam filtering system. In light of spam waves happening on the fediverse recently we took a crack at implementing a filter to drop messages identified as spam. This is still in the experimental stage, but it's included in this release so you can try it out already. See the docs for details.
Migration notes
Upgrading
To upgrade to 0.14.0 from a previous release:
Binary/tar
- Stop GoToSocial
- Untar the new release, including the web assets and html templates.
- Edit your config.yaml file as necessary (see below).
- Start GoToSocial
Docker
- Stop GoToSocial.
- Pull the new docker container (
superseriousbusiness/gotosocial:0.14.0
orsuperseriousbusiness/gotosocial:latest
) - Start GoToSocial.
config.yaml
The configuration file has changed since the previous release. You can see a diff of the config file here: v0.13.0...v0.14.0#diff-c071e03510b2c57e193a44503fd9528a785f0f411497cc75841a9f8d0b1ac622
Database Migrations
Instance description, short description, and terms
Because we changed the way instance description, short description, and terms are parsed and stored, you will need to re-enter these in the admin settings panel. After you've updated to this version, you can just copy-paste your existing descriptions and ToC from the index and about web pages of your instance, and paste them in to the appropriate fields in the settings panel.
(Custom) CSS and HTML
The big refactor of CSS and HTML means that custom CSS from 0.13.x versions of GoToSocial will likely not work as expected on versions >= 0.14.0. The HTML structure changed a bunch, and some of the class names and whatnot have changed as well. Sorry about that! But it needed to be done. For an example of custom css using the new class names and HTML structure, see the following:
/* Theme colors */
:root {
--acid-green: rgb(63, 255, 0);
--magenta: rgb(153, 50, 204);
/* Override */
--orange2: var(--acid-green);
}
html, body {
/* Funky scroll bar */
scrollbar-color: var(--acid-green) var(--gray1);
}
/* Instance display name */
.page-header {
grid-column: 2;
align-self: start;
margin: 1rem 0 1rem 0;
background-color: var(--gray1);
border: 0.25rem solid var(--magenta);
border-radius: var(--br);
}
/* Header card */
.profile .profile-header {
background-color: var(--gray1);
border: 0.25rem solid var(--magenta);
}
/* About + Pinned posts headers */
.profile .col-header {
background: var(--gray1);
border: 0.25rem solid var(--magenta);
}
.profile .about-user .col-header {
border-bottom: none;
margin-bottom: 0;
}
/* Change about sections */
.profile .about-user .fields, .profile .about-user .bio, .profile .about-user .accountstats {
background: var(--gray1);
border-left: 0.25rem solid var(--magenta);
border-right: 0.25rem solid var(--magenta);
}
/* Fiddle around with borders on about sections */
.profile .about-user .fields .field:first-child {
border-top: 0.25rem dashed var(--magenta);
}
.profile .about-user .fields .field {
border-bottom: 0.25rem dashed var(--magenta);
}
.profile .about-user .accountstats {
border-top: 0.25rem dashed var(--magenta);
border-bottom: 0.25rem solid var(--magenta);
}
/* Statuses + threads */
/* Thread column header */
.thread .col-header {
background: var(--gray1);
border: 0.25rem solid var(--magenta);
}
/* Main status body */
.status, .status.expanded {
background: var(--gray1);
border: 0.25rem solid var(--magenta);
}
/* Code snippets */
.status .text .content pre, .status .text .content code {
background: black;
color: var(--white2);
}
/* Block quotes */
.status .text .content blockquote {
background-color: black;
}
/* Media wrapper for attachments */
.status .media .media-wrapper {
background: var(--bg-nearly-opaque);
}
.status .media .media-wrapper details .unknown-attachment .placeholder {
border: 0.2rem dashed var(--magenta);
}
/* Polls */
.status .text .poll {
background-color: black;
border: 0.25rem solid var(--magenta);
}
.status .text .poll .poll-info {
background-color: black;
}
/* Status info bars */
.status .status-info, .status.expanded .status-info {
background: black;
}
/* Back + next links */
.backnextlinks {
background: var(--gray1);
padding: 0.5rem;
border: 0.25rem solid var(--magenta);
border-radius: var(--br);
}
.page-footer {
margin-top: 2rem;
background-color: var(--gray1);
border-top: 0.25rem solid var(--magenta);
}
Detailed changelog
Changelog for 0.13.0 vs 0.14.0. Some changes mentioned below may have already been included in 0.13.x releases.
Features / Performance
- [performance] simpler throttling logic by @NyaaaWhatsUpDoc in #2407
- [feature] Run ANALYZE after migrations on SQLite by @daenney in #2428
- [feature] Push status edit messages into open streams by @Sentynel in #2418
- [feature] request blocking by http headers by @NyaaaWhatsUpDoc in #2409
- [feature] Parse instance descriptors as markdown, show T&C on /about by @tsmethurst in #2481
- [feature] Allow webp emoji uploads / derefs by @tsmethurst in #2484
- [feature] Log pubKeyID for incoming http-signed requests by @tsmethurst in #2501
- [feature] Account alias / move API + db models by @tsmethurst in #2518
- [feature] Move + alias account via settings panel by @tsmethurst in #2519
- [performance] overhaul struct (+ result) caching library for simplicity, performance and multiple-result lookups by @NyaaaWhatsUpDoc in #2535
- [feature] Allow "charset=utf8" in incoming AP POST requests by @tsmethurst in #2564
- [feature] Ratelimit + serve emoji images on separate router group by @tsmethurst in #2548
- [performance] cache library performance enhancements (updates go-structr => v0.2.0) by @NyaaaWhatsUpDoc in #2575
- Improve context descendant sorting by @VyrCossont in #2579
- [feature] Try HTTP signature validation with and without query params for incoming requests by @ts...
v0.14.0-rc3 Spoiled Sloth
Hi hi! Here's the third release candidate for 0.14.0 :) Please see the previous release candidate for update and migration notes, but replace rc2
with rc3
throughout. Thanks!
Detailed Changelog
- f487fc5 [bugfix] Sanitize incoming PropertyValue fields (#2722)
- 0b35257 [docs] Update HTTP signature docs a bit (#2721)
- 66d9297 [bugfix/tracing] fix broken tracing due to conflicting schema url (#2712)
- c7845c7 [chore]: Bump golang.org/x/crypto from 0.19.0 to 0.20.0 (#2716)
- adb4cdc [chore]: Bump modernc.org/sqlite from 1.28.0 to 1.29.2 (#2718)
- ea0efb8 [bugfix] update postgresqlstmt to correctly use postgres err hook (#2711)
- 40ba936 [docs] Use human sizes for size limitations (#2706)
- fcecd0c [bugfix] unwrap boosts when checking in-reply-to status (#2702)
- c2a691f [chore] Disable the syslog long message over Unix datagram socket test on macOS (#2700)