- Module github.com/eslider/go-config with env/yaml/json/ini packages - internal: source, keymap, merge, structconv, bytesutil - cmd/envc: convert, get, merge - docs/asr ASR-0001..0008, README/CHANGELOG/AGENTS refresh - golangci-lint v2 config; tests + fixtures Co-authored-by: Cursor <cursoragent@cursor.com>
1.1 KiB
1.1 KiB
ASR-0001: Module rename and multi-package layout
Context
The original github.com/eslider/go-env module only decoded process environment variables. The product scope expanded to YAML, JSON, INI, URLs, multi-source merging, and a CLI. The old name and single-package layout no longer matched the capability surface.
Decision
- The canonical module path is
github.com/eslider/go-config. - Format-specific code lives in first-class subpackages:
env/,yaml/,json/,ini/. - Shared building blocks live under
internal/{source,keymap,merge,structconv,bytesutil}. - The CLI lives at
cmd/envc/(one binary per inventar ASR-0008 §2 — CLI inside the same module). - The GitHub repository is named
eSlider/go-config(renamed fromgo-env).
Consequences
- Consumers must change their
importpaths andgo gettarget. - CI, badges, and documentation reference
go-configandeslider/go-config.
Status
Accepted — 2026-05-02.
References
- inventar ASR-0008 — Go library module conventions
- ASR-0002 — API clean break