GoAT Site is library that implements Standard.site in Go.
atprotocol standard-site atproto library
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

docs(info): contributing guide

+114
+114
CONTRIBUTING.md
··· 1 + # Contributing to GoAT Site 2 + 3 + Before opening a pull request (PR) or an issue, check the existing ones to avoid creating a duplicate. 4 + 5 + If you find a bug or if you have a suggestion to improve the library, you may open an issue. 6 + 7 + ## Pull Requests 8 + 9 + Fork the repo, create a branch, commits and then open a PR. 10 + We encourage you to open an issue first (if yours does not resolve one). 11 + When you are writing the description of your PR, don't forget to link it. 12 + 13 + Please, [test your code](#testing-your-code)! 14 + 15 + When you have finished your PR, one of our maintainers will review your work. 16 + If everything is fine, it will be merged (yay :D). 17 + If your work is mostly good, the reviewer will ask you to fix issues. 18 + If your PR has conceptual issues, it will be closed and the reviewer will explain you why. 19 + 20 + **Read the rest of this document to avoid losing your (and our) times.** 21 + 22 + We encourage you to watch 23 + [this conference at FOSDEM 2026](https://fosdem.org/2026/schedule/event/L7ERNP-prs-maintainers-will-love/) to understand 24 + how to write good PR. 25 + 26 + ## Use of AI 27 + 28 + The maintainers of GoAT Site do not use LLMs. 29 + We are against this technology for many reasons, but we can't stop you from using these tools. 30 + 31 + **When you are interacting with us, do not use an LLM.** 32 + If you are, we will instantly close your issue/your PR. 33 + 34 + **If you have used an LLM to help you, you must inform us.** 35 + We will not reject your work for this reason. 36 + If you hide this, we will instantly close your issue/your PR. 37 + 38 + We will not accept poorly written code with useless comments. 39 + We will not accept code that does not follow our code style. 40 + We will not accept PR that does not follow our contributing guide. 41 + You have to modify the LLM's output. 42 + You have to test the code that you want to be merged. 43 + If you don't understand something created by an LLM, avoid creating a PR/an issue, thanks you. 44 + 45 + **Remember that GoAT Site is made for humans and by humans.** 46 + If your contribution does not follow this vision, avoid contributing. 47 + Every PR is reviewed by at least one human, every issue is triaged by at least one human, every line of code was written 48 + for humans. 49 + 50 + ## Style 51 + 52 + To standardize and make things less messy, we have a certain code style that is persistent throughout the codebase. 53 + 54 + ### Commits 55 + 56 + A commit is an atomic modification. 57 + It cannot be divided into smaller ones. 58 + It must update tests and it must work without additional commits. 59 + 60 + We follow this simple schema for their name: 61 + ``` 62 + kind(scope): description 63 + ``` 64 + `kind` is the kind of modification: 65 + - `feat` for an addition 66 + - `refactor` for a refactor 67 + - `fix` for fixing an issue 68 + - `style` for the code style 69 + - `docs` for the documentations 70 + - `build` for building tools 71 + - `ci` for CI/CD 72 + 73 + `scope` indicates the part touched of your modification. 74 + We commonly use `ws` for websocket, `guild` for `guild` and `guild/guildapi` packages... 75 + 76 + `description` is a *short* description of your modification. 77 + If you want to explain more things, include them in other lines (not the first one). 78 + 79 + If your history is messy, you must modify it and force push the updated version. 80 + In futur versions of git, you will be able to use the new `git-history(1)` to edit this easily. 81 + 82 + ``` 83 + fix(ws): not panicing if bad setup during connection 84 + ``` 85 + is fixing an issue related to websocket. 86 + Before this commit, the bot was not panicing if there is a bad setup during the connection. 87 + After this commit, this issue is fixed. 88 + 89 + ``` 90 + feat(logger): option to trim version in caller 91 + ``` 92 + is adding something to the logger. 93 + Now, the developer can use an option to trim versions. 94 + 95 + ### Organization 96 + 97 + The package `site` (root) follows strictly the Standard.site. 98 + Other packages contain extensions of the standard. 99 + 100 + ## Testing your code 101 + 102 + Before submitting a PR, you must test your changes. 103 + 104 + First, you can simply run tests with 105 + ```bash 106 + go test -race ./... 107 + ``` 108 + 109 + If everything looks fine, we encourage you to create a simple project in another directory to test your changes: 110 + ```bash 111 + go work init . # init a new go.work file for this module 112 + go work use path/to/goat-site # override the GoAT Site in the go.mod by the one present in this folder 113 + ``` 114 +