v0.12.0 Spaghetti Sloth 🍝
Hello! Here's version 0.12.0 of GoToSocial, codename SPAGHETTI SLOTH 🍝
Release highlights
This release brings initial support for different federation modes, starting with allowlist federation mode. You can now set your federation mode to allowlist, and then add and remove domain allows via the admin settings panel. You can read documentation on this feature here: https://docs.gotosocial.org/en/latest/admin/federation_modes/.
We revamped some other bits of the settings panel too, including adding a setting for the discoverable flag, which is documented here: https://docs.gotosocial.org/en/latest/user_guide/settings/#mark-account-as-discoverable-by-search-engines-and-directories
We also added settings for instance rules: you can now add and remove rules for your instance, and users on your instance can select rules that have been broken when creating reports. Rules are shown on the /about
page for your instance.
And as usual we did a whole bunch of bug fixing, performance tweaks, and that sort of thing! It's a bit of a cliche to put that in release notes, but there you go.
We also started implementing some background functionality for poll support, but we didn't quite finish that in time for this release, so polls are not yet enabled. Next time!
Migration notes
Settings panel
You may get an error when using the new settings panel code for the first time, since we moved some stuff around. To resolve this, please try clearing cookies for the page using your browser settings, refreshing the page, and then logging in again.
Building frontend from source
If you build the frontend assets (settings panel, css, etc) yourself from source, please be aware that the instructions for building have changed slightly: https://github.com/superseriousbusiness/gotosocial/blob/main/CONTRIBUTING.md#stylesheet--web-dev
Upgrading
To upgrade to 0.12.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.12.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.11.1...v0.12.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!
Detailed Changelog
Features and performance
- [feature] Add snapshot binary builds + uploads by @tsmethurst in #2119
- [feature] Instance rules by @f0x52 in #2125
- [feature/bugfix] Probe S3 storage for CSP uri, add config flag for extra URIs by @tsmethurst in #2134
- [performance] Tweak media attachment cleanup; replace stale index by @tsmethurst in #2143
- [feature] Make log format configurable by @daenney in #2130
- [performance] Rework home timeline query to use cache more by @tsmethurst in #2148
- [feature] Add rate limit exceptions option, use ISO8601 for rate limit reset by @tsmethurst in #2151
- [feature] list commands for both attachment and emojis by @rdelaage in #2121
- [feature] Store admin actions in the db, prevent conflicting actions by @tsmethurst in #2167
- [feature] Don't trace non-existing routes by @daenney in #2172
- [feature] Support OTLP HTTP, drop Jaeger by @daenney in #2184
- [feature] Support Actor URIs for webfinger queries by @daenney in #2187
- [feature] Allow admins to expire remote public keys; refetch expired keys on demand by @tsmethurst in #2183
- [feature] add paging to account follows, followers and follow requests endpoints by @NyaaaWhatsUpDoc in #2186
- [feature] add paging to AP following / followers endpoints by @NyaaaWhatsUpDoc in #2198
- [feature] Implement explicit domain allows + allowlist federation mode by @tsmethurst in #2200
- [frontend] Add
discoverable
flag to settings panel by @tsmethurst in #2235 - [feature] Block a bunch of "AI" crawlers by @daenney in #2239
- [feature] tentatively start adding polls support by @NyaaaWhatsUpDoc in #2249
- [performance] updates markdown parsing to reduce allocations by @NyaaaWhatsUpDoc in #2252
- [feature] Allow import/export/creation of domain allows via admin panel by @tsmethurst in #2264
Bugfixes
- [bugfix] fix double firing bun.DB query hooks by @NyaaaWhatsUpDoc in #2124
- [bugfix/frontend] Normalize header sizes by @tsmethurst in #2152
- [bugfix] wrap bun.Tx to add our own error processing by @NyaaaWhatsUpDoc in #2169
- [bugfix] move SQLite pragmas into connection string by @NyaaaWhatsUpDoc in #2171
- [bugfix] fix checks for deref the same status descendants / ascendants by @NyaaaWhatsUpDoc in #2181
- [bugfix] fix flakey paging test by @NyaaaWhatsUpDoc in #2210
- [bugfix] support both CollectionPage AND OrderedCollectionPage in status replies by @NyaaaWhatsUpDoc in #2220
- [bugfix] Move
follow.show_reblogs
check further up to avoid showing unwanted reblogs in home timeline by @tsmethurst in #2234 - [bugfix] Fix paging for empty items by @tsmethurst in #2236
- [bugfix/frontend] Fix 'steal this look' emoji promise mapping by @tsmethurst in #2270
- [frontend/bugfix] Fix bulk import export link by @tsmethurst in #2275
- [bugfix] Postgres error wrapping fix by @tsmethurst in #2276
- [bugfix] Add missing "local" param in public timeline link headers by @tsmethurst in #2277
- [bugfix/frontend] fix typo and other oddness in patchRemoteEmojis by @tsmethurst in #2281
Chores and version bumps
- [chore] ensure worker contexts have request ID by @NyaaaWhatsUpDoc in #2120
- [chore]: Bump modernc.org/sqlite from 1.24.0 to 1.25.0 by @dependabot in #2114
- [chore]: Bump github.com/abema/go-mp4 from 0.12.0 to 0.13.0 by @dependabot in #2113
- [chore]: Bump github.com/jackc/pgx/v5 from 5.4.2 to 5.4.3 by @dependabot in #2112
- [chore]: Bump github.com/yuin/goldmark from 1.5.5 to 1.5.6 by @dependabot in #2140
- [chore]: Bump github.com/minio/minio-go/v7 from 7.0.61 to 7.0.62 by @dependabot in #2141
- [chore]: Bump codeberg.org/gruf/go-kv from 1.6.3 to 1.6.4 by @dependabot in #2142
- [chore/frontend] Make line-height a wee little bit bigger by @tsmethurst in #2159
- [chore]: Bump github.com/KimMachineGun/automemlimit from 0.2.6 to 0.3.0 by @dependabot in #2165
- [chore]: Bump github.com/google/uuid from 1.3.0 to 1.3.1 by @dependabot in #2166
- [chore]: Bump golang.org/x/text from 0.12.0 to 0.13.0 by @dependabot in #2177
- [chore]: Bump github.com/minio/minio-go/v7 from 7.0.62 to 7.0.63 by @dependabot in #2180
- [chore]: Bump golang.org/x/image from 0.11.0 to 0.12.0 by @dependabot in #2178
- [chore] Add script for downloading latest snapshot tar.gz by @tsmethurst in #2157
- [chore] much improved paging package by @NyaaaWhatsUpDoc in #2182
- [chore]: Bump golang.org/x/crypto from 0.12.0 to 0.13.0 by @dependabot in #2190
- [chore]: Bump github.com/tdewolff/minify/v2 from 2.12.8 to 2.12.9 by @dependabot in #2194
- [chore]: Bump golang.org/x/net from 0.14.0 to 0.15.0 by @dependabot in #2193
- [chore] bump bun v1.1.14 -> v1.1.15 by @tsmethurst in #2195
- [chore] bump bun (and related libraries) versions to v1.1.16 by @NyaaaWhatsUpDoc in #2209
- [chore]: Bump github.com/miekg/dns from 1.1.55 to 1.1.56 by @dependabot in #2204
- [chore]: Bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp from 1.17.0 to 1.18.0 by @dependabot in #2207
- fix typo in slice.go by @kaja47 in #2219
- [chore] deinterface the typeutils.Converter and update to use state structure by @NyaaaWhatsUpDoc in #2217
- [chore]: Bump github.com/abema/go-mp4 from 0.13.0 to 1.0.0 by @dependabot in #2222
- [chore]: Bump golang.org/x/oauth2 from 0.11.0 to 0.12.0 by @dependabot in #2223
- [chore]: Bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.17.0 to 1.18.0 by @dependabot in #2221
- [chore] Enable S256 code challenge by @daenney in #2224
- [chore/bugfix] Deinterface text.Formatter, allow underscores in hashtags by @tsmethurst in #2233
- [chore]: Bump go.opentelemetry.io/otel/sdk from 1.18.0 to 1.19.0 by @dependabot in #2242
- [chore]: Bump modernc.org/sqlite from 1.25.0 to 1.26.0 by @dependabot in #2243
- [chore]: Bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.18.0 to 1.19.0 by @dependabot in #2244
- [chore]: Bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp from 1.18.0 to 1.19.0 by @dependabot in #2246
- [chore] internal/ap: add pollable AS types, code reformatting, general niceties by @NyaaaWhatsUpDoc in #2248
- [chore] Convert some settings / admin panel JS to TypeScript by @tsmethurst in #2247
- [chore]: Bump golang.org/x/net from 0.15.0 to 0.16.0 by @dependabot in #2260
- [chore]: Bump github.com/abema/go-mp4 from 1.0.0 to 1.1.1 by @dependabot in #2257
- [chore]: Bump golang.org/x/image from 0.12.0 to 0.13.0 by @dependabot in #2256
- [chore]: Bump golang.org/x/oauth2 from 0.12.0 to 0.13.0 by @dependabot in #2258
- [chore]: Bump golang.org/x/net from 0.16.0 to 0.17.0 by @dependabot in #2262
- [chore]: Bump github.com/microcosm-cc/bluemonday from 1.0.25 to 1.0.26 by @dependabot in #2266
Docs
- [docs] Update backup docs by @daenney in #2153
- [docs] add fail2ban example regex in the doc by @OniriCorpe in #2189
- [docs] Add a note on cluster support by @daenney in #2214
- [docs] ahs article milestone a by @tsmethurst in #2218
- [docs] statuses-query-pinned #2250 by @kkbt0 in #2251
- [docs] Update README.md by @tsmethurst in #2279