Keeping up
Versioning
Two independent dimensions: the project version (generator, runtimes, IR schema, shape of generated APIs) follows SemVer; platform SDK versions (Android API 36, iOS SDK 27.0) are recorded, not mirrored.
Every generated file starts with a header naming the generator version, IR schema, runtime version and source SDK. No timestamps are embedded, so the same inputs produce the same bytes.
// GENERATED CODE - DO NOT MODIFY BY HAND.
// Generated by native-api-bindgen 0.1.0-beta.1 (IR schema 2, runtime 0.1.0-beta.1)
// Source SDK: Android API 36 (platform revision 2)
Releases
All packages share one version. The current release is 0.1.0-beta.1, the first public beta; beta releases are numbered 0.1.0-beta.N.
| Channel | What |
|---|---|
| pub.dev | native_api_bindgen (CLI), native_api_runtime, native_api_ui and the internal packages |
| npm | native-api-bindgen-runtime (dist-tags beta and latest) |
| GitHub Releases | prebuilt CLI binaries for macOS and Linux, release notes from the changelog |
| Homebrew | lkrjangid1/tap/native-api-bindgen, updated from each GitHub Release |
Breaking changes
- Renaming a generated identifier for an unchanged native symbol (including the overload naming scheme).
- Changing the type mapping of an unchanged native type.
- Changing ownership or error semantics of generated objects.
- Removing an IR field or changing its meaning.
Adding symbols from a newer SDK, adding IR fields, improving diagnostics and generating more members are not breaking. While the version is 0.x, breaking changes bump the minor version.
IR schema
The IR is at schema 2 (adds Apple platforms: module-qualified IDs, per-platform availability, pointer and block types). Schema 1 documents still read.