Releasing
Versions are shared by every package. Beta releases use X.Y.Z-beta.N.
- Bump the version everywhere:
pubspec.yamlfiles,ProjectInfoinnative_api_core,runtimes/jsi/package.jsonand the runtime version strings, then regenerate goldens. Add a## [X.Y.Z-beta.N] - <date>section toCHANGELOG.md. bash tools/ci_local.shandbash tools/check_publish.share green.- pub.dev (manual):
dart pub publishin dependency order:native_api_irnative_api_corenative_api_generator,native_api_android,native_api_iosnative_api_flutter_android,native_api_flutter_ios,native_api_react_native_android,native_api_react_native_iosnative_api_cli(packagenative_api_bindgen)native_api_runtimenative_api_ui(withflutter pub publish)
- npm (manual):
cd runtimes/jsi && npm publish --tag beta. The account uses two-factor authentication, so run it from an interactive terminal and approve the staged publish on npmjs.com. - GitHub Release and Homebrew: push a tag
vX.Y.Z-beta.N..github/workflows/release.ymlthen:- runs
release-check; - compiles
native-api-bindgenwithdart compile exeformacos-arm64,macos-x64,linux-x64andlinux-arm64; - attaches the
.tar.gzarchives and their.sha256files to a GitHub Release (marked as a pre-release when the tag contains-); - writes
Formula/native-api-bindgen.rbinlkrjangid1/homebrew-tapwithtools/homebrew_formula.py.
- runs
Homebrew tap: one-time setup#
- Create the public repository
lkrjangid1/homebrew-tap, with a README and the default branchmain. - Create a fine-grained personal access token limited to that repository, with Contents: Read and write.
- In
lkrjangid1/native-api-bindgen→ Settings → Secrets and variables → Actions, add it asHOMEBREW_TAP_TOKEN.
Without the secret the release still succeeds; the homebrew job only logs a warning. To update the tap by hand, download the release's .sha256 files into a directory and run:
python3 tools/homebrew_formula.py 0.1.0-beta.1 <dir> > Formula/native-api-bindgen.rb
Users install with:
brew install lkrjangid1/tap/native-api-bindgen
Source:
docs/releasing.md