Skip to content

release/0.23.0: lazy parameter init + GGUF unsigned metadata#590

Merged
michalharakal merged 6 commits intodevelopfrom
release/0.23.0
May 2, 2026
Merged

release/0.23.0: lazy parameter init + GGUF unsigned metadata#590
michalharakal merged 6 commits intodevelopfrom
release/0.23.0

Conversation

@michalharakal
Copy link
Copy Markdown
Contributor

Summary

Prepares 0.23.0. Carries the contents of:

Plus the version-prep commit on this branch:

  • chore(release): prepare 0.23.0 — bumps VERSION_NAME from 0.22.2 to 0.23.0, adds a [0.23.0] block to CHANGELOG.md describing the new TensorDataFactory.placeholder API and the eager-zero-init fix.

Why a minor bump (not patch)

#588 adds a new public method to a public interface (TensorDataFactory.placeholder(shape, dtype)). It has a default implementation so it's source-compatible for callers; binary-compatible for any consumer that doesn't override the interface. New API surface → minor bump per semver.

E2E verification

Published locally via ./gradlew publishToMavenLocal -PRELEASE_SIGNING_ENABLED=false -PsignAllPublications=false and consumed from SKaiNET-transformers (fix/apertus-real-loading, PR #98) with skainet = "0.23.0" and -PuseLocalSkaiNet=false to bypass the composite build:

  • :skainet-lang:skainet-lang-core:jvmTest — 614 tests across 80 suites green (upstream).
  • Real-model E2E against unsloth/Apertus-8B-Instruct-2509-GGUF (Q4_K_S, 4.7 GB on disk) — ApertusNetworkLoader.fromGguf().load<FP32, Float>(ctx) succeeds in 12 GB heap (was OOMing at 12 GB), 35 top-level modules constructed in 16 s.
  • :llm-core:jvmTest :llm-inference:apertus:jvmTest (downstream, against published 0.23.0) — 100 tests, 0 failures.

Tag and publish

Once merged, tag 0.23.0 on the develop merge commit (matching the 0.22.x convention — annotated tag points to the release-prep commit on the release branch tip). The release workflow auto-publishes to Maven Central on tag push.

🤖 Generated with Claude Code

michalharakal and others added 6 commits May 2, 2026 18:39
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…read

Adds a POSIX-pread-backed RandomAccessSource so K/N consumers can read
GGUF files of arbitrary size instead of slurping into a single ByteArray
(capped at ~2 GiB / Int.MAX_VALUE bytes). pread is positional and atomic,
so concurrent reads are safe without locking.

- New PosixPreadRandomAccessSource in skainet-io-core's nativeMain
  (covers macosArm64, linuxX64, linuxArm64, iosArm64, iosSimulatorArm64).
- skainet-io-gguf's nativeMain factory delegates to it instead of
  returning null. Behaviour matches the JVM actual: returns null on
  open/stat failure so callers cleanly fall back to the legacy reader.
- 11 nativeTest cases covering size, partial reads, offset/length
  variants, EOF/argument validation, idempotent close, and
  missing-file null return.

Fixes #589

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…read-random-access-source

feat(gguf): implement createRandomAccessSource on Kotlin/Native via pread
…LM links

CHANGELOG: add 0.23.0 entries for PR #591 — `PosixPreadRandomAccessSource`
under Added and the GGUF >2 GiB load failure under Fixed.

README: remove the SKaiNET-LLM ecosystem-table row and the matching Explore
row; SKaiNET-LLM repo is 404. Reroute the LLM-inference entry to
SKaiNET-transformers, which is the active LLM application layer.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Quickstart import now pins skainet-bom:0.23.0.
- "What's New" rewritten for 0.23.0: placeholder API + DSL OOM fix (PR #588)
  and the K/N pread random-access fix (PR #591). Older 0.22.0 / 0.22.2
  highlights moved out of the README; CHANGELOG.md remains the canonical
  full history (link already in place).
- BOM caveat about 0.22.2 being the first correctly-coordinated publish is
  retained — still actionable for anyone trying to import older BOMs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Earlier rotation cut both 0.22.0 and 0.22.2 entirely; restore them as
one-line bullets under "Recent releases" so the README still gives a
sense of recent shape without duplicating the changelog. Adds 0.22.1
to the list (was missing before). Long-form descriptions remain in
CHANGELOG.md.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@michalharakal michalharakal merged commit 8c4822a into develop May 2, 2026
12 checks passed
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