Spider Sloth, Spider Sloth, does whatever a .... sloth does?
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
Error #01: authentication NOT PASSED for public key
You will see lots of errors in your logs now that look like this. This is normal, and not a new bug! Previously, we were not surfacing these authentication errors, and now we are. They are caused by #894, which we will fix some time in the new year. Again, not a new bug. This will not effect normal running of your instance.
Upgrading
To upgrade to 0.13.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.13.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.12.2...v0.13.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 + 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
- [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] 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/frontend] Add
nosubmit
option to form fields; use it when instance custom CSS disabled by @tsmethurst in #2290 - [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 - Remove account_suspended_at_idx to resolve slow query issues by @Sentynel in #2310
- [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 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 - [bug] Fix an import statement in the gen template by @daenney in #2426
- [bugfix] Fix wrong notification type sent for poll end by @tsmethurst in #2429
- [bugfix] Fix web media not showing as sensitive by @tsmethurst in #2433
- [bugfix] Ensure
pre
renders as expected, fix orderedCollectionPage by @tsmethurst in #2434 - [bugfix] Narrow search scope for accounts starting with '@'; don't
LOWER
SQLite text searches by @tsmethurst in #2435 - [bugfix] Make screenreaders read out Language of posts properly by @tsmethurst in #2436
- [bugfix] ensure the 'Closing' flag doesn't get cached by @NyaaaWhatsUpDoc in #2443
- [bugfix] poll vote count fixes by @NyaaaWhatsUpDoc in #2444
- [bugfix] Let templates deref pointers, as a treat by @tsmethurst in #2448
- [bugfix] use a much shorter refresh limit for statuses with polls by @NyaaaWhatsUpDoc in #2453
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
- [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
- [chore]: Bump github.com/gorilla/feeds from 1.1.1 to 1.1.2 by @dependabot in #2414
- [chore]: Bump golang.org/x/crypto from 0.15.0 to 0.16.0 by @dependabot in #2413
- [chore]: Bump github.com/minio/minio-go/v7 from 7.0.63 to 7.0.65 by @dependabot in #2415
- [chore]: Bump github.com/tdewolff/minify/v2 from 2.20.7 to 2.20.9 by @dependabot in #2416
- [chore]: Bump go.opentelemetry.io/otel/exporters/prometheus from 0.43.0 to 0.44.0 by @dependabot in #2412
- [chore/frontend] Refactor status templates slightly, put polls behind CWs if present by @tsmethurst in #2419
- [chore] Run
ANALYZE
for SQLite after latest migrations by @tsmethurst in #2427 - [chore]: Bump github.com/coreos/go-oidc/v3 from 3.7.0 to 3.9.0 by @dependabot in #2442
- [chore]: Bump golang.org/x/oauth2 from 0.13.0 to 0.15.0 by @dependabot in #2438
- [chore]: Bump github.com/miekg/dns from 1.1.56 to 1.1.57 by @dependabot in #2439
- [chore]: Bump github.com/KimMachineGun/automemlimit from 0.3.0 to 0.4.0 by @dependabot in #2440
Documentation
- [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
- [docs] Change configuration creation instructions by @daenney in #2408
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