release: bump to 0.2.2 (engine/policy split — no behavioral change)
Author:
Chris Tusa <chris.tusa@leafscale.com>
Date:
May 21, 2026 08:32
Changeset:
6f39de6d5cc35a3476704368fdbd634ea4220989
Branch:
default
Tags:
v0.2.2
Changed files:
Diff
diff -r 4e271ef53d4a -r 6f39de6d5cc3 docs/RELEASE_NOTES.md --- a/docs/RELEASE_NOTES.md Thu May 21 08:29:40 2026 -0500 +++ b/docs/RELEASE_NOTES.md Thu May 21 08:32:18 2026 -0500 @@ -1,5 +1,31 @@ # zyginit Release Notes +## 0.2.2 — 2026-05-21 + +**Repo content reshape; no behavioral change.** zyginit is now +strictly engine + examples + schema docs. The in-repo `services/hammerhead/` +tree (22 production service TOMLs) has been removed — distros own all +service-definition policy in their own overlay trees. The Hammerhead +team has absorbed the prior set into `base/usr/src/zyginit/overrides/`. + +The `examples/` directory is slimmed to four heavily-commented +canonical examples: + +- `daemon-with-restart/` — long-running daemon with `[restart]` policy +- `oneshot-setup/` — type="oneshot" with `[dependencies].requires` +- `task-with-condition/` — type="task" with `[condition].exists_file` +- `with-stop-script/` — `[exec].stop` + companion `stop.sh` + +`scripts/install-to-be.sh` was deleted; its "deploy our services to +a BE" purpose evaporates in an engine-only world. (Distros can ship +their own equivalent.) + +`docs/SMF_MIGRATION.md` has been rewritten as a methodology guide +(how to convert an SMF manifest to a zyginit TOML) rather than a +catalog of our specific conversions. + +Tarball: ~22 KB smaller than 0.2.1. No `clang` / `reefc` / API changes. + ## 0.2.1 — 2026-05-15 Patch release with two operational improvements: diff -r 4e271ef53d4a -r 6f39de6d5cc3 reef.toml --- a/reef.toml Thu May 21 08:29:40 2026 -0500 +++ b/reef.toml Thu May 21 08:32:18 2026 -0500 @@ -1,6 +1,6 @@ [package] name = "zyginit" -version = "0.2.1" +version = "0.2.2" author = "Chris Tusa <chris.tusa@leafscale.com>" description = "Init system and service supervisor for Zygaena/Hammerhead" license = "CDDL-1.0" diff -r 4e271ef53d4a -r 6f39de6d5cc3 src/version.reef --- a/src/version.reef Thu May 21 08:29:40 2026 -0500 +++ b/src/version.reef Thu May 21 08:32:18 2026 -0500 @@ -23,7 +23,7 @@ end export fn VERSION(): string - return "0.2.1" + return "0.2.2" end VERSION end module diff -r 4e271ef53d4a -r 6f39de6d5cc3 tests/integration/snapshots/boot_tape_ascii.txt --- a/tests/integration/snapshots/boot_tape_ascii.txt Thu May 21 08:29:40 2026 -0500 +++ b/tests/integration/snapshots/boot_tape_ascii.txt Thu May 21 08:32:18 2026 -0500 @@ -1,4 +1,4 @@ - [36m[Z][0m zyginit 0.2.1 · [37mmulti-user[0m [36melapsed 5.0s[0m + [36m[Z][0m zyginit 0.2.2 · [37mmulti-user[0m [36melapsed 5.0s[0m [37m17 services · tier 5 · 9 done · 1 failed · 0 skipped[0m [31mfailed: network exit=1[0m [36m──────────────────────────────────────────────────────────────[0m diff -r 4e271ef53d4a -r 6f39de6d5cc3 tests/integration/snapshots/boot_tape_rich.txt --- a/tests/integration/snapshots/boot_tape_rich.txt Thu May 21 08:29:40 2026 -0500 +++ b/tests/integration/snapshots/boot_tape_rich.txt Thu May 21 08:32:18 2026 -0500 @@ -1,4 +1,4 @@ - [38;2;0;106;111m[Z][0m zyginit 0.2.1 · [38;2;110;123;139mmulti-user[0m [38;2;0;106;111melapsed 5.0s[0m + [38;2;0;106;111m[Z][0m zyginit 0.2.2 · [38;2;110;123;139mmulti-user[0m [38;2;0;106;111melapsed 5.0s[0m [38;2;110;123;139m17 services · tier 5 · 9 done · 1 failed · 0 skipped[0m [38;2;200;32;31mfailed: network exit=1[0m [38;2;0;106;111m──────────────────────────────────────────────────────────────[0m diff -r 4e271ef53d4a -r 6f39de6d5cc3 tests/integration/snapshots/boot_with_skipped.txt --- a/tests/integration/snapshots/boot_with_skipped.txt Thu May 21 08:29:40 2026 -0500 +++ b/tests/integration/snapshots/boot_with_skipped.txt Thu May 21 08:32:18 2026 -0500 @@ -1,4 +1,4 @@ -[2J[H [38;2;0;106;111m[Z][0m zyginit 0.2.1 · [38;2;110;123;139mmulti-user[0m [38;2;0;106;111melapsed 0.4s[0m +[2J[H [38;2;0;106;111m[Z][0m zyginit 0.2.2 · [38;2;110;123;139mmulti-user[0m [38;2;0;106;111melapsed 0.4s[0m [38;2;110;123;139m5 services · tier 0 · 2 done · 0 failed · 1 skipped[0m [2mfailed: none[0m [38;2;0;106;111m──────────────────────────────────────────────────────────────[0m diff -r 4e271ef53d4a -r 6f39de6d5cc3 tests/integration/snapshots/final_card_failed.txt --- a/tests/integration/snapshots/final_card_failed.txt Thu May 21 08:29:40 2026 -0500 +++ b/tests/integration/snapshots/final_card_failed.txt Thu May 21 08:32:18 2026 -0500 @@ -1,4 +1,4 @@ -[2J[H [38;2;0;106;111m[Z][0m zyginit 0.2.1 · [38;2;110;123;139mmulti-user[0m [38;2;0;106;111mboot 8.3s[0m +[2J[H [38;2;0;106;111m[Z][0m zyginit 0.2.2 · [38;2;110;123;139mmulti-user[0m [38;2;0;106;111mboot 8.3s[0m [38;2;110;123;139m17 services — 16 online, 1 failed, 0 skipped[0m [38;2;200;32;31mfailed: network exit=1[0m diff -r 4e271ef53d4a -r 6f39de6d5cc3 tests/integration/snapshots/final_card_ok.txt --- a/tests/integration/snapshots/final_card_ok.txt Thu May 21 08:29:40 2026 -0500 +++ b/tests/integration/snapshots/final_card_ok.txt Thu May 21 08:32:18 2026 -0500 @@ -1,4 +1,4 @@ -[2J[H [38;2;0;106;111m[Z][0m zyginit 0.2.1 · [38;2;110;123;139mmulti-user[0m [38;2;0;106;111mboot 8.3s[0m +[2J[H [38;2;0;106;111m[Z][0m zyginit 0.2.2 · [38;2;110;123;139mmulti-user[0m [38;2;0;106;111mboot 8.3s[0m [38;2;110;123;139m17 services — 17 online, 0 failed, 0 skipped[0m [38;2;46;139;87mall services online[0m diff -r 4e271ef53d4a -r 6f39de6d5cc3 tests/integration/snapshots/final_card_with_skipped.txt --- a/tests/integration/snapshots/final_card_with_skipped.txt Thu May 21 08:29:40 2026 -0500 +++ b/tests/integration/snapshots/final_card_with_skipped.txt Thu May 21 08:32:18 2026 -0500 @@ -1,4 +1,4 @@ -[2J[H [38;2;0;106;111m[Z][0m zyginit 0.2.1 · [38;2;110;123;139mmulti-user[0m [38;2;0;106;111mboot 8.3s[0m +[2J[H [38;2;0;106;111m[Z][0m zyginit 0.2.2 · [38;2;110;123;139mmulti-user[0m [38;2;0;106;111mboot 8.3s[0m [38;2;110;123;139m23 services — 19 online, 0 failed, 4 skipped[0m [38;2;46;139;87mall services online[0m diff -r 4e271ef53d4a -r 6f39de6d5cc3 tests/integration/snapshots/shutdown_final.txt --- a/tests/integration/snapshots/shutdown_final.txt Thu May 21 08:29:40 2026 -0500 +++ b/tests/integration/snapshots/shutdown_final.txt Thu May 21 08:32:18 2026 -0500 @@ -1,4 +1,4 @@ -[2J[H [38;2;0;106;111m[Z][0m zyginit 0.2.1 · [38;2;110;123;139mreboot complete[0m [38;2;0;106;111mreboot 2.1s[0m +[2J[H [38;2;0;106;111m[Z][0m zyginit 0.2.2 · [38;2;110;123;139mreboot complete[0m [38;2;0;106;111mreboot 2.1s[0m [38;2;110;123;139m17 services stopped cleanly[0m [38;2;0;106;111m──────────────────────────────────────────────────────────────[0m [2minvoking uadmin(A_SHUTDOWN, AD_BOOT)[0m diff -r 4e271ef53d4a -r 6f39de6d5cc3 tests/integration/snapshots/shutdown_mirror.txt --- a/tests/integration/snapshots/shutdown_mirror.txt Thu May 21 08:29:40 2026 -0500 +++ b/tests/integration/snapshots/shutdown_mirror.txt Thu May 21 08:32:18 2026 -0500 @@ -1,4 +1,4 @@ -[2J[H [38;2;0;106;111m[Z][0m zyginit 0.2.1 · [38;2;110;123;139mstopping for reboot[0m [38;2;0;106;111melapsed 0.4s[0m +[2J[H [38;2;0;106;111m[Z][0m zyginit 0.2.2 · [38;2;110;123;139mstopping for reboot[0m [38;2;0;106;111melapsed 0.4s[0m [38;2;110;123;139m17 services · tier 6 · 4 done · 0 failed · 0 skipped[0m [2mfailed: none[0m [38;2;0;106;111m──────────────────────────────────────────────────────────────[0m diff -r 4e271ef53d4a -r 6f39de6d5cc3 tests/integration/snapshots/sigil_rich.txt --- a/tests/integration/snapshots/sigil_rich.txt Thu May 21 08:29:40 2026 -0500 +++ b/tests/integration/snapshots/sigil_rich.txt Thu May 21 08:32:18 2026 -0500 @@ -1,1 +1,1 @@ -[38;2;0;106;111m[Z][0m zyginit 0.2.1 +[38;2;0;106;111m[Z][0m zyginit 0.2.2 diff -r 4e271ef53d4a -r 6f39de6d5cc3 tests/integration/snapshots/spinner_in_tape.txt --- a/tests/integration/snapshots/spinner_in_tape.txt Thu May 21 08:29:40 2026 -0500 +++ b/tests/integration/snapshots/spinner_in_tape.txt Thu May 21 08:32:18 2026 -0500 @@ -1,4 +1,4 @@ -[2J[H [38;2;0;106;111m[Z][0m zyginit 0.2.1 · [38;2;110;123;139mmulti-user[0m [38;2;0;106;111melapsed 2.1s[0m +[2J[H [38;2;0;106;111m[Z][0m zyginit 0.2.2 · [38;2;110;123;139mmulti-user[0m [38;2;0;106;111melapsed 2.1s[0m [38;2;110;123;139m17 services · tier 0 · 3 done · 0 failed · 0 skipped[0m [2mfailed: none[0m [38;2;0;106;111m──────────────────────────────────────────────────────────────[0m diff -r 4e271ef53d4a -r 6f39de6d5cc3 tests/integration/snapshots/task_failed.txt --- a/tests/integration/snapshots/task_failed.txt Thu May 21 08:29:40 2026 -0500 +++ b/tests/integration/snapshots/task_failed.txt Thu May 21 08:32:18 2026 -0500 @@ -1,4 +1,4 @@ -[2J[H [38;2;0;106;111m[Z][0m zyginit 0.2.1 · [38;2;110;123;139mmulti-user[0m [38;2;0;106;111mboot 0.2s[0m +[2J[H [38;2;0;106;111m[Z][0m zyginit 0.2.2 · [38;2;110;123;139mmulti-user[0m [38;2;0;106;111mboot 0.2s[0m [38;2;110;123;139m5 services — 4 online, 1 failed, 0 skipped[0m [38;2;200;32;31mfailed: task-svc exit=1[0m diff -r 4e271ef53d4a -r 6f39de6d5cc3 tests/integration/snapshots/task_ok.txt --- a/tests/integration/snapshots/task_ok.txt Thu May 21 08:29:40 2026 -0500 +++ b/tests/integration/snapshots/task_ok.txt Thu May 21 08:32:18 2026 -0500 @@ -1,4 +1,4 @@ -[2J[H [38;2;0;106;111m[Z][0m zyginit 0.2.1 · [38;2;110;123;139mmulti-user[0m [38;2;0;106;111mboot 0.2s[0m +[2J[H [38;2;0;106;111m[Z][0m zyginit 0.2.2 · [38;2;110;123;139mmulti-user[0m [38;2;0;106;111mboot 0.2s[0m [38;2;110;123;139m5 services — 5 online, 0 failed, 0 skipped[0m [38;2;46;139;87mall services online[0m diff -r 4e271ef53d4a -r 6f39de6d5cc3 tools/sysv-wrapper/version.h --- a/tools/sysv-wrapper/version.h Thu May 21 08:29:40 2026 -0500 +++ b/tools/sysv-wrapper/version.h Thu May 21 08:32:18 2026 -0500 @@ -18,5 +18,5 @@ #ifndef ZYGINIT_VERSION_H #define ZYGINIT_VERSION_H -#define ZYGINIT_VERSION "0.2.1" +#define ZYGINIT_VERSION "0.2.2" #endif diff -r 4e271ef53d4a -r 6f39de6d5cc3 tools/zygctl/reef.toml --- a/tools/zygctl/reef.toml Thu May 21 08:29:40 2026 -0500 +++ b/tools/zygctl/reef.toml Thu May 21 08:32:18 2026 -0500 @@ -1,6 +1,6 @@ [package] name = "zygctl" -version = "0.2.1" +version = "0.2.2" author = "Chris Tusa <chris.tusa@leafscale.com>" description = "Administrative CLI for zyginit" license = "CDDL-1.0" diff -r 4e271ef53d4a -r 6f39de6d5cc3 tools/zygctl/src/version.reef --- a/tools/zygctl/src/version.reef Thu May 21 08:29:40 2026 -0500 +++ b/tools/zygctl/src/version.reef Thu May 21 08:32:18 2026 -0500 @@ -23,7 +23,7 @@ end export fn VERSION(): string - return "0.2.1" + return "0.2.2" end VERSION end module