Skip to content

v0.7.1

Choose a tag to compare

@snonux snonux released this 17 Sep 05:38
· 525 commits to main since this release

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 (cli package)
    A new public cli package wraps the internal CLI entry point. Projects written in Go that build on top of gonf can invoke cli.CLI() from main and 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/cli should note that internal packages are not a stable API surface; new Go configs should import the public github.com/snonux/gonf/cli package instead.

Compatibility

No breaking changes. No migration steps are required for existing configurations.