Files
calendula/docs
Jean-Luc Makiola b3fe98907e
Some checks failed
Release — F-Droid repo + Gitea/Codeberg release + Play / detect (push) Successful in 6s
Release — F-Droid repo + Gitea/Codeberg release + Play / release (push) Successful in 13m53s
Release — F-Droid repo + Gitea/Codeberg release + Play / play (push) Failing after 1m24s
Release v2.19.4 (#259)
Release v2.19.4.

**Fixed**
- A deleted occurrence stays deleted through a series re-timing, and through backup/restore ([#225]).
- "Only this event" saves the edit on calendars that never synced, and on a row that doesn't recur it edits or deletes the event itself instead of filing an exception against nothing.
- A reminder left on the account's default is no longer read as a lead time of Calendula's own.
- The widgets turn the page at midnight; the re-arm backstop for the inexact rollover alarm is back, throttled to once per 15 minutes on calendar changes.
- An event running past midnight can be dragged by either half ([#253]).
- One event the provider refuses no longer costs the rest of the import, and an import cut short reports honestly how far it got.
- EXDATE zone prefixes are read in the bare `<zone>;` form the provider and DAVx5 actually write, not only the iCalendar `TZID=` spelling; a list holding a stamp we can't parse is kept whole rather than re-emitted stripped of its zone; RDATE travels with RRULE when the recurrence set is rewritten.

**Added**
- Belarusian, Hungarian and Slovak, from community translators on Weblate.

**Changed**
- Arabic, Polish and Simplified Chinese are complete; Czech grew, and Russian is now at about half.

Bumps `versionName` to 2.19.4, so merging this triggers the release pipeline.

Co-authored-by: Jean-Luc Makiola <business@jeanlucmakiola.de>
Reviewed-on: https://codeberg.org/jlmakiola/calendula/pulls/259
2026-09-02 12:44:40 +02:00
..
2026-09-02 12:44:40 +02:00

Documentation map

Where to look for what:

Document What it is
../CONTRIBUTING.md How to contribute: issue-first workflow, which branch to target, translations, the rules a change is reviewed against
BUILDING.md Building from source: submodule, JDK/SDK requirements, Gradle tasks, what CI runs
ARCHITECTURE.md Orientation tour: principles, layers, navigation, recurring-write / conflict / reminder pipelines, testing
RELEASING.md Release process: versioning, the merge-driven pipeline, the two-forge split, secrets, key custody
../CHANGELOG.md Release history (Keep a Changelog, SemVer)
Issues + milestones The roadmap. What's planned, in progress, and shipped — a milestone maps to its release/vX.Y.Z branch
../.planning/PROJECT.md What the project is: core value, stack + version pins, constraints, naming, forge/release infrastructure
design/ Per-feature design notes kept for features whose provider behaviour is worth recording
../fastlane/metadata/android/ Store metadata (single source of truth): descriptions, title, icon, screenshots (DE + EN). Harvested directly by the official F-Droid repo; transformed into the self-hosted repo layout at release time by ../scripts/fastlane_to_fdroid_localized.sh
../fdroid-metadata/ App-level F-Droid control file (*.yml: Categories, License, links) for the self-hosted repo's fdroid update
fdroid-official/ Recipe + notes for publishing to the official F-Droid repo (reproducible build + developer-signed binary)

Conventions: planning lives in the issue tracker, not in this repository. The .planning/ files that predated it (a roadmap, a development-state snapshot, and a per-milestone requirement checklist) are gone — issues and milestones say the same thing without going stale. PROJECT.md is what remains, and it describes the project rather than its plan. ARCHITECTURE.md is the authoritative orientation tour: it is updated with the code, and is the right place for a lesson learned about the calendar provider.