v0.11.0 Sloppy Sloth
Hello comrades!
Here's v0.11.0 of GoToSocial, Sloppy Sloth!
It's got a lot of stuff in it (when do our releases not have a lot of stuff in them?), so, we hope you like stuff!
Release highlights
We're making a habit of finally getting around to implementing features that people have been asking for forever. In this spirit, the following things are now implemented:
- Hashtags! Wow, finally! You can write a post with hashtags, and that post will be federated out with those hashtags set on the post. It's like magic! And that's not all, no no, posts will federate in with the correct hashtags set on them as well, so you can view posts using that hashtag in your client application of choice. This won't retroactively apply for all posts sitting in your database, see the note about hashtags below under migration notes for more details.
- Account notes! You can now set, view, and unset your own private notes on accounts (depending on what client you're using).
- Markers! Client applications can now set and retrieve markers for timeline paging.
- List replies policies now work as they should!
- Lots of performance stuff: we tweaked our cacheing configuration, increased the amount of concurrent database connections that sqlite can use, and more. Things oughta feel a teensy bit faster :)
Migration notes
Upgrading
To upgrade to 0.11.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.11.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.10.0...v0.11.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!
Hashtags
Where are all the hashtags??
This update does not cause all hashtagged statuses currently in your database to show up in hashtag timelines, because that would require a large + annoying database migration with a huge amount of calls to remote instances all at once.
Instead, from this release onwards, your instance will begin to process hashtags correctly on new posts that it sees after you upgrade.
Your instance will also update existing posts that it sees again (because of boosts, or status searches, replies, etc) with appropriate hashtags.
In other words, don't expect to see a busy and bustling hashtag timeline immediately; it will populate over time!
Why can't I view hashtags at https://[my-instance]/tags/some_hashtag
in my browser?
Simply put, we haven't decided yet whether we want to expose all hashtagged posts on a web page like Mastodon and other servers do. You can view hashtag timelines in your client, but it didn't feel right to start showing other people's posts on a hashtag web page that just anyone can access without authentication. We're still figuring out the best thing to do for those hashtag web endpoints that your instance now has :)
Detailed changelogs
Features + Performance
- [feature] Lower remote media cache config duration by @daenney in #2007
- [feature] Report Masto version in /api/v1/instance by @daenney in #1977
- [feature/performance] support uncaching remote emoji + scheduled cleanup functions by @NyaaaWhatsUpDoc in #1987
- [performance] retry db queries on busy errors by @NyaaaWhatsUpDoc in #2025
- [feature] Support setting private notes on accounts by @VyrCossont in #1982
- [feature] Implement markers API by @VyrCossont in #1989
- [performance] cache follow, follow request and block ID lists by @NyaaaWhatsUpDoc in #2027
- [feature] Hashtag federation (in/out), hashtag client API endpoints by @tsmethurst in #2032
- [feature] Set timezone in Docker using TZ env variable by @tsmethurst in #2050
- [feature] Allow users to skip http client tls verification for testing purposes (with appropriately loud warnings) by @tsmethurst in #2052
- [feature] simpler cache size configuration by @NyaaaWhatsUpDoc in #2051
- [performance] add caching of status fave, boost of, in reply to ID lists by @NyaaaWhatsUpDoc in #2060
- Allow full BCP 47 in language inputs by @VyrCossont in #2067
- [feature] List replies policy, refactor async workers by @tsmethurst in #2087
- [performance] remove last of relational queries to instead rely on caches by @NyaaaWhatsUpDoc in #2091
- [feature] Set Content-Security-Policy header by @daenney in #2095
- [feature] destroy capitalism
Bugfixes
- [bugfix/frontend] Decode URI component domain before showing on frontend by @tsmethurst in #2043
- [bugfix] Allow instance accounts to be shown in search results in certain circumstances by @tsmethurst in #2053
- [bugfix] handle HEAD requests more elegantly by @NyaaaWhatsUpDoc in #2055
- [bugfix] fix slow accounts / statuses using emojis lookups by @NyaaaWhatsUpDoc in #2056
- [bugfix] Rework MultiError to wrap + unwrap errors properly by @tsmethurst in #2057
- [bugfix] update cache library with nil ptr fix by @NyaaaWhatsUpDoc in #2070
- [bugfix] don't accept unrelated statuses by @NyaaaWhatsUpDoc in #2078
- [bugfix] only set content-length AFTER rewinding body bytes by @NyaaaWhatsUpDoc in #2086
- [bugfix] Fix incorrect per-loop variable capture by @daenney in #2092
- [bugfix] Use length in runes when trimming for RSS by @tsmethurst in #2094
- [bugfix] Populate
followRequest
before accessingTargetAccount
ptr by @tsmethurst in #2099 - [bugfix] Use custom bluemonday policy to disallow inline
img
tags by @tsmethurst in #2100 - [bugfix] Fix using wrong key for clientID during oauth callback by @tsmethurst in #2101
- [bugfix] Suppress 'errNoEntries' warnings from InboxForwarding function call by @tsmethurst in #2102
- [bugfix] Add s3 endpoint as image-src and media-src for CSP by @tsmethurst in #2103
- [bugfix] CSP policy fixes for S3/object storage by @daenney in #2104
- [bugfix] bump go-kv version with logfmt quote fix by @NyaaaWhatsUpDoc in #2108
- [fix] Update CSP header for blob images (upload preview) and dev livereload by @f0x52 in #2109
- [bugfix] fix inconsistent calculated cache sizes by @NyaaaWhatsUpDoc in #2115
Chores + Version Bumps
- Bump word-wrap from 1.2.3 to 1.2.4 in /web/source by @dependabot in #2001
- [chore]: Bump github.com/go-playground/form/v4 from 4.2.0 to 4.2.1 by @dependabot in #1994
- [chore]: Bump github.com/minio/minio-go/v7 from 7.0.59 to 7.0.60 by @dependabot in #1992
- [chore]: Bump github.com/jackc/pgx/v5 from 5.4.1 to 5.4.2 by @dependabot in #1991
- [chore]: Bump modernc.org/sqlite from 1.23.1 to 1.24.0 by @dependabot in #1993
- [chore] Admin CLI + new account creation refactoring by @tsmethurst in #2008
- [chore] Disable the right webfinger test by @daenney in #2018
- [chore]: Bump go.uber.org/automaxprocs from 1.5.2 to 1.5.3 by @dependabot in #2020
- [chore]: Bump github.com/jackc/pgconn from 1.14.0 to 1.14.1 by @dependabot in #2024
- [chore]: Bump codeberg.org/gruf/go-cache/v3 from 3.4.1 to 3.4.3 by @dependabot in #2022
- [chore]: Bump github.com/yuin/goldmark from 1.5.4 to 1.5.5 by @dependabot in #2023
- [chore]: Bump github.com/microcosm-cc/bluemonday from 1.0.24 to 1.0.25 by @dependabot in #2021
- chore: update go-mp4 to latest commit by @theSuess in #2028
- [chore] fix merge issue by @tsmethurst in #2029
- [chore] Update activity dependency by @tsmethurst in #2031
- [chore]: Bump github.com/minio/minio-go/v7 from 7.0.60 to 7.0.61 by @dependabot in #2041
- [chore]: Bump github.com/abema/go-mp4 from 0.10.2-0.20230727031202-a1a707db6ecd to 0.11.0 by @dependabot in #2042
- [chore] Remove go-playground/validator by @daenney in #2069
- [chore]: Bump golang.org/x/image from 0.9.0 to 0.11.0 by @dependabot in #2074
- [chore]: Bump golang.org/x/crypto from 0.11.0 to 0.12.0 by @dependabot in #2077
- [chore]: Bump github.com/abema/go-mp4 from 0.11.0 to 0.12.0 by @dependabot in #2075
- [chore]: Bump golang.org/x/oauth2 from 0.10.0 to 0.11.0 by @dependabot in #2076
- [chore]: Bump github.com/tdewolff/minify/v2 from 2.12.7 to 2.12.8 by @dependabot in #2073
- [chore] Use generic pointer function by @daenney in #2080
- [chore] Add Feditext as recommended client by @daenney in #2081
- [chore] Update robots.txt, give chatgpt the middle finger by @tsmethurst in #2085
- [chore] Add test to ensure
show_reblogs
on follow works as expected by @tsmethurst in #2093
Documentation
- [docs] fix postgres create database command by @ekeih in #2071
- update coc by @NyaaaWhatsUpDoc in #2090