Skip to content

Write GitHub Release notes per SDK - #34

Merged
setoelkahfi merged 6 commits into
developmentfrom
feature/release-notes
Oct 31, 2026
Merged

setoelkahfi merged 6 commits into
developmentfrom
feature/release-notes

Conversation

@setoelkahfi

Copy link
Copy Markdown
Collaborator

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.py now builds one body for every release:

  • an intro naming the product and its platforms
  • a section per SDK with an install line, that SDK's changes (or "No changes in this release.") and a changelog link where one exists
  • the pull request list from GitHub, a full-changelog link, and a footer linking https://ondeinference.com/sdk

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 becomes Onde Inference <tag>. Checkout uses fetch-depth: 0 so tag history is available. make release-notes TAG=1.3.5 previews 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 verify passes. actionlint reports 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.

setoelkahfi and others added 6 commits October 31, 2026 07:37
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>
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>

@sigit-code-review sigit-code-review Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

@setoelkahfi setoelkahfi self-assigned this Oct 31, 2026
@setoelkahfi
setoelkahfi changed the base branch from main to development October 31, 2026 11:08
@setoelkahfi
setoelkahfi merged commit 6dfb54f into development Oct 31, 2026
38 checks passed
@setoelkahfi
setoelkahfi deleted the feature/release-notes branch October 31, 2026 11:15
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.

3 participants