summaryrefslogtreecommitdiff
path: root/CONTRIBUTING.md
AgeCommit message (Collapse)AuthorFiles
2025-10-03[chore] Use bulk updates + fewer loops in status rethreading migration (#4459)Libravatar tobi1
This pull request tries to optimize our status rethreading migration by using bulk updates + avoiding unnecessary writes, and doing the migration in one top-level loop and one stragglers loop, without the extra loop to copy thread_id over. On my machine it runs at about 2400 rows per second on Postgres, now, and about 9000 rows per second on SQLite. Tried *many* different ways of doing this, with and without temporary indexes, with different batch and transaction sizes, etc., and this seems to be just about the most performant way of getting stuff done. With the changes, a few minutes have been shaved off migration time testing on my development machine. *Hopefully* this will translate to more time shaved off when running on a vps with slower read/write speed and less processor power. SQLite before: ``` real 20m58,446s user 16m26,635s sys 5m53,648s ``` SQLite after: ``` real 14m25,435s user 12m47,449s sys 2m27,898s ``` Postgres before: ``` real 28m25,307s user 3m40,005s sys 4m45,018s ``` Postgres after: ``` real 22m31,999s user 3m46,674s sys 4m39,592s ``` Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4459 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com>
2025-09-17[chore] remove nollamas middleware for now (after discussions with a ↵Libravatar kim1
security advisor) (#4433) i'll keep this on a separate branch for now while i experiment with other possible alternatives, but for now both our hacky implementation especially, and more popular ones (like anubis) aren't looking too great on the deterrent front: https://github.com/eternal-flame-AD/pow-buster Co-authored-by: tobi <tobi.smethurst@protonmail.com> Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4433 Co-authored-by: kim <grufwub@gmail.com> Co-committed-by: kim <grufwub@gmail.com>
2025-07-09[chore/testing] Add env vars to skip testrig setup/teardown (#4317)Libravatar tobi1
Add flags to skip local testrig db setup and teardown, to allow somewhat easier testing of migrations. Documents env vars available to the testrig. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4317 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com>
2025-06-09[docs] change ID links in ToC to match goldmark parser behavior (#4223)Libravatar Nicole Mikołajczyk1
Signed-off-by: Nicole Mikołajczyk <git@mkljczk.pl> # Description I'm not sure if this should be handled this way, but some of the TOC links don't work on Forgejo due to, I guess, the Markdown parser behavior. This, however, makes them not work on GitHub ## Checklist - [x] I/we have read the [GoToSocial contribution guidelines](https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/CONTRIBUTING.md). - [ ] I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat. - [x] I/we have not leveraged AI to create the proposed changes. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4223 Co-authored-by: Nicole Mikołajczyk <git@mkljczk.pl> Co-committed-by: Nicole Mikołajczyk <git@mkljczk.pl>
2025-04-28[docs] Move docs links to codeberg (#4074)Libravatar tobi1
Update more links from github -> codeberg in the docs. Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4074 Co-authored-by: tobi <tobi.smethurst@protonmail.com> Co-committed-by: tobi <tobi.smethurst@protonmail.com>
2025-04-27[chore] Rewrite all remaining Github linksLibravatar Daenney1
2025-03-11[docs] Update swagger docs command (#3897)Libravatar tobi1
2025-03-08[chore] update links in CONTRIBUTING.md (#3881)Libravatar CDN1
2025-02-08[bug] Add missing `group` property to the Account model (#3746)Libravatar pnwmatt1
* Stub out account's Group parameter * Fix typo in Contributing documentation * Update swagger and match style * Update the swagger command to mimic test/swagger.sh * Fix tests for new `group` param in Account model * More test changes for new `group` param in Account * Continuing test changes for `group` param stubbing * Another round of `group` stubbing for tests
2024-12-02[chore] Replace Semaphore recommendation with Pinafore. (#3586)Libravatar Phil Hagelberg1
Neither Semaphore nor Pinafore are under active development, but Semaphore has archived its repository while Pinafore still gets occasional minor maintenance. Enafore has newer features, but it has accessibility bugs affecting screen readers that prevent it from being recommended at this time.
2024-10-16[chore] Upgrade golangci-lint, ignore existing int overflow warnings (#3420)Libravatar Markus Unterwaditzer1
* [chore] Bump tooling versions, bump go -> v1.23.0 * undo silly change * sign * bump go version in go.mod * allow overflow in imaging * goreleaser deprecation notices * [chore] Upgrade golangci-lint, ignore existing int overflow warnings There is a new lint for unchecked int casts. Integer overflows are bad, but the old code that triggers this lint seems to be perfectly fine. Instead of disabling the lint entirely for new code as well, grandfather in existing code. * fix golangci-lint documentation link * revert unrelated changes * revert another unrelated change * get rid of remaining nolint:gosec * swagger updates * apply review feedback * fix wrong formatting specifier thing * fix the linter for real --------- Co-authored-by: tobi <tobi.smethurst@protonmail.com>
2024-10-13[chore] Ensure current tag not set as `GORELEASER_PREVIOUS_TAG` (#3424)Libravatar tobi1
* [chore] Ensure current tag not set as `GORELEASER_PREVIOUS_TAG` * tweak tweak
2024-10-12[chore/bugfix] goreleaser make previous_tag cmd busybox-compatible (#3423)Libravatar tobi1
* [chore/bugfix] goreleaser make previous_tag cmd busybox-compatible * Please muy lorde
2024-10-12[chore] goreleaser - use custom previous tag (#3422)Libravatar tobi1
2024-03-29[chore] Vendor mkdocs fonts; update docs dependencies (#2789)Libravatar tobi1
* [chore] Update docs dependencies * update rtd deps * aaaa * why can't you just be normal! * vendor social plugin fonts
2024-02-14[docs] Inform new contributors to `git fetch` (#2637)Libravatar Leonora Tindall1
2024-02-12[docs] Enable some new features (#2623)Libravatar Daenney1
* [docs] Enable a bunch of markdown extensions * details makes admonitions collapsible and when started with ??? instead of !!! they'll be collpased by default * highlights are updated to include linenums by default but with a style that doesn't result in the linenums to be copy-pasted when selecting and pasting. This makes it possible to directly link to a specific line in the documentation instead of just the general page * caret, mark and tilde make it possible to highlight text and have super/subscripts * keys turns combos like `++ctrl+alt+del++` into HTML key elements showing a keyboard combination to press * tabbed makes it possible to have tabs within a document. Right now we have different sections sometimes to show the config for nginx, apache and Caddy, which can be turned into tabs instead and which tab is picked will get remebered * smartsymbols turns certain things, like `(c)` in the right symbol © * [docs] Upgrade all the python dependencies * [docs] Explain how to update conda deps
2023-10-23[chore] bump go version -> 1.21.x (#2287)Libravatar tobi1
* [chore] bump go version -> 1.21.x * versions * lint
2023-10-17[feature] Allow import/export/creation of domain allows via admin panel (#2264)v0.12.0-rc1Libravatar tobi1
* it's happening! * aaa * fix silly whoopsie * it's working pa! it's working ma! * model report parameters * shuffle some more stuff around * getting there * oo hoo * finish tidying up for now * aaa * fix use form submit errors * peepee poo poo * aaaaa * ffff * they see me typin', they hatin' * boop * aaa * oooo * typing typing tappa tappa * almost done typing * weee * alright * push it push it real good doo doo doo doo doo doo * thingy no worky * almost done * mutation modifers not quite right * hmm * it works * view blocks + allows nicely * it works! * typia install * the old linterino * linter plz
2023-10-05[chore] Convert some settings / admin panel JS to TypeScript (#2247)Libravatar tobi1
* initial conversion of STUFF to typescript * more stuff * update babel deps, include commonjs transform * update bundler & eslint configuration * eslint --fix * upgrade deps * update docs, build stuff, peripheral stuff --------- Co-authored-by: f0x <f0x@cthu.lu>
2023-08-09update coc (#2090)Libravatar kim1
* update coc * improve wording * point to coc doc in contributing doc * swap-out ancap for capitalist * fix git relative path * ACTUALLY fix the relative link * fix spelling of abhorrent
2023-08-01[feature] Allow users to skip http client tls verification for testing ↵Libravatar tobi1
purposes (with appropriately loud warnings) (#2052)
2023-07-08[docs] Clarify how to add a page (#1959)Libravatar Daenney1
* Add instructions on how to make a new page show up in the sidebar / navigation * Explain how to create a virtual env to install the dependencies in if you're not using Conda
2023-05-25[docs]: semaphone ref & DEBUG usage for standalone testing (#1828)Libravatar decentral1se1
* Point to semaphore for local testing * Use `DEBUG=1` when running the testrig * Provide an approach for install yarn Co-authored-by: decentral1se <cellarspoon@riseup.net>
2023-05-23[docs] local docs hacking howto (#1816)v0.9.0Libravatar decentral1se1
Co-authored-by: decentral1se <cellarspoon@riseup.net>
2023-03-04[feature] Allow loading TLS certs from disk (#1586)Libravatar Daenney1
Currently, GtS only supports using the built-in LE client directly for TLS. However, admins may still want to use GtS directly (so without a reverse proxy) but with certificates provided through some other mechanism. They may have some centralised way of provisioning these things themselves, or simply prefer to use LE but with a different challenge like DNS-01 which is not supported by autocert. This adds support for loading a public/private keypair from disk instead of using LE and reconfigures the server to use a TLS listener if we succeed in doing so. Additionally, being able to load TLS keypair from disk opens up the path to using a custom CA for testing purposes avoinding the need for a constellation of containers and something like Pebble or Step CA to provide LE APIs.
2023-02-27[chore] bump go, build, and lint version (#1570)Libravatar tobi1
2023-01-02[chore] The Big Middleware and API Refactor (tm) (#1250)Libravatar tobi1
* interim commit: start refactoring middlewares into package under router * another interim commit, this is becoming a big job * another fucking massive interim commit * refactor bookmarks to new style * ambassador, wiz zeze commits you are spoiling uz * she compiles, we're getting there * we're just normal men; we're just innocent men * apiutil * whoopsie * i'm glad noone reads commit msgs haha :blob_sweat: * use that weirdo go-bytesize library for maxMultipartMemory * fix media module paths
2022-12-17[chore] note broken go v1.19.4 in contributing.md (#1278)Libravatar tobi1
2022-12-09[docs] Update `CONTRIBUTING.md`, add pull request templates (#1216)Libravatar tobi1
* [docs] Update contributing.md - Add Pull Request process and guidelines. - Add feature/bug issue process. - Rearrange some sections for clarity. - Add overview of package structure. * [docs] Add build from source links * [chore] add pull request templates These link to the new CONTRIBUTING.md document, and include a checklist to validate that contributors have read the guidelines. * [docs] Put existing stub CoC in separate doc * update web related stuff in CONTRIBUTING.md Co-authored-by: f0x <f0x@cthu.lu>
2022-11-22[chore] fix broken buildx (whoops) (#1116)Libravatar tobi1
2022-11-22[docs] Document non-buildx cross compilation for docker image (#1115)Libravatar Forest Johnson1
* Enable / document cross compilation for docker image * remove sudo * explain whats up with BUILDPLATFORM/TARGETPLATFORM
2022-11-20[docs] update forking instructions (#1080)Libravatar tobi1
2022-11-15[chore] Update .drone.yml signature (#1052)Libravatar tobi1
* [chore] Update .drone.yml signature * update contributing.md
2022-11-02[frontend] Fix #923 and markdown css (#925)Libravatar Mia Heidenstedt1
* fix url in CONTRIBUTING.md * prevent img from overflow and allow to center the img * fix #923 and guide browser to select entire username
2022-09-28[chore] update dependencies, bump to Go 1.19.1 (#826)Libravatar kim1
* update dependencies, bump Go version to 1.19 * bump test image Go version * update golangci-lint * update gotosocial-drone-build * sign * linting, go fmt * update swagger docs * update swagger docs * whitespace * update contributing.md * fuckin whoopsie doopsie * linterino, linteroni * fix followrequest test not starting processor * fix other api/client tests not starting processor * fix remaining tests where processor not started * bump go-runners version * don't check last-webfingered-at, processor may have updated this * update swagger command * update bun to latest version * fix embed to work the same as before with new bun Signed-off-by: kim <grufwub@gmail.com> Co-authored-by: tsmethurst <tobi.smethurst@protonmail.com>
2022-08-18[docs] Textual updates on markdown files (#756)Libravatar Martijn de Boer1
* A few spelling and grammer fixes on readme Changes a few wording, some punctuation and grammar. * Grammar and punctuation on Roadmap Mostly grammar and punctuation on the roadmap * Update README.md Restore British English spelling of favourite, because it's used on the API endpoints in Roadmap as well. * Grammar and punctuation on Contributing Mainly grammar and punctuation on Contributing file.
2022-06-09[frontend] Restructure Frontend Sources (#634)Libravatar f0x521
* 🐸restructure frontend stuff, include admin and future user panel in main repo, properly deduplicate bundles for css+js across uses * rename bundled to dist, caught by gitignore * re-include status.css for profile template * default to localhost * serve frontend panels * add todo message for abstraction * refactor oauth registration flow * oauth restructure * update footer template * change panel routes * remove superfluous css imports * write bundle to disk from test server, use forked budo-express * wrap all page content in container for robustness with addons etc injection other elements in body * update documentation, goreleaser, Dockerfile * update template meta tags * add AGPL-3.0+ license header everywhere * only attach update listener on EventEmitter * cleaner config for various frontend bundles * fix bundler script paths * Merge commit 'd191931932b9293ce1be44ed08a1e69b9fcc1e25' * fix up dockerfile, goreleaser * go mod tidy * add uglifyify * move status hide/show js to frontend bundle * fix stylesheet color( func regressions * update contributing docs for new build path * update goreleaser + docker building * resolve dependency paths properly * update package name * use api errorhandler Co-authored-by: tsmethurst <tobi.smethurst@protonmail.com>
2022-05-23[docs] document a checklist for how to go about a release (#592)Libravatar Mina Galić1
This is the way. well, my recommendations, anyway.
2022-04-02[chore] Update Go version to 1.18 (#444)Libravatar tobi1
* linting with new golangci-lint version * update go to 1.18 * bump versions in drone.yml * use new runtime/debug package for version info * remove Commit build flag from goreleaser * remove mock commit + version from build script * go fmt * add dummy version env flag to test container * install git in golang container for testing * only set versionString if Version is defined
2021-12-07Implement Cobra CLI tooling, Viper config tooling (#336)Libravatar tobi1
* start pulling out + replacing urfave and config * replace many many instances of config * move more stuff => viper * properly remove urfave * move some flags to root command * add testrig commands to root * alias config file keys * start adding cli parsing tests * reorder viper init * remove config path alias * fmt * change config file keys to non-nested * we're more or less in business now * tidy up the common func * go fmt * get tests passing again * add note about the cliparsing tests * reorganize * update docs with changes * structure cmd dir better * rename + move some files around * fix dangling comma
2021-11-27run sqlite tests in parallel (#331)Libravatar tobi1
2021-11-22Enable stricter linting with golangci-lint (#316)Libravatar tobi1
* update golangci-lint * add golangci config file w/ more linters * correct issues flagged by stricter linters * add more generous timeout for golangci-lint * add some style + formatting guidelines * move timeout to config file * go fmt
2021-10-16Follow request improvements (#282)Libravatar tobi1
* tiny doc update * add rejectfollowrequest to db * add follow request reject to processor * add reject handler * tidy up follow request api * tidy up federation call * regenerate swagger docs * api endpoint tests * processor test * add reject federatingdb handler * start writing reject tests * test reject follow request * go fmt * increase sleep for slow test setups * more relaxed time.sleep
2021-09-24Goreleaser (#241)Libravatar tobi1
* add goreleaser tooling * add files + hook * update hooks * allow passing build-dir using cli args * build tweaks * tweak more * update drone and goreleaser * chill out tests * remove postgres * docker push on snapshot * update releaser
2021-09-13Thread views on the web (#207)Libravatar f0x521
* Webviews for status threads * fix up templates * add ForkAwesome and gotosocial-styling into repo * clean up gotosocial-styling, old styling * update CONTRIBUTING with new css building, and nodemon recommendation * update Dockerfile with new css bundling * those weren't supposed to make it in * upgrade gotosocial-styling deps * update authorize template with main wrapper * update css pipeline * abstract status from thread to avoid copy-pasting * basic CW implementation * fix PR review suggestions * fix no-image-desc icon alignment * remove template loading println * remove println * remove changes to testmodels * reset changes to testmodels
2021-09-10Test both dbs (#205)Libravatar tobi1
* move scripts, allow testing both dbs with one cmd * tidy + vendor * update test.sh to ignore cache * put test commands directly in drone.yml * change CONTRIBUTING slightly * go ham on the readme
2021-09-10migrate go version to 1.17 (#203)Libravatar tobi1
* migrate go version to 1.17 * update contributing
2021-08-16Text/status parsing fixes (#141)Libravatar Tobi Smethurst1
* aaaaaa * vendor minify * update + test markdown parsing
2021-08-12Grand test fixup (#138)Libravatar Tobi Smethurst1
* start fixing up tests * fix up tests + automate with drone * fiddle with linting * messing about with drone.yml * some more fiddling * hmmm * add cache * add vendor directory * verbose * ci updates * update some little things * update sig