Both siblings' pipelines are near-identical; the real difference between them is which forge is canonical. This is Agendula's spine — it pushes the tag to Codeberg itself and flags pre-1.0 releases as pre-releases — with Calendula's `play` job grafted on unchanged. Taking Agendula's spine means there is no Gitea-canonical phase to migrate out of later, which is the one thing Agendula had to unwind. The Codeberg publish step stays NOT continue-on-error, inherited that way deliberately: in Agendula it reported green through five consecutive releases while never once publishing, which is how a crash-fix release reached F-Droid but not the users who needed it. Comments that recount that history now name Agendula, so an inherited scar isn't misread as ours. The `play` job runs last and isolated, and skips cleanly until PLAY_SERVICE_ACCOUNT_JSON exists — so it stays dormant through the whole pre-1.0 run, which is the correct behaviour anyway. Templates, the contributing guide and verify-release.sh are rewritten for this app's domain rather than renamed: the architectural rule here is that Room types stay in the data layer, and the on-device release check is an alarm that survives a lock screen and a reboot, not a task list that loads. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L94fydiJC37LtxVusNQBDy
44 lines
1.5 KiB
Markdown
44 lines
1.5 KiB
Markdown
<!--
|
|
Thanks for contributing to Clockula!
|
|
|
|
Please skim CONTRIBUTING.md if you haven't:
|
|
https://codeberg.org/jlmakiola/clockula/src/branch/main/CONTRIBUTING.md
|
|
|
|
Two things it's easy to get wrong:
|
|
• The one architectural rule — Room entities, DAOs and `@Query` strings never
|
|
leak above the data layer. Everything else talks to a repository.
|
|
• Don't bump `versionName` / `versionCode`. That bump reaching `main` is what
|
|
cuts a release, so it belongs only in a release PR.
|
|
-->
|
|
|
|
### What this changes
|
|
|
|
|
|
### Why
|
|
|
|
<!-- Closes #123 — link the issue this implements or fixes. -->
|
|
|
|
|
|
### How it was tested
|
|
|
|
<!--
|
|
Which of these ran green, and anything you exercised by hand. On-device notes
|
|
are especially useful for UI changes, and essential for anything touching the
|
|
alarm engine — an alarm that doesn't ring is the one bug that matters most, and
|
|
it only ever reproduces on a real device overnight.
|
|
|
|
./gradlew lintDebug :app:testDebugUnitTest :app:assembleDebug
|
|
python3 scripts/check_translations.py
|
|
-->
|
|
|
|
|
|
### Checklist
|
|
|
|
- [ ] `./gradlew lintDebug :app:testDebugUnitTest :app:assembleDebug` passes locally
|
|
- [ ] New domain logic comes with JVM unit tests under `app/src/test/`
|
|
- [ ] Room types stay inside the data layer
|
|
- [ ] No `values-*/strings.xml` touched (Weblate owns those; new English strings in `values/` are fine)
|
|
- [ ] `CHANGELOG.md` updated under `## [Unreleased]`, if the change is user-visible
|
|
- [ ] No `versionName` / `versionCode` bump
|
|
- [ ] No planning or design documents committed
|