Skip to content

Release checklist: cut 0.39.0 to ship the Android JNI backend + mobile fixes (unreleased on develop) #946

Description

@michalharakal

Tracking checklist for the first engine release that carries the mobile/on-device work merged since 0.38.0. Several fixes are on develop but unreleased, so no downstream consumer (incl. SKaiNET-transformers, which pins skainet = "0.38.0") can see them until this ships.

What this release propagates to consumers

Release checklist

  • Merge fix(jni): eager library init; emulator-validated parity suite; gate q4k/q6k on #944 (#920) #945 (JNI parity re-enabled with the RMS gate; on-device + emulator green).
  • Close the AAR-publishing gap — the publish job runs ./gradlew publish on macOS, which now includes the skainet-backend-jni-cpu Android library, but the runner has no pinned Android SDK/NDK, so the AAR's .sos won't build reliably. PR incoming; needed before the release actually ships the JNI artifact.
  • Decide the version number (0.39.0 suggested — new feature: JNI backend).
  • Bump VERSION_NAME in gradle.properties; update CHANGELOG.md [Unreleased] → the version.
  • Confirm the release builds & publishes all artifacts, including the new sk.ainet.core:skainet-backend-jni-cpu AAR (with arm64-v8a + x86_64 .sos and consumer ProGuard rules) and the linkable K/N klibs from fix(backend): embed the kernel static archive into published K/N klibs (#941) #942.
  • Tag & publish to Maven Central.
  • Follow-up in SKaiNET-transformers: bump skainet = "<version>" in gradle/libs.versions.toml; then transformers#272 (SmolLM2 reproducer) can prove the end-to-end Android generation path with NATIVE_OPTIMIZED + the JNI AAR dependency (the provider auto-registers via the PlatformCpuOpsFactory.android ServiceLoader install — no transformers code change needed, just the dependency).

Note on the mobile win reaching apps

For a transformers-based Android app to actually get the speedup it needs to (a) depend on this release, and (b) add sk.ainet.core:skainet-backend-jni-cpu as a dependency so the .sos ship in the APK. The provider is then discovered automatically. Worth a short "using native kernels on Android" doc note alongside the release.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions