Commit Graph
23 Commits
Author SHA1 Message Date
eSliderandCursor 474cd88739 feat: add TOML codec and envc format support
New toml package (pelletier/go-toml/v2) matching yaml/json options and merge flow.
envc convert/get/merge accept --from/--to toml; fixture and CLI tests; docs refresh.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-03 10:42:21 +01:00
eSliderandCursor 2d7b97f5ae docs: refactor envc README and centralize decisions
README CLI: comment-first bash examples, convert/merge/get order, real-world flows.
Move architecture decisions pointers into CONTRIBUTING; trim AGENTS and README.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-03 10:37:32 +01:00
eSliderandCursor 36f0ed9b52 docs: add CONTRIBUTING guide and expand README
Add CONTRIBUTING.md for testing, PR checks, and release-please flow; link from
README and AGENTS. Document envc bash sourcing (set -a, source <(...)) for YAML/INI.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-03 10:29:27 +01:00
eSliderandCursor 2d674de546 feat(envc): improve root help and add stdin hang repro script
Root usage documents commands; help/-h/--help and unknown-command paths print the same text. test_hang.sh reproduces blocking reads on stdin.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-03 10:22:35 +01:00
eSliderandGitHub e3e8ccb6c9 Merge pull request #9 from eSlider/release-please--branches--main--components--go-config
chore(main): release 0.2.2
2026-05-02 22:21:20 +01:00
eSlider 366efcf37d chore(main): release 0.2.2 2026-05-02 22:19:55 +01:00
eSliderandCursor 9c2021cef5 fix(release): shrink Linux envc binaries with UPX
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-02 22:19:42 +01:00
eSliderandCursor 1c9bfdb3a8 build(release): UPX Linux envc binaries and trim link metadata
Use GoReleaser UPX (linux only, best+lzma), install upx-ucl in the tag release workflow, and add -buildvcs=false with empty -buildid=. Stop Dependabot auto bump PRs via open-pull-requests-limit 0. Remove stray LibreOffice lock file under docs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-02 22:09:51 +01:00
eSliderandGitHub 3bba7a1691 Merge pull request #8 from eSlider/release-please--branches--main--components--go-config
chore(main): release 0.2.1
2026-05-02 20:22:50 +01:00
eSlider 3b7e830c71 chore(main): release 0.2.1 2026-05-02 20:21:18 +01:00
eSliderandCursor cb0ee8ac22 fix(ci): use golangci-lint v2 config format
Declare golangci config version 2 so the v2 binary installed in CI can parse project lint settings successfully.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-02 20:21:06 +01:00
eSliderandCursor a6a51ec3ef fix(ci): make lint and windows tests reliable
Run golangci-lint v2 via go install to match the active Go toolchain, and remove Windows coverprofile generation that PowerShell resolves incorrectly as package .out.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-02 20:17:19 +01:00
eSliderandCursor 26aa51360b fix(ci): pin lint toolchain to Go 1.26
Use a modern Go toolchain for golangci-lint to avoid typecheck failures reported when the runner stable channel lags behind supported language features.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-02 20:13:36 +01:00
eSliderandCursor 76b4f499c0 fix(ci): unblock release and cross-platform test pipeline
Align golangci config with CI runner support, skip unsupported Windows race execution, and allow release-please to use a PAT fallback token for PR creation when GITHUB_TOKEN is restricted.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-02 20:10:44 +01:00
eSliderandCursor d44b56848b fix: add motivation config precedence regression test
Codify the article's nested Config scenario to verify YAML base values are overridden by dotenv and finally by process environment variables.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-02 20:08:10 +01:00
eSlider eadcf9fa14 refactor: move testfixtures to internal package and update imports
- Relocated testfixtures from the root to the internal package for better encapsulation.
- Updated import paths in codec test files across env, ini, json, yaml directories to reflect the new location.
- Removed the now obsolete testfixtures.go file.
2026-05-02 20:02:20 +01:00
eSlider 0ae52ef72d docs: enhance release flow documentation and add version command to CLI
- Updated AGENTS.md and README.md to clarify the automated release process using release-please and GoReleaser.
- Added a version command to the envc CLI to display build metadata.
- Included CI/CD details in README for better understanding of testing and release automation.
2026-05-02 20:00:14 +01:00
eSlider 43f4b2dc96 chore: add GitHub workflows for linting, testing, and release management
- Introduced dependabot configuration for Go modules and GitHub Actions.
- Added linting workflow to enforce code quality on pushes and pull requests.
- Created release workflow to automate versioning and releases based on tags.
- Implemented testing workflow to run tests across multiple Go versions and OS environments.
2026-05-02 20:00:08 +01:00
eSlider 3b3ea59aa2 Merge branch 'main' of https://github.com/eSlider/go-config 2026-05-02 14:19:53 +01:00
eSlider 327bdfe9ff docs(README): update architecture diagram and enhance CLI/API tables for clarity 2026-05-02 14:19:27 +01:00
eSliderandGitHub 8c7b93cf3a Merge pull request #1 from eSlider/release/v2
feat(go-config): multi-format codecs, envc CLI, fixtures, ASRs
2026-05-02 14:18:23 +01:00
eSliderandCursor c575341178 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>
2026-05-02 14:04:01 +01:00
eSlider 288a5b600c feat: initial release — env decoder extracted from ai-fabric
Public API:
- Unmarshal(dst, opts...)
- UnmarshalPrefix(dst, prefix, opts...)
- AsMap() / AsMapPrefix(prefix)
- Options: WithTrim, WithWeaklyTyped, WithTagName, WithDecodeHook

Merges three divergent in-repo copies (ai-fabric/pkg/env,
markets-platform/TP-general-code/pkg/system, and the var/agents/issue-*
snapshots), adds error wrapping, prefix filter, and pluggable hooks.

15 pure-Go unit tests, no synthetic mocks, lint clean.

Extracted per inventar/docs/asr/ASR-0008-ai-fabric-audit.md.
2026-04-24 13:41:13 +01:00