docs: changelog, docs/ set, CONTRIBUTING, LICENSE
Bring floret-kit up to the family's repo conventions: - CHANGELOG.md (Keep a Changelog) — what each module added. - README.md — full module table (core-time/core-crash/identity/components) + consumption notes and a docs index. - docs/README.md (index), docs/ARCHITECTURE.md (module layering, the submodule + composite-build consumption model, JVM vs android-library, the reproducibility rules, the share-mechanics-not-look contract), docs/ROADMAP.md (extracted vs deferred vs deliberately-not-shared, from the cross-app survey). - CONTRIBUTING.md — the no-app-coupling rules, how to add a module, how an app adopts the kit. - LICENSE (MIT, matching the apps). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
54
CHANGELOG.md
Normal file
54
CHANGELOG.md
Normal file
@@ -0,0 +1,54 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to floret-kit are documented here. The format follows
|
||||
[Keep a Changelog](https://keepachangelog.com/).
|
||||
|
||||
floret-kit is consumed **from source** — each app embeds it as a git submodule
|
||||
and builds it through a Gradle composite build, pinning a specific commit. There
|
||||
are no binary releases; "version" tracks the shared `version` in the root build
|
||||
(currently `0.1.0`). Entries are grouped by module.
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Added
|
||||
|
||||
- **`core-time`** (JVM library) — pure-Kotlin date/time helpers, no Android and
|
||||
no third-party dependencies:
|
||||
- `DayWindow.today()` — local-day boundaries for smart-list logic.
|
||||
- `Instant.formatDate()` / `formatTime()` / `formatDateTime()` — locale- and
|
||||
zone-aware display formatting over `kotlin.time.Instant`.
|
||||
- `TimeBridge` — `Long` epoch-millis ↔ `Instant`, for content-provider I/O.
|
||||
- **`core-crash`** (Android library) — privacy-respecting, on-device crash
|
||||
capture and reporting. Writes an allowlist-only report (app/Android/device
|
||||
version, locale, time, stack trace — nothing else) to private storage and
|
||||
chains to the platform handler; uploads nothing. Includes startup crash-loop
|
||||
detection, a report dialog that shows the full text before it leaves the
|
||||
device, and an issue-tracker hand-off. Per-app specifics (display name, issue
|
||||
URLs) come from a `CrashConfig` supplied at `install()`; each app keeps its
|
||||
own thin themed `CrashReportActivity`.
|
||||
- **`identity`** (Android library) — the family's Material 3 Expressive theme
|
||||
factory `FloretExpressiveTheme(lightScheme, darkScheme, …)` (dynamic colour on
|
||||
API 31+, system light/dark fallback, the standard motion scheme) plus
|
||||
`rememberNavSlideSpec()`. Each app passes its own seed-derived colour schemes
|
||||
and typography — the mechanics are shared, the look is not.
|
||||
- **`components`** (Android library) — the shared Compose component vocabulary:
|
||||
- `GroupedSurface` / `GroupedRow` + `Position` / `positionOf` — the canonical
|
||||
press-morphing tonal grouped-row primitive (the Android-15 settings pattern).
|
||||
- `InlineTextField` — the borderless tonal text input (capitalization is a
|
||||
parameter).
|
||||
- `OptionCard` — the sanctioned selection-dialog pick.
|
||||
- `CollapsingScaffold` — the collapsing settings/sub-screen scaffold.
|
||||
- `FullScreenPicker` / `OptionPicker` — the full-screen single-select picker.
|
||||
- `pastelize()` — softens a raw provider colour to a theme-fitting pastel.
|
||||
|
||||
App-agnostic by design: apps compose their own screens and keep their own
|
||||
identity chips/icons. String resources here (e.g. `back`) are fallbacks an app
|
||||
can override.
|
||||
|
||||
### Conventions
|
||||
|
||||
- **No `foojay` toolchain resolver** anywhere — it can fetch a JDK at build time,
|
||||
which reproducible / official F-Droid builds reject. Modules set `jvmTarget`
|
||||
directly. See [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md).
|
||||
- AGP 9.x provides built-in Kotlin compilation, so Android modules apply only the
|
||||
Android library + Compose plugins (no separate `kotlin.android`).
|
||||
Reference in New Issue
Block a user