Draw core-time from floret-kit (TimeBridge) via submodule + composite build
Phase 1 of the shared-kit plan: Calendula becomes the second core-time consumer. floret-kit is embedded as a git submodule and wired with includeBuild, so the app depends on de.jeanlucmakiola.floret:core-time and Gradle substitutes the local source module (built from source). - Remove the app's TimeBridge (Instant <-> epoch millis) + its test; the helpers now live in core-time. Repoint the 7 call sites to de.jeanlucmakiola.floret.time. - Calendula's richer time formatting (TimeFormat, 24h CompositionLocal) stays app-local by design. Reproducible-build handling (Calendula publishes via official F-Droid repro): - Pin the submodule to a foojay-free kit commit (the resolver would let a build fetch a JDK -> non-reproducible; the kit never used a toolchain block). - Harden scripts/check_reproducible_release.sh to scan the included build's Gradle scripts for the toolchain-resolver invariant. - Draft fdroiddata recipe: submodules: true (else F-Droid checks out an empty floret-kit/ and the from-source build fails). - CI build checkouts fetch submodules recursively. Clean composite build + unit tests + lintDebug + repro guard all green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -43,11 +43,21 @@ Builds:
|
||||
versionCode: 20705
|
||||
commit: v2.7.5
|
||||
subdir: app
|
||||
submodules: true
|
||||
gradle:
|
||||
- yes
|
||||
# No NDK / no flavors. The release buildType applies a signingConfig only
|
||||
# when key.properties exists; on the buildserver it does not, so this
|
||||
# produces the unsigned APK F-Droid compares against our binary.
|
||||
#
|
||||
# submodules: true — REQUIRED from v2.11.0 onward, where the build pulls
|
||||
# shared code from the `floret-kit` git submodule via a Gradle composite
|
||||
# build (`includeBuild("floret-kit")`). Without it F-Droid checks out an
|
||||
# empty floret-kit/ and the from-source build fails, stalling publishing.
|
||||
# Inert for v2.7.5 (no submodule yet); kept here so AutoUpdateMode copies it
|
||||
# onto every auto-generated future build entry. The kit is plain-Kotlin and
|
||||
# carries no foojay toolchain resolver, so it clears the same reproducibility
|
||||
# bar (enforced by scripts/check_reproducible_release.sh).
|
||||
|
||||
# SHA-256 of our app signing certificate (public; embedded in every published
|
||||
# APK). Locks F-Droid to publish only binaries signed with our key.
|
||||
|
||||
Reference in New Issue
Block a user