- 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.5 KiB
1.5 KiB
AGENTS.md — go-config
This module is part of the eSlider go-* library standard (inventar ASR-0008).
Purpose
Convert env, YAML, JSON, and INI into nested map[string]any and Go structs (and back), with multi-source merging and the envc CLI.
Public API surface
- Subpackages:
env,yaml,json,ini— each exportsNew,(*Codec).Map,Unmarshal,UnmarshalContext,Marshal,WriteTo, and format-specific options. cmd/envc— binaryenvc:convert,get,merge.- Internals under
internal/are not stable API.
Breaking changes require a new major SemVer tag (or /v2 module path if the policy changes).
Testing policy
Follows the eSlider "no synthetic mocks" policy (see .cursor/rules/no-synthetic-mocks.mdc):
- Unit tests — pure inputs for merge, keymap, structconv, env flat-map helpers.
httptest— allowed only to test our HTTP client behaviour ininternal/source(not third-party API emulation).- Fixtures — real files under
fixtures/;testfixturesresolves paths from module root.
Decisions
Architecture Significant Requirements: docs/asr/README.md.
Checklist before release
cd go-config
go mod tidy
go vet ./...
go test -race -count=1 ./...
golangci-lint run --timeout 5m
Bump CHANGELOG.md, tag vX.Y.Z, push.
Related
inventar/docs/asr/ASR-0008.md— Go library module conventionsgo-onlyoffice/AGENTS.md— reference for the eSlider library template