Skip to content

chore(release): prepare SKaiNET-transformers 0.31.0#181

Merged
michalharakal merged 5 commits into
developfrom
release/0.31.0
Jun 16, 2026
Merged

chore(release): prepare SKaiNET-transformers 0.31.0#181
michalharakal merged 5 commits into
developfrom
release/0.31.0

Conversation

@michalharakal

Copy link
Copy Markdown
Contributor

Version-aligned with the released SKaiNET 0.31.0 (ops.transpose lazy-rewrap for all packed matmul dtypes — Q8_0/Q4_0 added).

No merge, no tag.

michalharakal and others added 5 commits June 15, 2026 19:46
Version-aligned with the released SKaiNET 0.31.0 (ops.transpose lazy-rewrap for
all packed matmul dtypes — Q8_0/Q4_0 added).

- gradle/libs.versions.toml: skainet pin 0.30.0 -> 0.31.0 (REQUIRED so the
  packed Q8_0 lm_head transposes through linearProject instead of crashing).
- gradle.properties: VERSION_NAME 0.30.0 -> 0.31.0.
- CHANGELOG.md: add [0.31.0] — tied Q8_0 lm_head stays packed in eager
  NATIVE_OPTIMIZED (#179), load(maxInferenceLen) KV-cache cap (#180),
  json-schema-validator 3.0.4 (#175) + tag link.
- README.md: "Current release" + BOM snippet -> 0.31.0; "What's new in 0.31.0".
- docs tutorials (getting-started-java, llama3-tool-calling): BOM/version -> 0.31.0.
- llm-inference/gemma/api/jvm/gemma.api: refreshed for the new maxInferenceLen
  param on applyWeightsToNetworkNonReified (#180).

No merge, no tag.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…fig-time resolution)

CI's Build & Test failed with:
  java.lang.RuntimeException: Configuration 'jsTestNpmAggregated' was resolved
  during configuration time.

Root cause (gradle#31483): KGP's KotlinPackageJsonTask resolves the JS
`*NpmAggregated` configs at configuration time; AGP's DependencyResolutionChecks
— installed when the Gradle configuration cache feature is ENABLED — rejects
that on a cold CI configuration. build.yml passes `--no-configuration-cache`,
but ci-gradle.properties set `org.gradle.configuration-cache=true`, so the check
was still installed and the CLI override did not reliably suppress it (the
failure is intermittent: it surfaces on cold-config task-graph traversal, which
is why earlier runs went green).

Set `org.gradle.configuration-cache=false` in the CI gradle.properties so the
feature (and thus AGP's strict check) is genuinely off in CI, matching build.yml's
documented intent. Local dev keeps config cache ON via the repo gradle.properties.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…for JS NPM)

My previous commit (config-cache=false) was the wrong lever — the check still
fired. The throw is com.android.build.gradle.internal.DependencyResolutionChecks
(registerDependencyCheck), which AGP installs independent of the config cache and
which rejects KGP's KotlinPackageJsonTask resolving the Kotlin/JS + Wasm
`*NpmAggregated` configs at configuration time (gradle#31483). transformers has
real JS npm deps (ktor-client-js, kotlinx-browser) so this resolution happens;
the engine repo runs the same `assemble allTests` green only because it has none.

Revert config cache to true (matches the engine CI; not the cause) and set
`android.dependencyResolutionAtConfigurationTime.disallow=false` to opt out of
AGP's check, letting the JS npm resolution proceed as it does off-CI.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…se via -P

The property name is correct, but AGP's ProjectOptions doesn't reliably read
`android.*` options from ~/.gradle/gradle.properties (the copied CI file) — it
reads them from the project gradle.properties or a `-P` project property. So the
ci-gradle.properties entry didn't reach AGP and the check still threw.

Pass it as `-P` on the gradle command in build.yml (both PR + push steps) and
publish.yml so AGP definitely picks it up and routes the config-time JS/Wasm
`*NpmAggregated` resolution to a warning instead of failing the build
(gradle#31483). DependencyResolutionChecks gates throw-vs-warn on
BooleanOption.DISALLOW_DEPENDENCY_RESOLUTION_AT_CONFIGURATION (verified in the
AGP 9.2.0 bytecode).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…e.properties; fix stale Q8_0 test

Real fix for the Build & Test failure (was masked by, then surfaced after, the
JS NPM config-time issue):

1. `gradle.properties`: set `android.dependencyResolutionAtConfigurationTime.disallow=false`.
   AGP's DependencyResolutionChecks fails the build when KGP's KotlinPackageJsonTask
   resolves the Kotlin/JS + Wasm `*NpmAggregated` configs at configuration time
   (we have JS npm deps: ktor-client-js, kotlinx-browser) — `assemble`/`allTests`
   threw `Configuration 'jsNpmAggregated' was resolved during configuration time`
   (gradle#31483), a false positive against KGP's known behaviour. AGP reads this
   option ONLY from the project gradle.properties — NOT from `-P` or the CI's
   ~/.gradle/gradle.properties (which is why the earlier attempts didn't take).
   Reverted those no-op attempts (build.yml/publish.yml `-P`, ci-gradle.properties).

2. `GemmaQuantLayoutTest`: `pack_non_kquant_returns_null` asserted Q8_0 packs to
   null, but #179 added Q8_0 packing — it now returns Q8_0BlockTensorData. Replace
   with `pack_q8_0_produces_block_tensor` + a true-null case (Q4_1).

Verified locally: `clean assemble allTests --no-configuration-cache` is GREEN.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@michalharakal michalharakal merged commit b5c3fe1 into develop Jun 16, 2026
6 checks passed
@michalharakal michalharakal deleted the release/0.31.0 branch June 16, 2026 06:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant