Versioning & Releases¶
heliaCORE uses release-please
to manage versions. Every merge to main triggers .github/workflows/release.yml:
release-please scans conventional-commit subjects since the last tag, decides whether to open a “Release PR” (bumping the version), or — when that PR is itself merged — to create a tag and a GitHub Release.
publish-staticlibs builds static libraries and SDK tarballs for each Cortex-M target across GCC, ATfE, and armclang, then publishes SDK tarballs plus per-toolchain staticlib bundles with SHA-256 checksums.
publish-ci-image builds and pushes
ghcr.io/ambiqai/ns-cmsis-nn-ci:vX.Y.Zso consumers can pin a reproducible build environment.publish-pack generates
Ambiq.NS-CMSIS-NN.<version>.pack, schema-validates it againstPACK.xsd, and uploads it.release-unit-tests and release-helia-core-tester run against the freshly-built artifacts to verify the release actually works before customers see it.
Tag scheme¶
v<MAJOR>.<MINOR>.<PATCH>
MAJORbumps onfeat!:/fix!:/BREAKING CHANGE:footers.MINORbumps on anyfeat:.PATCHbumps onfix:and similar.
Other conventional types (docs:, chore:, refactor:, test:,
ci:, build:, perf:) do not trigger a release on their own,
but their bodies still appear in CHANGELOG.md.
What’s in a release¶
Every GitHub Release contains:
Asset |
Purpose |
|---|---|
|
CMSIS-Pack |
|
SDK tarball (CMake users) |
|
Bare static archives by CPU |
|
SHA-256 of each artifact |
<cpu> is one of cortex-m0, cortex-m4, cortex-m55.
<toolchain> is one of gcc, atfe, armclang.
Note
Cortex-M0/M0+ naming
The release asset name uses cortex-m0 for the baseline ARMv6-M package. Use
that artifact for Cortex-M0/M0+ class Apollo targets.
See also¶
Maintainer release notes in Contributing explain how to recover when the pipeline fails.
Toolchain identity is recorded in
manifest.jsoninside each tarball. See Toolchain Pinning.