Repository navigation
Write GitHub Release notes per SDK - #34
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>
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>
Release 1.3.5: fix the 32-bit Android build and the Swift script
The release page read as Kotlin-only: the Kotlin workflow hard-coded a Kotlin body and title, and the Swift workflow appended GitHub's PR list to a bare tag name. scripts/release-notes.py now builds one body for every release: an intro naming the platforms, a section per SDK with its install line, its own changes and a changelog link, the PR list, and a footer linking ondeinference.com/sdk. Rust, Flutter and React Native read their changelogs; Swift and Kotlin list commits that touch their own paths. The range starts at the previous GitHub Release, so tags that were never published (1.3.3 and 1.3.4) are folded into 1.3.5. Both release workflows call the script, so they publish the same body whichever finishes last. The title is now "Onde Inference <tag>". `make release-notes TAG=1.3.5` previews it locally. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
This change overhauls the GitHub Release notes for the Onde SDK, moving from hard-coded, Kotlin-only or PR-list-only bodies to a unified, per-SDK release body generated by a new script (scripts/release-notes.py). The script builds a release note that covers all platforms (Swift, Kotlin, Flutter, React Native, Rust), with install lines, per-SDK changes (from changelogs or commit subjects), and links to changelogs and the SDK site. Both the Swift and Kotlin release workflows now call this script and publish the same release body, with the title standardized to Onde Inference <tag>. The Makefile adds a target to preview the release notes. Documentation in .agents/AGENTS.md and .agents/skills/sdk-releases/SKILL.md is updated to describe the new process. The script is robust to missing changelogs, handles unpublished tags, and replaces em dashes for consistency. No findings from earlier reviews remain unresolved.
Automated review by siGit Code Review · commit 0e4e2b7 · see the review dashboard
The GitHub Release page for onde reads as Kotlin-only. The Kotlin workflow hard-codes a Kotlin body and the title
Kotlin SDK <tag>, and the Swift workflow adds GitHub's PR list under a bare tag name. Nothing says what changed for Swift, Flutter, React Native or Rust users.scripts/release-notes.pynow builds one body for every release:Rust, Flutter and React Native come from their changelogs, minus the "Version aligned with the Rust core" boilerplate. Swift and Kotlin have no changelog, so they list commit subjects that touch their own paths (the lists are at the top of the script). A section only appears if the SDK existed at the tag.
The range starts at the previous GitHub Release, so 1.3.5 covers 1.3.3 and 1.3.4, which were tagged but never published.
Both release workflows run the script and publish with
body_path, so the body is the same whichever finishes last. The title becomesOnde Inference <tag>. Checkout usesfetch-depth: 0so tag history is available.make release-notes TAG=1.3.5previews the body locally. Em dashes in changelog prose are replaced with commas.Checked by running the script for 1.3.5 (from 1.3.2), 1.3.2, 1.1.0 and 0.1.0 (no previous release), and rendering one body through
gh api markdown.make verifypasses.actionlintreports only shellcheck infos on a Kotlin step this PR doesn't touch.Merge this before tagging 1.3.5. After it lands I'll back up and rewrite the 22 existing release bodies, showing samples first.