Releases: kensa-dev/build-plugins
0.9.6
0.9.5
Changelog:
**Bump to Kotlin 2.4.0 which raises the consumer MIN_KOTLIN_VERSION check to 2.4.0.
0.9.4
Changelog:
Split compiler-plugin source sets from output source sets (Gradle). The single sourceSets property had drifted to mean three things at once — (a) which Kotlin compilations the Kensa compiler plugin instruments, (b) where dev.kensa:kensa-core is added at runtime, (c) which Test tasks emit Kensa output. (c) is now a separate property.
- New
outputSourceSets: SetProperty<String>on thekensa { }extension. Defaults tosetOf("test"). Source sets listed here are the Test tasks that emit on-disk reports (build/kensa/index.html, JSON indices, theKensa Output : …banner) and, in site mode, contribute per-source bundles to the assembled site. A source set listed inoutputSourceSetsgetskensa-coreon its runtime classpath even if the compiler plugin is not applied to it. sourceSetsis now strictly compiler-plugin source sets. Default unchanged (setOf("test")).- Site-mode wiring (
KensaSourceArgsProvider,finalizedBy(assembleKensaSite),expectedSourceIds) now readsoutputSourceSets.
Three patterns now expressible cleanly:
| Pattern | sourceSets |
outputSourceSets |
|---|---|---|
| No compiler-plugin features used | emptySet() |
setOf("test") |
Expandable support code in main only |
setOf("main") |
setOf("test") |
| Expandable code in main + test sets | setOf("main", "test") |
setOf("test") |
Migration: if you previously set sourceSets = setOf("test", "acceptanceTest") to wire both Test tasks for Kensa output, also set outputSourceSets = setOf("test", "acceptanceTest") — sourceSets no longer drives output wiring. Users on default config need no changes.
Paired upstream change: the default kensa-core is bumped to 0.8.5, whose JUnit Platform TestExecutionListener short-circuits writeAllResults() when no Kensa tests ran in a plan. So kensa-core flowing transitively onto a non-Kensa test classpath (e.g. via the main → testRuntimeClasspath path) no longer prints the banner or writes empty reports.
0.9.3
Changelog:
Multi-submodule site aggregation (Gradle). Apply dev.kensa.gradle-plugin with kensa { site = true } to the rootProject of a multi-project build and any subprojects that also apply the plugin auto-register their source sets. A single :assembleKensaSite at the root produces an aggregated manifest at <rootDir>/build/kensa-site/ with namespaced ids (web__test, libs-billing__uiTest). Title overrides via kensa.sourceTitles["<slug>__<sourceSet>"] on the root; contributor-local titles via kensa.sourceTitles["<sourceSet>"]. kensa-core version mismatch across modules fails fast. Single-project and standalone subproject behavior is unchanged.
0.9.2
Changelog:
- Update kensa-core to 0.8.3.
0.9.1
Changelog:
Site-mode ergonomics. Four changes that make gradle test / mvn verify produce an up-to-date aggregated report without re-running tests, and move per-source titles off system properties.
New / changed:
gradle testauto-builds the site. Each configured Test task is nowfinalizedBy(assembleKensaSite)— running any of them automatically refreshes the aggregated site as a finalizer. Finalizer runs once after all participating Test tasks complete, regardless of pass/fail (a partial site is helpful when triaging failures). Maven side already does this viapost-integration-testlifecycle binding.gradle assembleKensaSiteno longer re-runs tests. Switched fromdependsOntomustRunAfter— standalone invocation aggregates whatever bundles are on disk and emits the existing "expected but not present" warning for missing sources. Order is still enforced if you invoke both explicitly.kensa { sourceTitles["id"] = title }(Gradle) /<sourceTitles>(Maven) for per-source labels. Build-declared titles overwrite the per-sourceconfiguration.jsonso the standalone HTML<title>matches the manifest sidebar label. Replaces the previoustasks.named<Test>("...") { systemProperty("kensa.source.title", ...) }pattern. The Gradle DSL also acceptssourceTitles = mapOf("id" to title, …)andsourceTitles.put("id", title)for bulk-set / explicit-method styles.
Precedence when multiple paths set a source's title:
- Build DSL —
kensa { sourceTitles.put(id, ...) }/<sourceTitles> - Code via
Kensa.konfigure { titleText = ... }(e.g. a per-sourceset base class — works in site mode because each Gradle Test task forks its own JVM) kensa.source.titlesystem property (legacy; soft-deprecated)- Default
"Index"/ source id fallback
Internal:
- Test task input hygiene. The plugin now passes
kensa.output.root/kensa.source.idviaCommandLineArgumentProviderwith@OutputDirectoryon the per-source bundle dir and@Internalon the site root path. The per-source bundle dir is a tracked Test output, so UP-TO-DATE checks become accurate. Absolute paths no longer enter the Test task cache key — friendly to shared / remote Gradle build caches.
Migration:
- Drop
systemProperty("kensa.source.title", ...)calls from yourTesttask wiring in favour ofkensa { sourceTitles.put(id, "...") }. Code-sideKensa.konfigure { titleText = ... }users keep working unchanged.
Default kensa-core paired with this release is 0.8.1 (was 0.8.0). 0.8.1 carries the site-mode fix that surfaces per-source aggregate component diagrams correctly in the HTML UI. Override the default via kensa { kensaCoreVersion.set(...) } if you want to pin elsewhere.
0.9.0
Changelog:
Plugin versioning is now independent of kensa-core. Previously the Gradle and Maven plugins were released in lockstep with kensa-core, sharing a version number. Plugin-only fixes no longer require a kensa-core release; kensa-core releases no longer require a plugin release.
- New
kensa { kensaCoreVersion.set("X.Y.Z") }extension property (Gradle) and<kensaCoreVersion>mojo parameter (Maven). Defaults to the version this plugin release was tested against (read from the bundledkensa-core-version.txt). Override to pin a different kensa-core within the supported range. - Apply-time minimum-version check: a
kensa-corebelowMIN_KENSA_CORE_VERSION(currently 0.8.0) is rejected with an actionable error. No upper bound — newer kensa-cores are assumed compatible until proven otherwise. - Compatibility matrix lives in the plugin READMEs and at kensa.dev. Same-version pairing (
plugin X.Y.Z↔kensa-core X.Y.Z) is no longer implied; consult the matrix. - CI: a kensa release no longer auto-bumps
version.txtor stages a draft plugin release. It only bumpskensa-core-version.txt(the default the plugin pairs with) and runs verification.
Fixed:
- site-common is now bundled into both plugin jars. v0.8.0 declared
dev.kensa:site-commonas a runtime POM dep but never published it, breaking real consumers. New publish smoke test in CI catches this class of bug before tagging.
0.7.1
Changelog:
0.7.0-rc1
Changelog:
0.7.0
Changelog: