summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreltrac <hi@eltr.ac>2026-09-11 17:47:21 +0800
committereltrac <hi@eltr.ac>2026-09-11 17:48:05 +0800
commit28059216a2c00a2b6383760ae74a4aba4c49fd12 (patch)
tree68452ca294e6bc475a95db381da16d6dd349dcad
parentf72f439bfbb775e9c0fc53131b46c9900434f320 (diff)
docs: add CONTRIBUTING.md
link CONTRIBUTING.md in README.md
-rw-r--r--CONTRIBUTING.md71
-rw-r--r--README.md4
2 files changed, 75 insertions, 0 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..4eda53a
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,71 @@
+# Contributing to Weepinbell
+
+## First step
+
+Go to [Issues](https://codeberg.org/eltrac/weepinbell/issues) and find ones labeled [contribution welcome](https://codeberg.org/eltrac/weepinbell/issues?q=&type=all&state=open&labels=2145577&milestone=0&assignee=0&poster=0), or [good first issue](https://codeberg.org/eltrac/weepinbell/issues?q=&type=all&state=open&labels=2145589&milestone=0&assignee=0&poster=0) if you're contributing for the first time.
+
+Once you find an issue you think you'll be able to help with, read the conversation and ask if anyone else has already been working on it. If not, you can fork the repository and work on your fork!
+
+## Commits and Pull Requests
+
+1. Use [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/).
+2. **Squash** your changes to a few large, standalone commits, and **rebase** `master` before you create a PR. This keeps the history clean.
+3. Make sure you've run `lein test` and manually verified your changes before submitting PR.
+4. Keep description simple and concise.
+
+## Set up environment
+
+Install Clojure and [Leinigen](https://leiningen.org/).
+
+To install dependencies:
+
+```
+lein deps
+```
+
+To start REPL:
+
+```
+lein repl
+```
+
+To start a dev server:
+
+```
+lein ring server
+```
+
+To run project:
+
+```
+lein run
+```
+
+To compile:
+
+```
+lein uberjar
+```
+
+Make sure to run our test suite and solve bugs captured by tests before you commit and create a PR. To run tests:
+
+```
+lein test
+```
+
+## Generated Code Policy
+
+We do not accept generated code, for the same reasons as Clojure:
+
+> Clojure’s code is written and reviewed by humans. Code generated by a large language model or similar technology, such as Anthropic’s Claude, GitHub/Microsoft’s Copilot, OpenAI’s ChatGPT, Facebook/Meta’s Code Llama et al, is not compliant with the covenants and representations of Clojure’s Contributor’s Agreement, and is thus not acceptable as code for Clojure.
+>
+> An exception may be made for human written generators whose source code is contributed along with the patch.
+
+*from [Clojure's Contributor Agreement](https://clojure.org/dev/contributor_agreement#_no_generated_code)*
+
+Also, refer to Codeberg's [Terms of Use](https://codeberg.org/Codeberg/org/commit/96fac426a32d1ba91ff879366d59bf1af54080c2):
+
+> 7. You must not share projects that mostly consist of code written by "generative AI"-tools (including services such as *Claude*, *OpenAI Codex*). Such projects having an unclear copyright status (see requirements § 2 (1) 1 and § 2 (1) 3) and furthermore have little safeguards to ensure that they do not include harmful code (c.f. § 2 (1) 5).
+
+Generated code, especially by an LLM, is not the prompter's to license. Such code may not be compatible with our GNU Affero General Public License.
+
diff --git a/README.md b/README.md
index f273bfe..e2fcf01 100644
--- a/README.md
+++ b/README.md
@@ -160,6 +160,10 @@ Get `<token>` in [webmention.io settings](https://webmention.io/settings). `<new
This script basically just resends all webmentions to Weepinbell. To avoid being mistaken as attacks, webmentions are resent every 0.5 seconds, so it might take a long time.
+## Contributing
+
+See [CONTRIBUTING.md](/CONTRIBUTING.md)
+
## License
Weepinbell is free software licensed under the GNU Affero General Public License.