Skip to content

Commit 80386a9

Browse files
Merge pull request #490 from RunanywhereAI/smonga/release-v0.19.13
chore(release): v0.19.13 — fix sync-checksums.sh cross-target contamination bug
2 parents 1ee8e02 + 5c52ae0 commit 80386a9

18 files changed

Lines changed: 40 additions & 37 deletions

File tree

.github/workflows/release.yml

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -557,26 +557,24 @@ jobs:
557557
- name: Sync Package.swift checksums from freshly-built XCFrameworks
558558
# Updates the SHA-256 checksum lines in Package.swift so SPM consumers
559559
# who pin to v${VERSION} can resolve the binary targets against the
560-
# zips we're about to attach to this Release. No-op if only native_ios
561-
# failed earlier.
560+
# zips we're attaching to this Release. The iOS zips are suffixed
561+
# `-ios-` since v0.19.0.
562562
run: |
563-
if ls release-flat/RACommons-v*.zip >/dev/null 2>&1; then
563+
if ls release-flat/RACommons-ios-v*.zip >/dev/null 2>&1; then
564564
./scripts/sync-checksums.sh release-flat
565565
if ! git diff --quiet Package.swift; then
566566
echo "Package.swift checksums updated:"
567567
git diff Package.swift | head -40
568-
# Commit the checksum bump on a detached ref; don't push here —
569-
# the engineer pushed the tag already; we just fold the fresh
570-
# checksum commit onto main via a scheduled follow-up PR, or
571-
# they update it manually after the Release is cut.
572-
# For now, attach the updated Package.swift as a release asset
573-
# so it's auditable; deeper auto-commit flow is a follow-up.
568+
# Attach the updated Package.swift as a release asset so
569+
# consumers can see the correct checksums for this tag; also
570+
# attach it locally so the next step can open a PR that folds
571+
# these checksums back into main.
574572
cp Package.swift release-flat/Package.swift.updated
575573
else
576574
echo "Package.swift checksums already match (no changes)"
577575
fi
578576
else
579-
echo "::warning::No RACommons-v*.zip in release-flat — skipping checksum sync"
577+
echo "::warning::No RACommons-ios-v*.zip in release-flat — skipping checksum sync"
580578
fi
581579
- name: Create / update GitHub Release
582580
uses: softprops/action-gh-release@v2

Package.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ let useLocalNatives = false // Toggle: true for local dev, false for release
4444

4545
// Version for remote XCFrameworks (used when useLocalNatives = false)
4646
// Updated automatically by CI/CD during releases
47-
let sdkVersion = "0.19.12"
47+
let sdkVersion = "0.19.13"
4848

4949
// MetalRT remote binary availability flag.
5050
// Set to `false` until a real checksum for RABackendMetalRT-v<sdkVersion>.zip
@@ -335,17 +335,17 @@ func binaryTargets() -> [Target] {
335335
.binaryTarget(
336336
name: "RACommonsBinary",
337337
url: "https://github.com/RunanywhereAI/runanywhere-sdks/releases/download/v\(sdkVersion)/RACommons-ios-v\(sdkVersion).zip",
338-
checksum: "40ea84cf054f59fbc65e87d92550d4acb2bcbf433041438822c6b30985e3db24"
338+
checksum: "189bcf6cf844d1df1ce51ebdf396f7b7ec24aeb5c9c3965e70c5e3851a0d8fb3"
339339
),
340340
.binaryTarget(
341341
name: "RABackendLlamaCPPBinary",
342342
url: "https://github.com/RunanywhereAI/runanywhere-sdks/releases/download/v\(sdkVersion)/RABackendLLAMACPP-ios-v\(sdkVersion).zip",
343-
checksum: "314dddb242caf3d2d0b19c0f919c35187023c6c66cc861de741d071faddbf58b"
343+
checksum: "283632cd5fc8c76bbafc42a0dcfbd8a2039591e022c33eadf18fcab336ec006c"
344344
),
345345
.binaryTarget(
346346
name: "RABackendONNXBinary",
347347
url: "https://github.com/RunanywhereAI/runanywhere-sdks/releases/download/v\(sdkVersion)/RABackendONNX-ios-v\(sdkVersion).zip",
348-
checksum: "809e2510da49f71f6d019e77bcc0a7e12e967f3b739ba0b9eea7adb77936edc0"
348+
checksum: "64404b1b53f82399a9053a323d05b22c6a9e153d7ecefc25f9d9e67d67996a53"
349349
),
350350
]
351351

scripts/sync-checksums.sh

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,15 @@ fi
4545

