DejaVu 0.5.1 release validation¶
Status: passed
Validation date: October 15, 2026.
This candidate moves all six Maven publications from me.mmckenna.dejavu to dev.mttmcknn.
The production library sources, test sources, Kotlin packages, public declarations, and Compose
baseline are unchanged from v0.5.0. The KLIB API dump changes only its Maven-derived unique
module name. This candidate starts from main commit c70ed43 and excludes the separate
composition-baseline feature branch.
The release uses Kotlin 2.4.0, Compose Multiplatform 1.12.0, Android BOM 2026.08.00, AGP 9.4.0, Gradle 9.7.1, and compile SDK 37. Android BOMs 2026.05.00 and 2026.06.01 remain compatibility checkpoints. The bundled agent plugin has its independent version 0.3.1.
Local release suite¶
Each Gradle command runs through the compact-output Gradle wrapper with --no-scan and
--no-configuration-cache. The commands below are the nested Gradle tasks, equivalent to
test.sh --all-boms. -PrerunTests forces fresh test execution. XML report checks require
actual executed tests and reject failures, errors, and skips. Reports are preserved separately
for each platform and Android BOM.
./gradlew verifyComposeBomConfiguration :dejavu:verifyAll \
:compose-experimental:jvmTest :compose-experimental:iosSimulatorArm64Test \
:compose-experimental:wasmJsBrowserTest :demo-desktop:compileKotlinJvm \
:demo-wasm:compileKotlinWasmJs -PrerunTests --no-configuration-cache
| Suite | Tests | Failures | Errors | Skips |
|---|---|---|---|---|
| Core JVM | 229 | 0 | 0 | 0 |
| Core iOS simulator arm64 | 229 | 0 | 0 | 0 |
| Core Wasm in Chrome | 229 | 0 | 0 | 0 |
| Experimental JVM | 26 | 0 | 0 | 0 |
| Experimental iOS simulator arm64 | 26 | 0 | 0 | 0 |
| Experimental Wasm in Chrome | 26 | 0 | 0 | 0 |
The aggregate gate passed public API compatibility, lint, compilation of all library targets, and compilation of the desktop and Wasm demos. Metalava snapshots do not apply; this project uses the Kotlin binary compatibility validator and its checked-in JVM/KLIB dumps.
For each retained Android BOM and the release baseline:
ANDROID_SERIAL=emulator-5600 ./gradlew \
:dejavu:compileDebugKotlin :dejavu:testDebugUnitTest \
:demo:assembleDebug :demo:assembleDebugAndroidTest \
:compose-experimental:assembleDebug :compose-experimental:assembleDebugAndroidTest \
:demo:connectedDebugAndroidTest :compose-experimental:connectedDebugAndroidTest \
-PcomposeBomVersion=<BOM> -PrerunTests --no-configuration-cache
| Android BOM | Unit | Demo UI | Experimental UI | Failures / errors / skips |
|---|---|---|---|---|
| 2026.05.00 | 27 | 225 | 20 | 0 / 0 / 0 |
| 2026.06.01 | 27 | 225 | 20 | 0 / 0 / 0 |
| 2026.08.00 | 27 | 225 | 26 | 0 / 0 / 0 |
Packaged artifacts¶
The candidate is packaged once with the normal release baseline, without a
composeBomVersion override. Compatibility checks use an enforced BOM, which is deliberately
unsuitable for publication metadata. An initial combined test/packaging invocation was rejected
by Gradle at generateMetadataFileForAndroidReleasePublication; packaging was separated from
the compatibility task invocation, with no source change or suppression of the validation.
All six local publications passed POM and Gradle module coordinate checks, new-group
self-reference and variant-link checks, archive integrity and declared hash checks, and
binary/source/Javadoc presence checks. The Android AAR declares minCompileSdk=37.
These local artifacts are unsigned; production signing uses the existing CI-managed key.
./gradlew :dejavu:publishToMavenLocal :dejavu:dokkaGeneratePublicationHtml \
-PdocsVersion=0.5.1 -PdocsSourceRef=v0.5.1 --no-configuration-cache
The standalone consumer passed one fresh test each on JVM, iOS simulator arm64, and Wasm.
The consumer resolves dev.mttmcknn:dejavu:0.5.1 from Maven Local without a project dependency
or composite build.
./gradlew -p validation/consumer jvmTest iosSimulatorArm64Test wasmJsBrowserTest \
-PdejavuVersion=0.5.1 -PrerunTests --no-configuration-cache
The same baseline-built Android AAR passed the standalone consumer on every retained BOM. The instrumentation runtime configuration resolves only the new DejaVu group and these Compose runtime versions; older checks do not silently select the 1.12 baseline:
| Android BOM | Resolved instrumentation runtime | Consumer tests | Failures / errors / skips |
|---|---|---|---|
| 2026.05.00 | 1.11.1 | 2 | 0 / 0 / 0 |
| 2026.06.01 | 1.11.4 | 2 | 0 / 0 / 0 |
| 2026.08.00 | 1.12.0 | 3 | 0 / 0 / 0 |
ANDROID_SERIAL=emulator-5600 ./gradlew -p validation/consumer connectedDebugAndroidTest \
-PdejavuVersion=0.5.1 -PcomposeBomVersion=<BOM> -PrerunTests --no-configuration-cache
A read-only Gradle init task recorded debugAndroidTestRuntimeClasspath dependency resolution
after each consumer invocation. The release validation completed 1,587 source-suite tests and
10 packaged-consumer tests, all with zero failures, errors, or skips.
Documentation and agent tooling¶
Generated API documentation, a strict MkDocs build, and validation of 34 HTML pages passed. The checks cover local links, anchors, API output, stable dependency examples, and GitHub account links. The existing repair step corrected three generated Dokka overload-row links. The site is rebuilt after completion of this validation record. Offline skill packaging checks, 15 advisory evaluation cases, and 94 evaluator unit tests passed. Live model evaluations were not run.
Environment and coverage limits¶
- macOS Apple Silicon; Gradle daemon on JetBrains JDK 21; JVM bytecode target 17.
- Android API 36, arm64, 4 KB pages on a cold-started temporary emulator (
emulator-5600). - JVM desktop, Apple Silicon iOS simulator, and headless Chrome for Wasm.
- iOS device arm64 is compiled and packaged; its tests run on the simulator.
- Hosted Android API 26 and 31 device matrices are not repeated locally.
- Existing Android/AGP, Kotlin Multiplatform, and Compose dependency accessor deprecation warnings remain.
- Documentation validation uses Python 3.14.7 with the exact pinned MkDocs packages; hosted docs use Python 3.12.
Publication tracking¶
DejaVu 0.5.1 is published under dev.mttmcknn. Tag v0.5.1 points to release merge
6398888cdd38d5b78d5fbd3037509fed146afe00,
whose tree 37ae77998bf99f10aca670ec164b595efcf3517b matches the approved, validated candidate.
PR 154 merged after all 16 PR checks passed.
Public Maven Central verification passed on October 15, 2026 at 16:54:33 UTC using
python3 validation/verify_maven_publication.py 0.5.1 (exit 0). All six target binaries,
POM coordinates, and Gradle module metadata were available: dejavu, dejavu-android,
dejavu-jvm, dejavu-iosarm64, dejavu-iossimulatorarm64, and dejavu-wasm-js.
The publication workflow
succeeded; the public checks establish availability separately from that upload result.
The GitHub release was published
at 16:55:07 UTC.
The tagged Docs workflow
passed at 16:41:53 UTC, deploying website commit
1ad009e6f48a2cb201da002d88ccca12849ed4b9.
A direct public-site check at 16:53:32 UTC verified 16 successful responses, the
latest alias at 0.5.1, the new stable installation coordinate, release-tag API source links,
and redirects from three legacy guide/API routes. The stable home and explicit 0.5.1 home
were byte-identical, and the checked pages contained no old GitHub account references.
That first site check preceded public artifact verification and found candidate wording in the
release index and the previous 0.5.0 installation coordinate in snapshot guides. This
post-publication documentation update corrects those references. Development resumes at
0.6.0-SNAPSHOT; stable dependency examples remain on dev.mttmcknn:dejavu:0.5.1.