Skip to content

Commit 71a029e

Browse files
committed
docs: add release instructions
Signed-off-by: danbugs <danilochiarlone@gmail.com>
1 parent 12570c5 commit 71a029e

1 file changed

Lines changed: 37 additions & 0 deletions

File tree

docs/releasing.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Releasing hyperlight-unikraft
2+
3+
All examples, kernels, and GHCR images share a single version derived
4+
from `host/Cargo.toml`.
5+
6+
## Steps
7+
8+
1. **Bump the version** — open a PR that updates `version` in
9+
`host/Cargo.toml` (e.g., `"0.1.0"``"0.2.0"`). Merge it to main.
10+
11+
2. **Run the release workflow** — go to
12+
**Actions → Create release → Run workflow**. No input needed — the
13+
workflow reads the version from `Cargo.toml`.
14+
15+
3. **What happens automatically:**
16+
- A `v<version>` git tag is created on main.
17+
- A GitHub Release is created with auto-generated notes.
18+
- The publish workflow is triggered, pushing all GHCR images with
19+
both `:latest` and `:v<version>` tags.
20+
21+
## Versioning policy
22+
23+
- New examples or language support → minor bump (0.1.0 → 0.2.0).
24+
- Bug fixes or documentation → patch bump (0.1.0 → 0.1.1).
25+
- Breaking API changes → major bump (0.x → 1.0.0, once stable).
26+
27+
All images are republished on every release, even if unchanged. GHCR
28+
tags are idempotent, so this is harmless.
29+
30+
## crates.io
31+
32+
Publishing to crates.io is blocked until `hyperlight-host` with the
33+
`disk_snapshot_copy` APIs is available on crates.io (see [#27]).
34+
Once unblocked, a `cargo publish` step should be added to the release
35+
workflow.
36+
37+
[#27]: https://github.com/hyperlight-dev/hyperlight-unikraft/issues/27

0 commit comments

Comments
 (0)