Repository navigation
Release 1.3.5: fix the 32-bit Android build and the Swift script - #33
Conversation
onde-mistralrs-core 0.9.5 did not compile on armv7: a 16 GiB const overflows a 32-bit usize (E0080). 0.9.6 fixes it, so depend on that. Since onde became a Cargo workspace, uniffi-bindgen builds into the root target/release/. The Swift XCFramework script and the Kotlin generate-bindings script still looked in uniffi-bindgen/target/release/, which is why onde-swift is stuck on 1.3.2. Point both at the workspace path and update the docs that repeat it. CI now also runs cargo check for armv7-linux-androideabi so a 32-bit break shows up on the pull request instead of in the release. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
This release (1.3.5) addresses two main build issues that blocked previous releases from reaching Maven Central and onde-swift. The first is a 32-bit Android build failure due to a constant overflow in onde-mistralrs-core 0.9.5, now fixed by upgrading to 0.9.6 across all relevant targets in Cargo.toml. The second is a path error in scripts and documentation for locating the uniffi-bindgen binary after the move to a Cargo workspace; all references now use the correct workspace target directory. CI is updated to check the 32-bit Android target to catch similar issues early. All version numbers are bumped to 1.3.5 and changelogs are updated to reflect these fixes. No public API changes are introduced. Previous findings about the bindgen path and 32-bit build are addressed in this diff. Reviewers should focus on the dependency updates, script path corrections, and the new CI check for armv7.
Automated review by siGit Code Review · commit 6f8583c · see the review dashboard
When the repo became a Cargo workspace, the Dart and React Native bridge crates started writing to the root target/ and resolving against the root Cargo.lock. Several files still assumed the old per-crate layout: - build-rust.sh (React Native), the Dart iOS and macOS podspec script phases, and the Dart Linux and Windows CMakeLists.txt looked for rust/target/, so the copy and link steps missed the build output. They now ask `cargo metadata` for target_directory, which is right inside the workspace and for a standalone build. CMake needs 3.19 for string(JSON). - sdk/dart/rust/Cargo.lock and sdk/react-native/rust/Cargo.lock were ignored by cargo and still pinned core 0.9.3. Remove them, stop patching them in sync-release-version.py, drop rust/Cargo.lock from the npm package files, and trim `make relock` to the root lock. Checked: the React Native iOS build produces the xcframework from the root target/, the Dart macOS build copies from it, and the CMake metadata lookup returns the same path. The Linux and Windows builds themselves were not run. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The sdk-releases checklist and pitfalls, the release-preflight comment, the sdk-dart and sdk-react-native skill notes, and the AGENTS.md layout described per-SDK lockfiles and rust/target/. They now describe the workspace: one Cargo.lock and one root target/. The layout also listed sdk/gem and sdk/python, which do not exist, so those are gone. Adds the build fix to the 1.3.5 entries in the root, Dart and React Native changelogs. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
This re-review addresses fallout from the workspace migration and fixes build and packaging issues for the Dart and React Native SDKs. The main changes are: (1) all scripts and build files that previously assumed per-crate target/ and Cargo.lock files now use cargo metadata to find the workspace target directory, ensuring correct artifact locations; (2) the now-unused per-SDK Cargo.lock files are removed, and all lockfile operations are consolidated to the root; (3) documentation, Makefile, and packaging ignore lists are updated to reflect the new layout and build process. The changes are focused and correct, and all open threads from the previous review appear addressed. No new correctness or security issues are introduced in these diffs. The CMake minimum version is bumped to 3.19 for string(JSON) support, which is required for the new cargo metadata parsing logic.
Automated review by siGit Code Review · commit 3028b72 · changes since 6f8583c · see the review dashboard
Release 1.3.5. It fixes the two things that stopped 1.3.3 and 1.3.4 from reaching Maven Central and onde-swift.
Kotlin / Maven Central.
onde-mistralrs-core0.9.5 failed to compile forarmv7-linux-androideabi.memory_plan.rshasconst MAX_UNIFIED_RESERVE: usize = 16 * GIB, which overflows a 32-bitusize(E0080). The fork fix is published asonde-mistralrs-core0.9.6 and this PR depends on it.Swift / onde-swift.
build-swift-xcframework.shlooked foruniffi-bindgen/target/release/uniffi-bindgen. Since onde became a Cargo workspace the binary is built into the roottarget/release/, so the script failed at the firstgeneratecall. 1.3.3 and 1.3.4 both died there, andonde-swiftis still on 1.3.2.sdk/kotlin/scripts/generate-bindings.shhad the same stale path, so I fixed it too before it became the next Kotlin failure. The docs that repeat the path are updated.CI.
check-androidnow also runscargo check --target armv7-linux-androideabi, so a 32-bit break shows up on the PR.Checked locally:
cargo fmt --check,cargo clippy -- -D warnings,cargo test inference::,cargo checkfor armv7 and i686 Android against the published 0.9.6,uniffi-bindgenbuilding totarget/release/, andscripts/sync-release-version.py --check.The version bump is a separate commit. No public API changes.
Workspace fallout. The same workspace change broke other things that assumed per-crate
target/andCargo.lockfiles, so two more commits clean those up:sdk/react-native/scripts/build-rust.sh, the Dart iOS and macOS podspec script phases, and the Dart Linux and WindowsCMakeLists.txtlooked inrust/target/. They now askcargo metadatafortarget_directory, which also works if the crate is ever built standalone. CMake goes to 3.19 forstring(JSON).sdk/dart/rust/Cargo.lockandsdk/react-native/rust/Cargo.lockwere ignored by cargo and still pinned core 0.9.3. They are removed,sync-release-version.pyandmake relockonly touch the root lock, andrust/Cargo.lockis out of the npmfiles.AGENTS.mdlayout are updated. The layout no longer listssdk/gemandsdk/python, which don't exist.Checked locally:
make verify,cargo fmt --check,npm pack --dry-run,build-rust.sh iosproducing the xcframework from the roottarget/, and the Dart macOS build copying from it. I did not run the Linux or Windows CMake builds; I only ran thecargo metadataandstring(JSON)lookup, which returned the roottarget/. Those two are unverified until someone builds them.