feat(go-config): multi-format codecs, envc CLI, fixtures, ASRs

- 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>
This commit is contained in:
2026-05-02 14:04:01 +01:00
co-authored by Cursor
parent 288a5b600c
commit c575341178
75 changed files with 2810 additions and 528 deletions
+25 -2
View File
@@ -1,14 +1,37 @@
# Changelog
All notable changes to `go-env` are documented here.
All notable changes to `go-config` are documented here.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [0.2.0] - 2026-05-02
### Added
- Module rename to `github.com/eslider/go-config` with subpackages `env`, `yaml`, `json`, `ini`.
- Uniform `Codec` API: `New`, `Map`, `Unmarshal`, `UnmarshalContext`, `Marshal`, `WriteTo`.
- `internal/source` for bytes, readers, files, and HTTP(S) URLs with optional headers and custom `http.Client`.
- `internal/keymap` recursive key walk with default `LowerAlnum` normalizer.
- `internal/merge` deep merge: recursive maps, last-write-wins scalars, configurable slice replace vs concat.
- `internal/structconv` around `github.com/go-viper/mapstructure/v2`.
- CLI `envc` (`cmd/envc`): `convert`, `get`, `merge`.
- Fixtures under `fixtures/` for identity, merge, edge, and invalid parser cases.
- `testfixtures` helper for tests.
- Repo-local ASRs in `docs/asr/`.
### Changed
- **Breaking:** the v0.1.0 `github.com/eslider/go-env` API (`Unmarshal`, `UnmarshalPrefix`, `AsMap`, …) is not re-exported; use `env.New(...).Unmarshal(...)`.
### Dependencies
- `github.com/go-viper/mapstructure/v2`, `github.com/joho/godotenv`, `gopkg.in/yaml.v3`, `gopkg.in/ini.v1`.
## [0.1.0] - 2026-04-24
Initial release. Extracted from `produktor.io/ai-fabric/pkg/env` per
Initial release as `github.com/eslider/go-env`. Extracted from `produktor.io/ai-fabric/pkg/env` per
`inventar/docs/asr/ASR-0008-ai-fabric-audit.md`.
### Added