Well well well, look what the sloth dragged in... the first release candidate for v0.13.0, Spider Sloth.
Release highlights
- Create, view, and vote in polls. It's been a while in the making but GoToSocial now has support for polls, aka Question activity types. You can create, view, and vote in polls using your client of choice.
- Show unsupported media placeholders in incoming posts, where media could not be downloaded (temporarily or otherwise). No more dropped media on posts! You'll instead now get a link to the media on the originating instance, that you can click through in your (mobile) browser.
- Mute threads that you're being overwhelmed by. Notifications for replies, likes, and boosts in that thread will no longer be generated.
- Media cleanup scheduling. Previously media scheduling took place every night at 12am. With the new media scheduling settings in the config, you can customize the schedule to run it at different times and frequencies. https://docs.gotosocial.org/en/latest/admin/media_caching/#cleanup
- Support for setting instance language . You can use the new
instance-languages
setting to indicate one or more primary languages for your instance. https://docs.gotosocial.org/en/latest/configuration/instance/ - Support for language tags on posts. Language of posts is now correctly federated in and out of your instance. The language of posts is also shown on the web view of statuses and threads.
- Gather and expose prometheus format metrics. You can now expose a
/metrics
endpoint to allow a Prometheus instance to scrape metrics about Go runtime memory usage, http request and database metrics, and more. https://docs.gotosocial.org/en/latest/advanced/metrics/
Migration notes
Upgrading
To upgrade to 0.13.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.13.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.12.2...v0.13.0-rc1#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
Feature / performance
- [feature] Status thread mute/unmute functionality by @tsmethurst in #2278
- [feature] attach any request errors if found, only set level=ERROR if code >= 500 by @NyaaaWhatsUpDoc in #2300
- [feature] Customizable media cleaner schedule by @tsmethurst in #2304
- [feature] add per-uri dereferencer locks by @NyaaaWhatsUpDoc in #2291
- [performance] Remove account_suspended_at_idx to resolve slow query issues by @Sentynel in #2310
- [feature] support canceling scheduled tasks, some federation API performance improvements by @NyaaaWhatsUpDoc in #2329
- [feature] add support for polls + receiving federated status edits by @NyaaaWhatsUpDoc in #2330
- [feature] Media attachment placeholders by @tsmethurst in #2331
- [feature/performance] Wrap incoming HTTP requests in timeout handler by @tsmethurst in #2353
- [feature] Set/show instance language(s); show post language on frontend by @tsmethurst in #2362
- [feature] Initial metrics by @Tsuribori in #2334
- [feature] Federate status language in and out by @tsmethurst in #2366
- [feature] Poll web view by @tsmethurst in #2377
- [performance] http response encoding / writing improvements by @NyaaaWhatsUpDoc in #2374
- [feature] Add
/api/v1/admin/debug/apurl
endpoint by @tsmethurst in #2359 - [performance/postgres] Rename constraints, remove duplicate indexes by @tsmethurst in #2392
Bugfixes
- [bugfix/frontend] Add
nosubmit
option to form fields; use it when instance custom CSS disabled by @tsmethurst in #2290 - [bugfix] serialize instance terms via API by @tsmethurst in #2293
- [bugfix/frontend] Export/import CSV correctly by @tsmethurst in #2294
- [bugfix] allow store smaller PNG image than 261 bytes (#2263) by @KEINOS in #2298
- [bugfix] Extract description as
summary
first, fall back toname
by @tsmethurst in #2303 - [bugfix] Allow blocked accounts to show in precise search by @tsmethurst in #2321
- [bugfix] Relax
Mention
parsing, allowing either href or name by @tsmethurst in #2320 - [bugfix] fix poll vote count responses on client and fedi API vote creation by @NyaaaWhatsUpDoc in #2343
- [bugfix] actually decrement votes during poll vote delete ... by @NyaaaWhatsUpDoc in #2344
- [bugfix/docs] Poll api fixups + swagger docs by @tsmethurst in #2345
- [bugfix] Don't try to update suspended accounts by @tsmethurst in #2348
- [chore/bugfix/horror] Allow
expires_in
and poll choices to be parsed from strings by @tsmethurst in #2346 - [bugfix] support incoming endless polls, and misskey's' method of inferring expiry in closed polls by @NyaaaWhatsUpDoc in #2349
- [bugfix] Update poll delete/update db queries by @tsmethurst in #2361
- [bugfix] process account delete side effects in serial, not in parallel by @tsmethurst in #2360
- [bugfix] self-referencing collection pages for status replies by @NyaaaWhatsUpDoc in #2364
- [bugfix] Add Actor to outgoing poll vote Create; other fixes by @tsmethurst in #2384
- [bugfix] Don't copy ptr fields in caches by @tsmethurst in #2386
- [bugfix] Correctly handle range > content-length by @Jadeiin in #2395
- [bugfix] Update exif-terminator (fix png issue) by @tsmethurst in #2391
- [bugfix] always go through status parent dereferencing on isNew, even on data-race by @NyaaaWhatsUpDoc in #2402
- [bugfix] return 400 Bad Request on more cases of malformed AS data by @NyaaaWhatsUpDoc in #2399
- [bugfix] in fedi API CreateStatus(), handle case of data-race and return early by @NyaaaWhatsUpDoc in #2403
- [bugfix/chore]
Announce
reliability updates by @tsmethurst in #2405
Chores and version bumps
- [chore]: Bump github.com/coreos/go-oidc/v3 from 3.6.0 to 3.7.0 by @dependabot in #2284
- [chore] de-interface{} the federator and dereferencer structs by @NyaaaWhatsUpDoc in #2285
- [chore] bump go version -> 1.21.x by @tsmethurst in #2287
- Bump @babel/traverse from 7.23.0 to 7.23.2 in /web/source by @dependabot in #2269
- [chore] update minify library by @NyaaaWhatsUpDoc in #2286
- [chore] bump go swagger version in Docker build by @tsmethurst in #2292
- [chore]: Bump google.golang.org/grpc from 1.58.2 to 1.58.3 by @dependabot in #2301
- [chore]: Bump github.com/tdewolff/minify/v2 from 2.19.10 to 2.20.0 by @dependabot in #2316
- [chore]: Bump github.com/yuin/goldmark from 1.5.6 to 1.6.0 by @dependabot in #2318
- Bump browserify-sign from 4.2.1 to 4.2.2 in /web/source by @dependabot in #2305
- [chore]: Bump github.com/google/uuid from 1.3.1 to 1.4.0 by @dependabot in #2315
- 🙈 by @NyaaaWhatsUpDoc in #2322
- [chore]: Bump modernc.org/sqlite from 1.26.0 to 1.27.0 by @dependabot in #2339
- [chore]: Bump github.com/tdewolff/minify/v2 from 2.20.0 to 2.20.6 by @dependabot in #2337
- [chore]: Bump github.com/jackc/pgx/v5 from 5.4.3 to 5.5.0 by @dependabot in #2336
- [chore]: Bump github.com/spf13/cobra from 1.7.0 to 1.8.0 by @dependabot in #2338
- [chore] update otel -> v1.20.0 by @tsmethurst in #2358
- [chore/whoops] re-add missing languages flag by @tsmethurst in #2365
- [chore]: Bump golang.org/x/image from 0.13.0 to 0.14.0 by @dependabot in #2367
- [chore]: Bump go.opentelemetry.io/otel from 1.20.0 to 1.21.0 by @dependabot in #2369
- [chore]: Bump github.com/tdewolff/minify/v2 from 2.20.6 to 2.20.7 by @dependabot in #2370
- [chore/security] refactor AuthenticateFederatedRequest() to handle account deref + suspension checks by @NyaaaWhatsUpDoc in #2371
- [chore]: Bump github.com/go-jose/go-jose/v3 from 3.0.0 to 3.0.1 by @dependabot in #2375
- [bugfix/chore] id poll options properly by @tsmethurst in #2379
- [chore/bugfix] Fix double gzip on prometheus endpoint by @tsmethurst in #2383
- [chore]: Bump golang.org/x/net from 0.17.0 to 0.18.0 by @dependabot in #2390
- [chore]: Bump github.com/gin-contrib/cors from 1.4.0 to 1.5.0 by @dependabot in #2388
- [chore]: Bump codeberg.org/gruf/go-byteutil from 1.1.2 to 1.2.0 by @dependabot in #2389
- [chore]: Bump codeberg.org/gruf/go-mutexes from 1.3.0 to 1.3.1 by @dependabot in #2387
- [chore]: Bump github.com/gorilla/websocket from 1.5.0 to 1.5.1 by @dependabot in #2335
- [chore] Re-add indexes, rename account actions indexes by @tsmethurst in #2401
Docs
- [docs] added split-domain configuration for Caddy 2 by @wuchyi in #2288
- [docs/bugfix] fix link to swagger yaml by @tsmethurst in #2333
- [docs] Annotate split-domain setup by @daenney in #2372
- [docs] Add a warning about SQLite cache sizes by @daenney in #2378
- [documentation] add poll and poll vote details to gotosocial federating doc by @NyaaaWhatsUpDoc in #2381
- [docs] Explain how to secure metrics endpoints by @daenney in #2382
- [docs] Add docs about memory requirements and swap by @daenney in #2385
New Contributors
- @KEINOS made their first contribution in #2298
- @wuchyi made their first contribution in #2288
- @Tsuribori made their first contribution in #2334
- @Jadeiin made their first contribution in #2395
Full Changelog: v0.12.2...v0.13.0-rc1