4646
# swiftpm binary target name → local-filename-prefix pairs. Names match the
4747
# `.binaryTarget(name: "X", ...)` entries in Package.swift.
48+
# Since v0.19.0, iOS xcframework zips are suffixed "-ios-" to disambiguate
49+
# from Android per-ABI zips. ONNX Runtime is now bundled into RABackendONNX
50+
# and no longer distributed as a separate artifact.
4851
declare_mapping() {
4952
# Printed form: BINARY_NAME|ZIP_PREFIX
50-
echo "RACommonsBinary|RACommons"
51-
echo "RABackendLlamaCPPBinary|RABackendLLAMACPP"
52-
echo "RABackendONNXBinary|RABackendONNX"
53-
echo "RABackendMetalRTBinary|RABackendMetalRT"
54-
echo "ONNXRuntimeiOSBinary|onnxruntime-ios"
55-
echo "ONNXRuntimemacOSBinary|onnxruntime-macos"
53+
echo "RACommonsBinary|RACommons-ios"
54+
echo "RABackendLlamaCPPBinary|RABackendLLAMACPP-ios"
55+
echo "RABackendONNXBinary|RABackendONNX-ios"
56+
echo "RABackendMetalRTBinary|RABackendMetalRT-ios"
5657
}
5758

5859
sha256_of() {
@@ -77,9 +78,13 @@ binary_name, new_sum, path = sys.argv[1], sys.argv[2], sys.argv[3]
7778
with open(path) as f:
7879
src = f.read()
7980
80-
# Find the `name: "X"` line and the first `checksum: "..."` within 6 lines.
81+
# Find the remote-mode binaryTarget: `name: "X", url: "...", checksum: "..."`.
82+
# We require `url:` between name and checksum to avoid the local-mode entry
83+
# (which uses `path:` and has no checksum) — without this anchor, the non-
84+
# greedy `.*?` would skip past the local entry and match the checksum of
85+
# the NEXT remote target in the file, causing cross-target mis-assignment.
8186
pattern = re.compile(
82-
r'(name:\s*"' + re.escape(binary_name) + r'".*?checksum:\s*")([0-9a-f]{64})(")',
87+
r'(name:\s*"' + re.escape(binary_name) + r'"\s*,\s*url:\s*"[^"]+"\s*,\s*checksum:\s*")([0-9a-f]{64})(")',
8388
re.DOTALL,
8489
)
8590

sdk/runanywhere-commons/VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.19.12
1+
0.19.13

sdk/runanywhere-commons/VERSIONS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
# =============================================================================
1515

1616
# Project version (read from VERSION file, but also defined here for scripts)
17-
PROJECT_VERSION=0.19.12
17+
PROJECT_VERSION=0.19.13
1818

1919
# =============================================================================
2020
# Platform Deployment Targets

sdk/runanywhere-flutter/packages/runanywhere/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: runanywhere
22
description: Privacy-first, on-device AI SDK for Flutter. Run LLMs, STT, TTS, and VAD directly on device with no data leaving the device.
3-
version: 0.19.12
3+
version: 0.19.13
44
homepage: https://runanywhere.ai
55
repository: https://github.com/RunanywhereAI/runanywhere-sdks
66
issue_tracker: https://github.com/RunanywhereAI/runanywhere-sdks/issues

sdk/runanywhere-flutter/packages/runanywhere_genie/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: runanywhere_genie
22
description: Qualcomm Genie NPU backend for RunAnywhere Flutter SDK. On-device LLM inference on Snapdragon NPU.
3-
version: 0.19.12
3+
version: 0.19.13
44
homepage: https://runanywhere.ai
55
repository: https://github.com/RunanywhereAI/runanywhere-sdks
66
issue_tracker: https://github.com/RunanywhereAI/runanywhere-sdks/issues

sdk/runanywhere-flutter/packages/runanywhere_llamacpp/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: runanywhere_llamacpp
22
description: LlamaCpp backend for RunAnywhere Flutter SDK. High-performance on-device LLM text generation with GGUF model support.
3-
version: 0.19.12
3+
version: 0.19.13
44
homepage: https://runanywhere.ai
55
repository: https://github.com/RunanywhereAI/runanywhere-sdks
66
issue_tracker: https://github.com/RunanywhereAI/runanywhere-sdks/issues

sdk/runanywhere-flutter/packages/runanywhere_onnx/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: runanywhere_onnx
22
description: ONNX Runtime backend for RunAnywhere Flutter SDK. On-device Speech-to-Text, Text-to-Speech, and Voice Activity Detection.
3-
version: 0.19.12
3+
version: 0.19.13
44
homepage: https://runanywhere.ai
55
repository: https://github.com/RunanywhereAI/runanywhere-sdks
66
issue_tracker: https://github.com/RunanywhereAI/runanywhere-sdks/issues

sdk/runanywhere-kotlin/gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,4 +60,4 @@ runanywhere.coreVersion=0.1.4
6060
# Must match a GitHub release tag at: https://github.com/RunanywhereAI/runanywhere-sdks/releases
6161
# Contains: RACommons-android (librac_commons.so, librac_commons_jni.so)
6262
runanywhere.commonsVersion=0.1.4
63-
runanywhere.nativeLibVersion=0.19.12
63+
runanywhere.nativeLibVersion=0.19.13

0 commit comments

Comments
 (0)