Repository navigation
v0.1.0
A cross-platform CLI and library that installs system daemons described in a
goetia.yaml manifest as native services: systemd on Linux, launchd on macOS,
and the Service Control Manager on Windows.
This is the first release. Everything documented in the README — the
manifest's interpolation syntax, the .env grammar, the --json document, and
the exit codes — is pre-1.0 and may still change between releases. Pin a
specific released version, or a specific commit if working ahead of one.
goetia requires systemd 242+ (2019) on Linux, and refuses to act on an older
one before writing or running anything.
Binaries below are published for five targets, with SHA256SUMS and a sigstore
attestation bundle. The crate is on crates.io.
What's Changed
- feat: goetia.yaml spec types, parsing, resolution, and validation by @bindreams in #1
- test: marker inertness probe by @bindreams in #2
- chore: pin GitHub Action digests and bump them with Renovate by @bindreams in #3
- chore: scaffold backend modules and the shared Identity type by @bindreams in #4
- chore(deps): update dependency prek to v0.4.14 by @renovate[bot] in #6
- feat: artifact-level and spec-level diff rendering by @bindreams in #8
- feat: canonical metadata blob encoding by @bindreams in #9
- chore(deps): update actions/checkout action to v7 by @renovate[bot] in #11
- feat: shared install decision function by @bindreams in #12
- feat: SCM registration builder by @bindreams in #13
- feat: systemd unit generator by @bindreams in #14
- feat: launchd plist generator by @bindreams in #15
- fix: reject trailing backslashes and XML noncharacters before emission by @bindreams in #16
- fix: SCM registration builder review findings by @bindreams in #17
- feat: ServiceManager trait, conformance suite, and CLI by @bindreams in #19
- fix: resolve paths against an absolute base dir so blobs stay decodable by @bindreams in #20
- feat: launchd backend (effectful, macOS) by @bindreams in #21
- feat: SCM backend (effectful, Windows, type: managed) by @bindreams in #22
- fix: report unreadable services once, not per service by @bindreams in #23
- feat: systemd backend (effectful, Linux) by @bindreams in #24
- chore(deps): update actions/upload-artifact action to v7 by @renovate[bot] in #18
- chore(deps): update rand to 0.10 and follow its RngExt move by @bindreams in #25
- fix(deps): update rust crates by @renovate[bot] in #26
- feat: goetia-shim (Windows service host) and the type: simple path by @bindreams in #27
- fix: launchd start must not be fooled by a stale job holding the label by @bindreams in #28
- feat: .env interpolation, --json for list/status, and one exit-code vocabulary by @bindreams in #30
- fix: report daemons goetia cannot read instead of omitting them by @bindreams in #31
- fix(deps): update rust crate cosca to 0.3 by @renovate[bot] in #32
- ci: the v0.1.0 release pipeline by @bindreams in #33
- fix: reject an explicit YAML null everywhere in the manifest by @bindreams in #35
- feat: per-backend manifest overrides by @bindreams in #34
- chore(deps): replace serde_yaml_ng with yaml_serde by @bindreams in #37
- fix(deps): update rust crate cosca to 0.4 by @renovate[bot] in #38
- chore(deps): update astral-sh/setup-uv action to v10.1.0 by @renovate[bot] in #40
- feat: start waits for the service manager, bounded by --timeout by @bindreams in #39
- chore(deps): update dependency prek to v0.5.3 by @renovate[bot] in #29
- chore: auto-merge non-major bumps to the version-pinned CI tools too by @bindreams in #41
- fix(shim): make the daemon's waiter thread before spawning it by @bindreams in #42
New Contributors
- @bindreams made their first contribution in #1
- @renovate[bot] made their first contribution in #6
Full Changelog: https://github.com/bindreams/goetia/commits/v0.1.0