diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md index 1d00ed9..1f5e269 100644 --- a/.planning/ROADMAP.md +++ b/.planning/ROADMAP.md @@ -10,7 +10,7 @@ | v0.4 | Event Detail (S4) + humanized recurrence | complete | | v0.5 | Calendar filter (M3) + Settings (M4) | complete | | v0.6 | Full event read — surface every readable field | complete | -| v1.0 | Polish pass, F-Droid release | pending | +| v1.0 | First public release — polish pass, F-Droid | complete | Delivery ran ahead of the original table: Day view (S3) shipped in v0.3 and Event Detail (S4) in v0.4, so the Filter/Settings milestone became v0.5. @@ -44,14 +44,14 @@ Deliberately out of v0.6: - `CATEGORIES`, `ATTACH` — not reliably exposed by `CalendarContract` (provider limitation, not our choice) -## v1.0 — First Public Release +## v1.0 — First Public Release — shipped 2026-06-11 -All V1 features shipped, polished, on F-Droid. Read-only calendar. -Remaining before v1.0: a UI polish/QA pass. +All V1 features shipped, polished, on F-Droid. Read-only calendar. Cut directly +after v0.6 (full event read) plus the onboarding-screen polish pass. ### Polish backlog (pre-1.0) - ~~Redesign the initial grant-access (permission) screen~~ — **done** - (Material 3 Expressive onboarding, shipped on the v0.6.0 branch) + (Material 3 Expressive onboarding, shipped in v0.6.0 / v1.0.0) ## v2.0 — Write Support diff --git a/.planning/STATE.md b/.planning/STATE.md index d393275..5673f74 100644 --- a/.planning/STATE.md +++ b/.planning/STATE.md @@ -4,10 +4,10 @@ ## Status -**Milestone:** v0.6 — Full event read (complete) -**Phase:** All V1 screens done and the read model is now complete — the detail -view surfaces every readable `CalendarContract` field. Next up is a UI -polish/QA pass before v1.0 +**Milestone:** v1.0.0 — First public release (shipped 2026-06-11) +**Phase:** V1 is complete and released. All screens done, the read model +surfaces every readable `CalendarContract` field, and the onboarding screen +got its Material 3 Expressive polish pass. Next horizon is v2.0 (write support) ## Progress @@ -30,5 +30,5 @@ polish/QA pass before v1.0 ## Next -1. UI polish / QA pass across all views before v1.0 -2. F-Droid release of v1.0 +1. v1.0.0 released — monitor the F-Droid build/publish +2. Plan v2.0 (write support: create / edit / delete, quick-add, conflict UX) diff --git a/CHANGELOG.md b/CHANGELOG.md index b197112..25e0f61 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.0.0] — 2026-06-11 + +First public release. Calendula is a read-only, Material 3 Expressive calendar +that lives entirely on top of Android's `CalendarContract` — every calendar +synced to the device (CalDAV via DAVx5, Google, local, WebCal, …) shows up +automatically, with zero telemetry and no internet permission. + +### Highlights (accumulated across v0.1 → v0.6) +- Month, week, and day views with a view switcher, swipe navigation, and + Loading / Failure / Success states on every screen +- Full-screen event detail surfacing every readable `CalendarContract` field — + times, recurrence (humanised), location, description (with tappable links), + attendees + roles + your own response, reminders, status, availability, + access level, and foreign time zones +- Per-calendar visibility filter (grouped by account, persisted) and a Settings + screen (theme, Material You dynamic colour, week start, app language) +- Material 3 Expressive first-run onboarding for calendar access +- German + English localization throughout + +### Changed +- `versionName`/`versionCode` bumped to 1.0.0 / 7 + ## [0.6.0] — 2026-06-11 ### Added diff --git a/app/build.gradle.kts b/app/build.gradle.kts index d3c947c..328c309 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -23,8 +23,8 @@ android { applicationId = "de.jeanlucmakiola.calendula" minSdk = 29 targetSdk = 36 - versionCode = 6 - versionName = "0.6.0" + versionCode = 7 + versionName = "1.0.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" }