Skip to content

Releases: superseriousbusiness/gotosocial

v0.16.0-rc2

11 Jun 10:28
611f9de
Compare
Choose a tag to compare
v0.16.0-rc2 Pre-release
Pre-release

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

v0.16.0-rc1 Snappy Sloth

08 Jun 13:21
048339a
Compare
Choose a tag to compare
Pre-release

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

  1. Stop GoToSocial
  2. Untar the new release, including the web assets and html templates.
  3. Edit your config.yaml file as necessary (see below).
  4. Start GoToSocial

Docker

  1. Stop GoToSocial.
  2. Pull the new docker container (superseriousbusiness/gotosocial:0.16.0-rc1 or superseriousbusiness/gotosocial:latest)
  3. 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

⚠️ 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 or more (on slower hardware). Please be patient! ⚠️

Detailed Changelog

Features + Performance

Bugfixes

Read more

v0.15.0 Shagadelic Sloth

11 Apr 09:14
15733cd
Compare
Choose a tag to compare

Hey nerds! 🌷 🦥 🌸

First spring time release of GoToSocial, here's version 0.15.0 Shagadelic Sloth!

Release highlights

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

  1. Stop GoToSocial
  2. Untar the new release, including the web assets and html templates.
  3. Edit your config.yaml file as necessary (see below).
  4. Start GoToSocial

Docker

  1. Stop GoToSocial.
  2. Pull the new docker container (superseriousbusiness/gotosocial:0.15.0 or superseriousbusiness/gotosocial:latest)
  3. Start GoToSocial.

config.yaml

No config file changes in this release compared to 0.14.2.

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 or more (on slower hardware). Please be patient! ⚠️

Detailed changelog

Features / performance

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 with gitlab.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...
Read more

v0.15.0-rc2

08 Apr 09:59
6db7d01
Compare
Choose a tag to compare
v0.15.0-rc2 Pre-release
Pre-release

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 with gitlab.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

02 Apr 14:08
65b5366
Compare
Choose a tag to compare
Pre-release

Hey nerds! 🌷 🦥 🌸

First spring time release of GoToSocial, here's the first release candidate for version 0.15.0 Shagadelic Sloth!

Release highlights

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

  1. Stop GoToSocial
  2. Untar the new release, including the web assets and html templates.
  3. Edit your config.yaml file as necessary (see below).
  4. Start GoToSocial

Docker

  1. Stop GoToSocial.
  2. Pull the new docker container (superseriousbusiness/gotosocial:0.15.0-rc1 or superseriousbusiness/gotosocial:latest)
  3. Start GoToSocial.

config.yaml

No config file changes in this release compared to 0.14.2.

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 or more (on slower hardware). Please be patient! ⚠️

Detailed changelog

Features / performance

Bugfixes

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...
Read more

v0.14.2 Spoiledest Sloth

11 Mar 10:00
Compare
Choose a tag to compare

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

  • 0bd95d7 [bugfix] Don't error when populating MovedTo if account not found (#2741)
  • 0326318 [chore] seperate snapshot from release in goreleaser (#2740)

v0.14.1 Spoileder Sloth

08 Mar 11:01
Compare
Choose a tag to compare

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

  • ce3ae09 [chore] Downgrade sqlite v1.29.2 -> v1.28.0 (#2736)
  • 6418785 [bugfix] add workaround for Xsqlite_interrupt() permanently breaking connection (#2731)

v0.14.0 Spoiled Sloth

06 Mar 09:41
7bc536d
Compare
Choose a tag to compare

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

  1. Stop GoToSocial
  2. Untar the new release, including the web assets and html templates.
  3. Edit your config.yaml file as necessary (see below).
  4. Start GoToSocial

Docker

  1. Stop GoToSocial.
  2. Pull the new docker container (superseriousbusiness/gotosocial:0.14.0 or superseriousbusiness/gotosocial:latest)
  3. 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

⚠️ 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! ⚠️

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...
Read more

v0.14.0-rc3 Spoiled Sloth

04 Mar 11:00
f487fc5
Compare
Choose a tag to compare
Pre-release

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)

v0.14.0-rc2 Spoiled Sloth

28 Feb 12:21
504c4f2
Compare
Choose a tag to compare
Pre-release

Look at that! This sloth is spoiled rotten! 🦥 👀

Here's the second release candidate for GoToSocial version 0.14.0 Spoiled Sloth!

What happened to the first release candidate, you say? Well, it didn't work properly. But this one does.

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-rc2 from a previous release:

Binary/tar

  1. Stop GoToSocial
  2. Untar the new release, including the web assets and html templates.
  3. Edit your config.yaml file as necessary (see below).
  4. Start GoToSocial

Docker

  1. Stop GoToSocial.
  2. Pull the new docker container (superseriousbusiness/gotosocial:0.14.0-rc2 or superseriousbusiness/gotosocial:latest)
  3. 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-rc2#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! ⚠️

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-rc2. Some changes mentioned below may have already been included in 0.13.x releases.

Features / Performance

Read more