Skip to content

v0.2.1

Choose a tag to compare

@snonux snonux released this 17 Sep 05:36
· 588 commits to main since this release

Release v0.2.1

Release Highlights

This release introduces remote-capable plans — the ability to record your configuration tasks into a portable file and apply it on any other machine that has gonf installed. A new gonf plan -stdout flag makes it easy to pipe plans into other tools, and several documentation improvements make the plan/apply workflow easier to understand and use.

Features

Print plans to stdout

gonf plan now supports a -stdout flag that prints the JSONL plan directly to stdout instead of writing plan.jsonl to a directory:

gonf plan -stdout <task>…

This makes it simple to pipe plans into scp, rsync, or any other transfer tool, or to inspect them with jq. Plans that require file content blobs (e.g. SyncDir) will emit a clear error, since those need a directory for the accompanying blobs/ folder — use -o <dir> for those.

Improvements

Better documentation of the plan/apply engine

The docs now lead with the plan → apply model:

  • A new dedicated plan.md page walks through recording, the JSONL wire format, applying, and the CLI, with a note on why local and remote runs share the same code path.
  • tasks.md and helpers.md now explain how each helper behaves in plan-record mode versus local mode (e.g. WhenPathExists emits when_begin/when_end recipes in a plan, while When(func) cannot be serialized).
  • The conf-rex-gaps page is updated to reflect that gonf can now serialize and apply plans on another host; the remaining gap is SSH transport/orchestration, not plan mechanics.
  • The README gains a quick-reference CLI cheatsheet and a one-line summary of the single apply engine.

Testability of package-manager detection

The OS package-manager detection step in the Package resource can now be stubbed in unit tests. This lets CI runners on Ubuntu verify dnf-related package logic without requiring dnf to be installed, which stabilizes the test suite across environments.

Bug Fixes

  • Fixed the package dry-run test to work correctly on CI runners whose default package manager is not dnf.

Migration Notes

No breaking changes. Existing local gonf <task>… invocations and gonf plan -o <dir> / gonf apply <plan.jsonl> workflows are unaffected. The -stdout flag is purely additive.