Repository navigation
v0.7.1
Release v0.7.1
Release Notes
Overview
This release exposes gonf's command-line interface as a public, importable package. Configs that are Go programs — such as the dotfiles module — can now call cli.CLI() directly from their own main to inherit gonf's flag parsing, subcommand dispatch, and standard exit-code behavior, without having to reach into internal packages or re-implement that plumbing themselves.
Features
-
Embeddable CLI entry point (
clipackage)
A new publicclipackage wraps the internal CLI entry point. Projects written in Go that build on top of gonf can invokecli.CLI()frommainand receive the full command-line surface — subcommands, flag handling, and correct process exit codes — with a single call.Why this matters: Previously, Go programs wanting to embed gonf had no supported public entry point and were forced to depend on internal packages (which Go's tooling intentionally disallows) or duplicate CLI logic. This makes gonf genuinely usable as a library from other Go code, which is the intended usage pattern for programmatic configs like the dotfiles module.
Migration Notes
None required. This is an additive change:
- Existing users invoking gonf through its installed binary are unaffected — behavior is identical.
- Users of
github.com/snonux/gonf/internal/clishould note that internal packages are not a stable API surface; new Go configs should import the publicgithub.com/snonux/gonf/clipackage instead.
Compatibility
No breaking changes. No migration steps are required for existing configurations.