docs: add a contributing guide

Codeberg became canonical for issues, PRs and releases, but there was
nothing telling a contributor how any of it works — no CONTRIBUTING.md at
all, and no contributor entry point in the README.

The workflow it documents is issue-first: a feature needs a yes-or-no
before it needs code, since whether Calendula should do a thing is the one
decision a patch cannot make. Both features and bugs get a milestone, and
that milestone names the branch a PR targets (2.18.0 -> release/v2.18.0),
because main is a release trigger rather than a staging area. Typo and docs
fixes skip straight to a PR — an issue-per-typo helps nobody.

Two traps get their own sections because both waste a contributor's whole
afternoon: translations never go through PRs (Weblate owns every values-*
file, German included, and overwrites hand-edits on the next sync), and a
clone without --recurse-submodules cannot configure at all, since
floret-kit is a composite build compiled from source.

The rules section is the invariants that actually turn into review
comments — no network, no second database, no hand-patching UI state after
a write, domain/ free of Android imports, JVM-first tests, and the
reproducible-build flags that the official F-Droid repo depends on.
This commit is contained in:
2026-07-30 10:13:36 +02:00
parent db7094c54e
commit fbb14f9334
8 changed files with 359 additions and 0 deletions

View File

@@ -0,0 +1,18 @@
# Kept enabled so anything that doesn't fit the four templates still has a way
# in (the `ToDo` label exists for exactly those).
blank_issues_enabled: true
contact_links:
- name: Translate Calendula
url: https://weblate.dev.jeanlucmakiola.de/engage/calendula/
about: >-
Translations are managed on Weblate, not here — it owns every values-*
file, so a hand-edited translation gets overwritten on the next sync.
No coding needed: pick or request a language and translate in the browser.
- name: Contributing guide
url: https://codeberg.org/jlmakiola/calendula/src/branch/main/CONTRIBUTING.md
about: >-
Before opening a pull request: the issue-first workflow, which release
branch to target, how to build (there's a submodule), and the
architectural rules a change is reviewed against.