v0.6.0 Soothing Sloth
Hello everyone! Welcome to the v0.6.0 alpha release of GoToSocial, aka Soothing Sloth!
We've been very busy the last months making a preposterous amount of changes to the code, fixing bugs, and building a prettier frontend and settings panel.
Highlights of this release:
- Brand spanking new combined profile settings/admin panel at
/settings
. - Custom emoji categories! Editing custom emojis via the admin panel!
- New, higher contrast default color scheme for web views.
- Opt-in support for an RSS feed of your public posts!
- Markdown format for account bio/note (if you have markdown enabled as your default post format).
- Set your instance thumbnail via the admin panel!
- And more!
This is by far the biggest release we've ever done of GoToSocial :) Thank you to everyone who raised issues, contributed code and documentation, supported us financially and emotionally, and helped us squash bugs 🐛 Your help has been much appreciated!
Migration notes
This release contains database migrations which will run when you first launch the new version. PLEASE DO NOT INTERRUPT THE DATABASE MIGRATION or you may end up putting your database in a broken state which will require manual intervention to fix! The migration should take somewhere between 1 and 30 seconds, depending on the speed of your machine.
If updating from the binary release tar, make sure to update the frontend assets too, which are also in the tar. This release contains changes to html templates, css, and javascript.
Docker Users -- we've slightly changed the way GoToSocial operates inside a container, to make it stricter. To avoid getting read-only / permissions errors, you may need to stop GtS and run chown -R 1000:1000 [your_gotosocial_storage_directory]
, and then start GtS again.
Detailed Changelog
Features
- 5a0e418 [feature] Support PKCS1 "RSA PUBLIC KEY" pem block type (#1179)
- 13e9abd [feature] Add
admin media prune orphaned
CLI command (#1146) - 665d902 [feature/frogend] modify local emoji (#1143)
- b6dbe21 [feature]
PATCH /api/v1/admin/custom_emojis/{id}
endpoint (#1061) - 50dc179 [feature] Prune timelines once per hour to plug memory leak (#1117)
- 67106c9 [feature] Support markdown format for Account bio/note (#1037)
- aa5c4e0 [frogend] Emoji categories (#1051)
- a39a664 [feature] Serialize local account role via API, and show it via web view (#1045)
- 4cd00d5 [feature] Allow newly uploaded emojis to be placed in categories (#939)
- d120743 [feature] add instance-expose-public-timeline flag (#1039)
- edcee14 [feature] Read + Write tombstones for deleted Actors (#1005)
- 948e90b [feature] S3: add config flag to proxy S3 media (#1014)
- b4f7316 [feature] Make instance thumbnail configurable via admin panel (#973)
- eb25739 [frontend] Custom Emoji Deletion (#994)
- 4d66fb9 [feature] Make rate limit requests amount configurable (#966)
- f3fc040 [feature] Allow user to show instead of landing page on / (#922)
- f7416d6 [feature] Add emoji DELETE handler at
/api/v1/admin/custom_emojis
(#913) - 6a95f5f [feature] Add
/api/v1/admin/custom_emojis/{id}
endpoint for single emoji GET (#910) - 70d65b6 [feature] Refetch emojis when they change on remote instances (#905)
- 3ca7164 [frontend] Use new GET custom_emoji admin api (#908)
- 30aaedb [frontend] use ISO639 library for language selection (#909)
- eb85ef7 [feature] Add
/api/v1/admin/custom_emojis
endpoint (#902) - 8066306 [feature] Add opt-in RSS feed for account's latest Public posts (#897)
- 3bb45b7 [feature]
oob
oauth token support (#889) - f8528aa [feature] Add emoji image size to instance response (#892)
- 1a56352 [frontend] scroll to highlighted toot, improve highlight (#885)
- fe238f8 [frontend] change spacing of status, text always on it's own line, move status date on mobile (#883)
- f7af7c0 [feature] Enlarge active/hovered custom emojis in statuses (#877)
- 1d99971 [feature] update config types to use bytesize.Size (#828)
- dd83ad0 [feature] Add
meta robots
tag; allow robots to index profile card if user is Discoverable (#842) - 938328c [frontend] Unified panels (#812)
Bug fixes
- 611df7b [bugfix]: Prevent extension of S3 presigned url TTL (#1208)
- 281f712 [bugfix] Fix
admin account confirm
on pre-confirmed account setting email address to empty string (#1203) - 34716d7 [bugfix] Add missing continues in emoji get funcs (#1200)
- 85524f8 [bugfix/frontend] fix profile grid scaling in webkit based browsers (#1193)
- cf20397 [bugfix] Use case-insensitive selects when getting remote accounts by username/domain (#1191)
- 3a11861 [bugfix] Don't call
strings.ToLower()
on usernames when selecting account by domain+username (#1190) - 8d581de [bugfix] use correct key for PATCHing admin email (#1189)
- 927117d [bugfix] Avoid accidentally marking changed emojis as orphaned + pruning them (#1188)
- a1dda22 [bugfix] change page width to prevent scrollbar overflow (#1182)
- cfa8d79 [bugfix] don't return error during account serialize on deleted emoji (#1177)
- d445c60 [bugfix] wrap the correct error on failed account update (#1176)
- 0c1b1b0 fix missing lookup cache key for invalid domain block (#1158)
- c534230 [bugfix] Use Host domain for UA (#1156)
- e6cd81b [bugfix]: Fix IPv6 validation (#1150)
- 9e18c7f [bugfix] Change emailVerified to true for admin account create (#1140)
- 3e82196 [bugfix] Fix status boosts giving 404 (#1137)
- da89548 [bugfix] Prevent future statuses entering timelines (#1134)
- 9be1685 [bugfix] fix possible infinite loop on federated AP profile delete (#1091)
- 5210977 [bugfix] Fix unicode-unaware word boundary check in hashtags (#1049)
- 96f11e7 [bugfix] Fix login on Mastodon iOS app for users with no statuses (#1042)
- 05a8baa [bugfix] KVStore doesn't like lost+found directory (#972)
- 15be356 [bugfix] Check
media-description-min-chars
on submission of new status (#960) - a9addb5 [bugfix] Increase field size limits when registering apps (#958)
- ee6a0a1 [bugfix] use the landing page user directly (#956)
- 1dfa7fe [bugfix] Wrap media in read closer (#941)
- bd05040 [bugfix] Use []rune to check length of user-submitted text (#948)
- 29a71cf [frontend] Fix #923 and markdown css (#925)
- 4a925e4 [bugfix] create admin_account_actions table in tx (#940)
- 31f0f27 [bugfix] Fix imports for helpers.gen.go (#924)
- c7ba195 [bugfix] Prevent future statuses showing in timelines (#932)
- 5cd0872 [bugfix] add in-use checks for admin cli account creation (#904)
- 5cf0f99 [bugfix] Fix new domain block date (#893)
- 359ed1b [bugfix] Use background context instead of request context for async processing (#888)
- 196e474 fix emojis not showing in spoiler text (#878)
- 97b747b [bugfix] Fix incorrect use of bun.Ident (#866)
Performance
- bc917a4 [performance]: make s3 urls cacheable (#1194)
- c9d893f [feature/performance] Fail fast when doing remote transport calls inside incoming request contexts (#1119)
- 5d55e8d [performance] add account block DB cache and remove block query joins (#1085)
- 45ae719 [performance] replace account emojis relational query with separate calls to emojiDB to rely on cache (#1074)
- dccc2ee [performance] replace status query relationals with separate calls in order to rely on caches more (#1073)
- d98a48b [performance] don't use relations to select notification structs, use caches instead (#1072)
- 0e57246 [feature] various worker / request queue improvements (#995)
- e58a6a2 [performance] cache domains after max retries in transport (#884)
- 56f53a2 [performance] add user cache and database (#879)
Chores
- 847e7c7 [chore] Fix a few possible cases of int truncation (#1207)
- bb7948f [chore/frontend] remove domain block edit functionality until implemented in backend (#1199)
- 558b448 [chore] Remove duplicate prefixes from sanitizer (#1195)
- 97f5453 [chore] Tidy up some of the search logic (#1082)
- daf44ac [chore] Bump database dependencies (#1164)
- fe39d50 [chore]: Bump codeberg.org/gruf/go-store/v2 from 2.0.9 to 2.0.10 (#1160)
- c5ae88c [chore] Set User-Agent header in transport (#1154)
- d6f4d19 Tweak the User-Agent a bit (#1153)
- 746f3fa Additional IP range validations (#1152)
- 5c5c8ce [chore] Fix frogend admin emoji patch (#1148)
- fcb9c0b [chore] cleanup storage implementation, no need for multiple interface types (#1131)
- 5ba5fb3 [chore/frogend] fix profile preview css, use role info (#1130)
- 1281a9f [chore/frontend] remove references to unused bundle.js (#1128)
- 11cd608 [chore] fix broken buildx (whoops) (#1116)
- a898160 [chore] use kv.KVStore also for S3 storage (#1113)
- f88cb3a [chore] markdown: disable Smartypants rendering (#1111)
- 0c2971a [chore] update readme with kim's links (#1093)
- 274626a [chore]: Bump github.com/minio/minio-go/v7 from 7.0.43 to 7.0.44 (#1107)
- 4a95385 [chore] simplify logging to remove "safetywriter" given os.File has concurrency protection (#1083)
- 2eea3d5 [chore] improve errors returned fetching account/statues from DB (#1084)
- be3d999 [chore] Little Dockerfile updates (#1071)
- c1824b0 [chore] Replace blocking Floc with Topics. (#1068)
- f3e87ba [chore] cicd: snapshot
snapshot
instead of latest (#1066) - 81c1fe0 [frogend] upgrade deps (#1063)
- 940abc2 [chore] reversion: use specific columns for updating user again (#1059)
- 8598dea [chore] update database caching library (#1040)
- 9ebc29b [chore] Update .drone.yml signature (#1052)
- 1f256e2 [chore] refactor test/cliparsing.sh into a go test below internal/config (#1036)
- fece7fa [chore] fix profile spacing on very small screens (#1050)
- 8c20ccd [chore] Remove unused
admin account suspend
action (#1047) - 8f2d3ca [chore]: Bump codeberg.org/gruf/go-cache/v3 from 3.1.7 to 3.1.8 (#1043)
- e8c733d [chore] bump go-cache to v3.1.7 to fix possible issues with zero value keys (#1038)
- 6fb4765 [chore] Fixes + updates in emoji dereferencing logic (#1022)
- 3ce0e33 [chore] close in-storage media reader before opening write, no need to leave it hanging around (#1016)
- ebff71f [chore/frontend] CI steps for frontend stuff (#997)
- ad08c6c [frontend] fix conflict introduced by merge (#1007)
- be011b1 [chore]: Bump github.com/spf13/viper from 1.13.0 to 1.14.0 (#1003)
- a51da97 [chore]: Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 (#1002)
- a9a43be [chore]: Bump github.com/microcosm-cc/bluemonday from 1.0.20 to 1.0.21 (#1004)
- 18e7e00 [chore] dependabot: prefix correctly, ignore npm deps (#1001)
- 7c0bbd3 [chore] update gruf libraries (#996)
- 53a1e47 [chore] Fix rel="nofollow" so that it only applies to external links (#991)
- 076680a [chore] Bump github.com/tdewolff/minify/v2 from 2.12.1 to 2.12.4 (#985)
- 459a5c8 [chore] Bump github.com/minio/minio-go/v7 from 7.0.37 to 7.0.43 (#983)
- a5f31e5 [chore] Bump github.com/spf13/cobra from 1.5.0 to 1.6.1 (#982)
- e7978f6 [chore] Bump github.com/go-playground/validator/v10 from 10.11.0 to 10.11.1 (#980)
- 1638470 Bump golang.org/x/text from 0.3.7 to 0.4.0 (#981)
- 1a23fb0 [chore] Enable Dependabot support for Go modules (#976)
- f800970 [chore] gitignore /bin entry (#970)
- fc9038d bump dependencies (#959)
- bcb80d3 [chore] bump gruf/go-store to v2 (#953)
- c4c7139 [frontend] change bundler to skulk (#942)
- f81f1e7 [chore] Bump CI dependencies (#944)
- 2a83390 [chore] update profile screenshot (#927)
- b4a83e4 FIx typo (#918)
- 80c2833 [frontend] small fixes (#907)
- 832befd [chore] Make paging logic more generic (#901)
- aa07750 [chore] Standardize database queries, use
bun.Ident()
properly (#886) - 41aad21 [frontend] Make emojis v. slightly larger (#891)
- 51ff62d [chore] Reduced distributed assets with 'optipng -o7 -zm1-9 -keep FILENAME' between 28-56% (#890)
- 3d9fb49 [chore] Old browser fixes (#882)
- 5249294 [chore] Bundler restructure (#880)
- deba75c [chore] Use shorter timestamps in frontend for replies (#875)
- 651303d [chore] Normalize domain blocks to punycode (#873)
- 9fcfe61 [chore] small logging cleanup (#869)
- f0bf69d [chore] Add ipv6 localhost to trusted proxies by default (#868)
- ff16864 [chore] Update go swagger version in dockerfile (#867)
- 2f22780 [chore] simplify generating log entry caller information (#863)
- a156188 [chore] update dependencies, bump to Go 1.19.1 (#826)
Documentation
- f9e5ec9 [docs] Remove filesystem logging directives from example systemd unit config (#1206)
- 1652633 [docs] Add AppArmor profile for Debian and Ubuntu installations (#1183)
- 8b0c92e [docs] Explain that before 0.6.0, account confirm was necessary. (#1149)
- 8942a70 [docs] Clarify that reverse proxy setups need trusted-proxies (#1127)
- 90bbcf1 [docs] Document http/s/socks5 proxy use (#1118)
- 6d43319 [docs] Document non-buildx cross compilation for docker image (#1115)
- b153808 [docs] Add first draft of FAQ (#1086)
- 0490440 [docs] update forking instructions (#1080)
- 2216f25 [docs] Move and document logs (#1076)
- c964856 [docs] Remove trailing / from proxy_pass for nginx (#1077)
- 91c3489 [docs] Add AUR Reference (#1054)
- c56998f [docs] add account domain documentation (#1065)
- 1852175 [docs] Update docker.md with docker tag / version stuff (#1067)
- 9ab6013 [docs] Both HTTP proxies and NAT can cause rate limiting issues (#1053)
- e2e2bed [docs] Use correct Friendica link in README (#1046)
- f7cde0d [documentation] Change default log path (#1030)
- b755906 [docs] postgres collation warning (#1017)
- 847a466 [docs] Replace old references to the previous streaming with websockets (#1015)
- b08fd12 [docs] add link to SELinux policy (#993)
- 0d51d5c [docs] refer to the latest release version (#992)
- 298a7ad [docs] add note about Alpha status right at the top (#971)
- 2311c8e [docs] add matrix space to readme (#952)
- ba46e62 [docs] Update apache-httpd.md (#937)
- 47de702 [docs] Change Apache SSL setup to automatic and manual mode (#936)
- ea90d12 [docs] Add Apache HTTP Server without LetsEncrypt (#935)
- 972bd17 [docs] Update Apache2 HTTP Server docs for websockets (#934)
- c0a2d70 [docs] Update swagger.md (#933)
- ccd5b34 [docs] Use correct form for status submit (#915)
New Contributors
- @EchedeyLR made their first contribution in #890
- @mscherer made their first contribution in #918
- @i5heu made their first contribution in #924
- @LawnGnome made their first contribution in #956
- @lzap made their first contribution in #970
- @jauderho made their first contribution in #976
- @buro9 made their first contribution in #991
- @kaja47 made their first contribution in #992
- @sargant made their first contribution in #1030
- @dbkr made their first contribution in #1042
- @psa made their first contribution in #1068
- @jelly made their first contribution in #1054
- @NoraCodes made their first contribution in #1077
- @manfre made their first contribution in #1037
- @noerw made their first contribution in #1111
- @dequis made their first contribution in #1127
- @daenney made their first contribution in #1150
- @kernelmethod made their first contribution in #1183
- @ftrvxmtrx made their first contribution in #1179