From 7b15b6bd16c40fbc673c7e9ae6b5627fe7ea9db0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Nov 2026 17:53:42 +0000 Subject: [PATCH 1/3] Bump go.yaml.in/yaml/v3 in / Bumps [go.yaml.in/yaml/v3](https://github.com/yaml/go-yaml) in `/` from 3.0.5 to 3.0.6. Updates `go.yaml.in/yaml/v3` from 3.0.5 to 3.0.6 - [Commits](https://github.com/yaml/go-yaml/compare/v3.0.5...v3.0.6) --- updated-dependencies: - dependency-name: go.yaml.in/yaml/v3 dependency-version: 3.0.6 dependency-type: indirect update-type: version-update:semver-patch dependency-group: go-modules/go.yaml.in/yaml/v3 ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 6ca05f0..643607d 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( golang.org/x/term v0.47.0 ) -require go.yaml.in/yaml/v3 v3.0.5 // indirect +require go.yaml.in/yaml/v3 v3.0.6 // indirect ignore ( ./.github diff --git a/go.sum b/go.sum index 2dea721..7c3966f 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,7 @@ github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= -go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= -go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +go.yaml.in/yaml/v3 v3.0.6 h1:zcDfvjXEqTQmpjniUBLc91xYJMB2c4QOFxEF/LCEckM= +go.yaml.in/yaml/v3 v3.0.6/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/mod v0.42.0 h1:ICeL3t2L30ljSPHHxDnR4fqVcBt/zR2zJAb9juavmQg= golang.org/x/mod v0.42.0/go.mod h1:u5fzIrRInkL8MaO1cbRkUHT64v303YIT5KEqpNr7jRs= golang.org/x/sys v0.49.0 h1:XbzkgYJHdqh/8m2Uu0W/dQv8nktxx4BFHp1M0gROTXA= From a8567b7627455d185f3fed94ea390176107d0446 Mon Sep 17 00:00:00 2001 From: Gregor Noczinski Date: Mon, 2 Nov 2026 19:16:31 +0100 Subject: [PATCH 2/3] Update Go checksum files for yaml v3.0.6 to satisfy go mod tidy in the example modules and benchmark module. --- _benchmarks/go.sum | 6 ++---- _examples/argument-syntax/go.sum | 4 ++-- _examples/builder-fields/go.sum | 4 ++-- _examples/cancellation/go.sum | 4 ++-- _examples/commands-inheritance/go.sum | 4 ++-- _examples/commands-introspection/go.sum | 4 ++-- _examples/commands-subcommands/go.sum | 4 ++-- _examples/commands/go.sum | 4 ++-- _examples/completion/go.sum | 4 ++-- _examples/custom-codec/go.sum | 4 ++-- _examples/custom-help/go.sum | 4 ++-- _examples/custom-resource-codec/go.sum | 4 ++-- _examples/custom-text-marshaller/go.sum | 4 ++-- _examples/custom-values/go.sum | 4 ++-- _examples/date-time/go.sum | 4 ++-- _examples/embedded-options/go.sum | 4 ++-- _examples/enums/go.sum | 4 ++-- _examples/environment/go.sum | 4 ++-- _examples/error-handling/go.sum | 4 ++-- _examples/files/go.sum | 4 ++-- _examples/lifecycle/go.sum | 4 ++-- _examples/manual-invocation/go.sum | 4 ++-- _examples/named-codecs/go.sum | 4 ++-- _examples/options-factory/go.sum | 4 ++-- _examples/profiles/go.sum | 4 ++-- _examples/repeatable-flags/go.sum | 4 ++-- _examples/simple/go.sum | 4 ++-- _examples/stdio/go.sum | 4 ++-- _examples/typed-context/go.sum | 4 ++-- _examples/validation-errors/go.sum | 4 ++-- _examples/validation/go.sum | 4 ++-- 31 files changed, 62 insertions(+), 64 deletions(-) diff --git a/_benchmarks/go.sum b/_benchmarks/go.sum index 4ac451f..c511586 100644 --- a/_benchmarks/go.sum +++ b/_benchmarks/go.sum @@ -12,7 +12,6 @@ github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLf github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU= github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4= -github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= @@ -21,9 +20,8 @@ github.com/urfave/cli/v3 v3.14.0 h1:a8414NQlHJs0c/iBsulKLzlES0n/lEAskbL2LKpU4/s= github.com/urfave/cli/v3 v3.14.0/go.mod h1:vXn6HxPNccJSzQr2QvwVncOKrgYGIHU0HY5h8B2nQj4= github.com/uudashr/gocognit v1.3.0 h1:Xdw5JwAoYmX3WAB+wsXY3nxEwdw7+MWAnM0wCAAv7A4= github.com/uudashr/gocognit v1.3.0/go.mod h1:acaubQc6xYlXFEMb9nWX2dYBzJ/bIjEkc1zzvyIZg5Q= -go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= -go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= -go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +go.yaml.in/yaml/v3 v3.0.6 h1:zcDfvjXEqTQmpjniUBLc91xYJMB2c4QOFxEF/LCEckM= +go.yaml.in/yaml/v3 v3.0.6/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/mod v0.42.0 h1:ICeL3t2L30ljSPHHxDnR4fqVcBt/zR2zJAb9juavmQg= golang.org/x/mod v0.42.0/go.mod h1:u5fzIrRInkL8MaO1cbRkUHT64v303YIT5KEqpNr7jRs= golang.org/x/sync v0.24.0 h1:iqiDrGoDgyuvAKrhLQthUEzU/R378N78gXbBjxed7oA= diff --git a/_examples/argument-syntax/go.sum b/_examples/argument-syntax/go.sum index 30632a7..1eda0da 100644 --- a/_examples/argument-syntax/go.sum +++ b/_examples/argument-syntax/go.sum @@ -1,7 +1,7 @@ github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= -go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= -go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +go.yaml.in/yaml/v3 v3.0.6 h1:zcDfvjXEqTQmpjniUBLc91xYJMB2c4QOFxEF/LCEckM= +go.yaml.in/yaml/v3 v3.0.6/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/sys v0.49.0 h1:XbzkgYJHdqh/8m2Uu0W/dQv8nktxx4BFHp1M0gROTXA= golang.org/x/sys v0.49.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= golang.org/x/term v0.47.0 h1:cpyOwQkr2Nzxe2p6KnrTG7Ei2wtzjsuSjhpXXepZ/BM= diff --git a/_examples/builder-fields/go.sum b/_examples/builder-fields/go.sum index 30632a7..1eda0da 100644 --- a/_examples/builder-fields/go.sum +++ b/_examples/builder-fields/go.sum @@ -1,7 +1,7 @@ github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= -go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= -go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +go.yaml.in/yaml/v3 v3.0.6 h1:zcDfvjXEqTQmpjniUBLc91xYJMB2c4QOFxEF/LCEckM= +go.yaml.in/yaml/v3 v3.0.6/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/sys v0.49.0 h1:XbzkgYJHdqh/8m2Uu0W/dQv8nktxx4BFHp1M0gROTXA= golang.org/x/sys v0.49.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= golang.org/x/term v0.47.0 h1:cpyOwQkr2Nzxe2p6KnrTG7Ei2wtzjsuSjhpXXepZ/BM= diff --git a/_examples/cancellation/go.sum b/_examples/cancellation/go.sum index 30632a7..1eda0da 100644 --- a/_examples/cancellation/go.sum +++ b/_examples/cancellation/go.sum @@ -1,7 +1,7 @@ github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= -go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= -go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +go.yaml.in/yaml/v3 v3.0.6 h1:zcDfvjXEqTQmpjniUBLc91xYJMB2c4QOFxEF/LCEckM= +go.yaml.in/yaml/v3 v3.0.6/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/sys v0.49.0 h1:XbzkgYJHdqh/8m2Uu0W/dQv8nktxx4BFHp1M0gROTXA= golang.org/x/sys v0.49.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= golang.org/x/term v0.47.0 h1:cpyOwQkr2Nzxe2p6KnrTG7Ei2wtzjsuSjhpXXepZ/BM= diff --git a/_examples/commands-inheritance/go.sum b/_examples/commands-inheritance/go.sum index 30632a7..1eda0da 100644 --- a/_examples/commands-inheritance/go.sum +++ b/_examples/commands-inheritance/go.sum @@ -1,7 +1,7 @@ github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= -go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= -go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +go.yaml.in/yaml/v3 v3.0.6 h1:zcDfvjXEqTQmpjniUBLc91xYJMB2c4QOFxEF/LCEckM= +go.yaml.in/yaml/v3 v3.0.6/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/sys v0.49.0 h1:XbzkgYJHdqh/8m2Uu0W/dQv8nktxx4BFHp1M0gROTXA= golang.org/x/sys v0.49.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= golang.org/x/term v0.47.0 h1:cpyOwQkr2Nzxe2p6KnrTG7Ei2wtzjsuSjhpXXepZ/BM= diff --git a/_examples/commands-introspection/go.sum b/_examples/commands-introspection/go.sum index 30632a7..1eda0da 100644 --- a/_examples/commands-introspection/go.sum +++ b/_examples/commands-introspection/go.sum @@ -1,7 +1,7 @@ github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= -go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= -go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +go.yaml.in/yaml/v3 v3.0.6 h1:zcDfvjXEqTQmpjniUBLc91xYJMB2c4QOFxEF/LCEckM= +go.yaml.in/yaml/v3 v3.0.6/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/sys v0.49.0 h1:XbzkgYJHdqh/8m2Uu0W/dQv8nktxx4BFHp1M0gROTXA= golang.org/x/sys v0.49.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= golang.org/x/term v0.47.0 h1:cpyOwQkr2Nzxe2p6KnrTG7Ei2wtzjsuSjhpXXepZ/BM= diff --git a/_examples/commands-subcommands/go.sum b/_examples/commands-subcommands/go.sum index 30632a7..1eda0da 100644 --- a/_examples/commands-subcommands/go.sum +++ b/_examples/commands-subcommands/go.sum @@ -1,7 +1,7 @@ github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= -go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= -go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +go.yaml.in/yaml/v3 v3.0.6 h1:zcDfvjXEqTQmpjniUBLc91xYJMB2c4QOFxEF/LCEckM= +go.yaml.in/yaml/v3 v3.0.6/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/sys v0.49.0 h1:XbzkgYJHdqh/8m2Uu0W/dQv8nktxx4BFHp1M0gROTXA= golang.org/x/sys v0.49.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= golang.org/x/term v0.47.0 h1:cpyOwQkr2Nzxe2p6KnrTG7Ei2wtzjsuSjhpXXepZ/BM= diff --git a/_examples/commands/go.sum b/_examples/commands/go.sum index 30632a7..1eda0da 100644 --- a/_examples/commands/go.sum +++ b/_examples/commands/go.sum @@ -1,7 +1,7 @@ github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= -go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= -go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +go.yaml.in/yaml/v3 v3.0.6 h1:zcDfvjXEqTQmpjniUBLc91xYJMB2c4QOFxEF/LCEckM= +go.yaml.in/yaml/v3 v3.0.6/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/sys v0.49.0 h1:XbzkgYJHdqh/8m2Uu0W/dQv8nktxx4BFHp1M0gROTXA= golang.org/x/sys v0.49.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= golang.org/x/term v0.47.0 h1:cpyOwQkr2Nzxe2p6KnrTG7Ei2wtzjsuSjhpXXepZ/BM= diff --git a/_examples/completion/go.sum b/_examples/completion/go.sum index 30632a7..1eda0da 100644 --- a/_examples/completion/go.sum +++ b/_examples/completion/go.sum @@ -1,7 +1,7 @@ github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= -go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= -go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +go.yaml.in/yaml/v3 v3.0.6 h1:zcDfvjXEqTQmpjniUBLc91xYJMB2c4QOFxEF/LCEckM= +go.yaml.in/yaml/v3 v3.0.6/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/sys v0.49.0 h1:XbzkgYJHdqh/8m2Uu0W/dQv8nktxx4BFHp1M0gROTXA= golang.org/x/sys v0.49.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= golang.org/x/term v0.47.0 h1:cpyOwQkr2Nzxe2p6KnrTG7Ei2wtzjsuSjhpXXepZ/BM= diff --git a/_examples/custom-codec/go.sum b/_examples/custom-codec/go.sum index 30632a7..1eda0da 100644 --- a/_examples/custom-codec/go.sum +++ b/_examples/custom-codec/go.sum @@ -1,7 +1,7 @@ github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= -go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= -go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +go.yaml.in/yaml/v3 v3.0.6 h1:zcDfvjXEqTQmpjniUBLc91xYJMB2c4QOFxEF/LCEckM= +go.yaml.in/yaml/v3 v3.0.6/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/sys v0.49.0 h1:XbzkgYJHdqh/8m2Uu0W/dQv8nktxx4BFHp1M0gROTXA= golang.org/x/sys v0.49.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= golang.org/x/term v0.47.0 h1:cpyOwQkr2Nzxe2p6KnrTG7Ei2wtzjsuSjhpXXepZ/BM= diff --git a/_examples/custom-help/go.sum b/_examples/custom-help/go.sum index 30632a7..1eda0da 100644 --- a/_examples/custom-help/go.sum +++ b/_examples/custom-help/go.sum @@ -1,7 +1,7 @@ github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= -go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= -go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +go.yaml.in/yaml/v3 v3.0.6 h1:zcDfvjXEqTQmpjniUBLc91xYJMB2c4QOFxEF/LCEckM= +go.yaml.in/yaml/v3 v3.0.6/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/sys v0.49.0 h1:XbzkgYJHdqh/8m2Uu0W/dQv8nktxx4BFHp1M0gROTXA= golang.org/x/sys v0.49.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= golang.org/x/term v0.47.0 h1:cpyOwQkr2Nzxe2p6KnrTG7Ei2wtzjsuSjhpXXepZ/BM= diff --git a/_examples/custom-resource-codec/go.sum b/_examples/custom-resource-codec/go.sum index 30632a7..1eda0da 100644 --- a/_examples/custom-resource-codec/go.sum +++ b/_examples/custom-resource-codec/go.sum @@ -1,7 +1,7 @@ github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= -go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= -go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +go.yaml.in/yaml/v3 v3.0.6 h1:zcDfvjXEqTQmpjniUBLc91xYJMB2c4QOFxEF/LCEckM= +go.yaml.in/yaml/v3 v3.0.6/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/sys v0.49.0 h1:XbzkgYJHdqh/8m2Uu0W/dQv8nktxx4BFHp1M0gROTXA= golang.org/x/sys v0.49.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= golang.org/x/term v0.47.0 h1:cpyOwQkr2Nzxe2p6KnrTG7Ei2wtzjsuSjhpXXepZ/BM= diff --git a/_examples/custom-text-marshaller/go.sum b/_examples/custom-text-marshaller/go.sum index 30632a7..1eda0da 100644 --- a/_examples/custom-text-marshaller/go.sum +++ b/_examples/custom-text-marshaller/go.sum @@ -1,7 +1,7 @@ github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= -go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= -go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +go.yaml.in/yaml/v3 v3.0.6 h1:zcDfvjXEqTQmpjniUBLc91xYJMB2c4QOFxEF/LCEckM= +go.yaml.in/yaml/v3 v3.0.6/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/sys v0.49.0 h1:XbzkgYJHdqh/8m2Uu0W/dQv8nktxx4BFHp1M0gROTXA= golang.org/x/sys v0.49.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= golang.org/x/term v0.47.0 h1:cpyOwQkr2Nzxe2p6KnrTG7Ei2wtzjsuSjhpXXepZ/BM= diff --git a/_examples/custom-values/go.sum b/_examples/custom-values/go.sum index 30632a7..1eda0da 100644 --- a/_examples/custom-values/go.sum +++ b/_examples/custom-values/go.sum @@ -1,7 +1,7 @@ github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= -go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= -go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +go.yaml.in/yaml/v3 v3.0.6 h1:zcDfvjXEqTQmpjniUBLc91xYJMB2c4QOFxEF/LCEckM= +go.yaml.in/yaml/v3 v3.0.6/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/sys v0.49.0 h1:XbzkgYJHdqh/8m2Uu0W/dQv8nktxx4BFHp1M0gROTXA= golang.org/x/sys v0.49.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= golang.org/x/term v0.47.0 h1:cpyOwQkr2Nzxe2p6KnrTG7Ei2wtzjsuSjhpXXepZ/BM= diff --git a/_examples/date-time/go.sum b/_examples/date-time/go.sum index 30632a7..1eda0da 100644 --- a/_examples/date-time/go.sum +++ b/_examples/date-time/go.sum @@ -1,7 +1,7 @@ github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= -go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= -go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +go.yaml.in/yaml/v3 v3.0.6 h1:zcDfvjXEqTQmpjniUBLc91xYJMB2c4QOFxEF/LCEckM= +go.yaml.in/yaml/v3 v3.0.6/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/sys v0.49.0 h1:XbzkgYJHdqh/8m2Uu0W/dQv8nktxx4BFHp1M0gROTXA= golang.org/x/sys v0.49.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= golang.org/x/term v0.47.0 h1:cpyOwQkr2Nzxe2p6KnrTG7Ei2wtzjsuSjhpXXepZ/BM= diff --git a/_examples/embedded-options/go.sum b/_examples/embedded-options/go.sum index 30632a7..1eda0da 100644 --- a/_examples/embedded-options/go.sum +++ b/_examples/embedded-options/go.sum @@ -1,7 +1,7 @@ github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= -go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= -go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +go.yaml.in/yaml/v3 v3.0.6 h1:zcDfvjXEqTQmpjniUBLc91xYJMB2c4QOFxEF/LCEckM= +go.yaml.in/yaml/v3 v3.0.6/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/sys v0.49.0 h1:XbzkgYJHdqh/8m2Uu0W/dQv8nktxx4BFHp1M0gROTXA= golang.org/x/sys v0.49.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= golang.org/x/term v0.47.0 h1:cpyOwQkr2Nzxe2p6KnrTG7Ei2wtzjsuSjhpXXepZ/BM= diff --git a/_examples/enums/go.sum b/_examples/enums/go.sum index 30632a7..1eda0da 100644 --- a/_examples/enums/go.sum +++ b/_examples/enums/go.sum @@ -1,7 +1,7 @@ github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= -go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= -go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +go.yaml.in/yaml/v3 v3.0.6 h1:zcDfvjXEqTQmpjniUBLc91xYJMB2c4QOFxEF/LCEckM= +go.yaml.in/yaml/v3 v3.0.6/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/sys v0.49.0 h1:XbzkgYJHdqh/8m2Uu0W/dQv8nktxx4BFHp1M0gROTXA= golang.org/x/sys v0.49.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= golang.org/x/term v0.47.0 h1:cpyOwQkr2Nzxe2p6KnrTG7Ei2wtzjsuSjhpXXepZ/BM= diff --git a/_examples/environment/go.sum b/_examples/environment/go.sum index 30632a7..1eda0da 100644 --- a/_examples/environment/go.sum +++ b/_examples/environment/go.sum @@ -1,7 +1,7 @@ github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= -go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= -go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +go.yaml.in/yaml/v3 v3.0.6 h1:zcDfvjXEqTQmpjniUBLc91xYJMB2c4QOFxEF/LCEckM= +go.yaml.in/yaml/v3 v3.0.6/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/sys v0.49.0 h1:XbzkgYJHdqh/8m2Uu0W/dQv8nktxx4BFHp1M0gROTXA= golang.org/x/sys v0.49.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= golang.org/x/term v0.47.0 h1:cpyOwQkr2Nzxe2p6KnrTG7Ei2wtzjsuSjhpXXepZ/BM= diff --git a/_examples/error-handling/go.sum b/_examples/error-handling/go.sum index 30632a7..1eda0da 100644 --- a/_examples/error-handling/go.sum +++ b/_examples/error-handling/go.sum @@ -1,7 +1,7 @@ github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= -go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= -go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +go.yaml.in/yaml/v3 v3.0.6 h1:zcDfvjXEqTQmpjniUBLc91xYJMB2c4QOFxEF/LCEckM= +go.yaml.in/yaml/v3 v3.0.6/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/sys v0.49.0 h1:XbzkgYJHdqh/8m2Uu0W/dQv8nktxx4BFHp1M0gROTXA= golang.org/x/sys v0.49.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= golang.org/x/term v0.47.0 h1:cpyOwQkr2Nzxe2p6KnrTG7Ei2wtzjsuSjhpXXepZ/BM= diff --git a/_examples/files/go.sum b/_examples/files/go.sum index 30632a7..1eda0da 100644 --- a/_examples/files/go.sum +++ b/_examples/files/go.sum @@ -1,7 +1,7 @@ github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= -go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= -go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +go.yaml.in/yaml/v3 v3.0.6 h1:zcDfvjXEqTQmpjniUBLc91xYJMB2c4QOFxEF/LCEckM= +go.yaml.in/yaml/v3 v3.0.6/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/sys v0.49.0 h1:XbzkgYJHdqh/8m2Uu0W/dQv8nktxx4BFHp1M0gROTXA= golang.org/x/sys v0.49.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= golang.org/x/term v0.47.0 h1:cpyOwQkr2Nzxe2p6KnrTG7Ei2wtzjsuSjhpXXepZ/BM= diff --git a/_examples/lifecycle/go.sum b/_examples/lifecycle/go.sum index 30632a7..1eda0da 100644 --- a/_examples/lifecycle/go.sum +++ b/_examples/lifecycle/go.sum @@ -1,7 +1,7 @@ github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= -go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= -go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +go.yaml.in/yaml/v3 v3.0.6 h1:zcDfvjXEqTQmpjniUBLc91xYJMB2c4QOFxEF/LCEckM= +go.yaml.in/yaml/v3 v3.0.6/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/sys v0.49.0 h1:XbzkgYJHdqh/8m2Uu0W/dQv8nktxx4BFHp1M0gROTXA= golang.org/x/sys v0.49.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= golang.org/x/term v0.47.0 h1:cpyOwQkr2Nzxe2p6KnrTG7Ei2wtzjsuSjhpXXepZ/BM= diff --git a/_examples/manual-invocation/go.sum b/_examples/manual-invocation/go.sum index 30632a7..1eda0da 100644 --- a/_examples/manual-invocation/go.sum +++ b/_examples/manual-invocation/go.sum @@ -1,7 +1,7 @@ github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= -go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= -go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +go.yaml.in/yaml/v3 v3.0.6 h1:zcDfvjXEqTQmpjniUBLc91xYJMB2c4QOFxEF/LCEckM= +go.yaml.in/yaml/v3 v3.0.6/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/sys v0.49.0 h1:XbzkgYJHdqh/8m2Uu0W/dQv8nktxx4BFHp1M0gROTXA= golang.org/x/sys v0.49.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= golang.org/x/term v0.47.0 h1:cpyOwQkr2Nzxe2p6KnrTG7Ei2wtzjsuSjhpXXepZ/BM= diff --git a/_examples/named-codecs/go.sum b/_examples/named-codecs/go.sum index 30632a7..1eda0da 100644 --- a/_examples/named-codecs/go.sum +++ b/_examples/named-codecs/go.sum @@ -1,7 +1,7 @@ github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= -go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= -go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +go.yaml.in/yaml/v3 v3.0.6 h1:zcDfvjXEqTQmpjniUBLc91xYJMB2c4QOFxEF/LCEckM= +go.yaml.in/yaml/v3 v3.0.6/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/sys v0.49.0 h1:XbzkgYJHdqh/8m2Uu0W/dQv8nktxx4BFHp1M0gROTXA= golang.org/x/sys v0.49.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= golang.org/x/term v0.47.0 h1:cpyOwQkr2Nzxe2p6KnrTG7Ei2wtzjsuSjhpXXepZ/BM= diff --git a/_examples/options-factory/go.sum b/_examples/options-factory/go.sum index 30632a7..1eda0da 100644 --- a/_examples/options-factory/go.sum +++ b/_examples/options-factory/go.sum @@ -1,7 +1,7 @@ github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= -go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= -go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +go.yaml.in/yaml/v3 v3.0.6 h1:zcDfvjXEqTQmpjniUBLc91xYJMB2c4QOFxEF/LCEckM= +go.yaml.in/yaml/v3 v3.0.6/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/sys v0.49.0 h1:XbzkgYJHdqh/8m2Uu0W/dQv8nktxx4BFHp1M0gROTXA= golang.org/x/sys v0.49.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= golang.org/x/term v0.47.0 h1:cpyOwQkr2Nzxe2p6KnrTG7Ei2wtzjsuSjhpXXepZ/BM= diff --git a/_examples/profiles/go.sum b/_examples/profiles/go.sum index 30632a7..1eda0da 100644 --- a/_examples/profiles/go.sum +++ b/_examples/profiles/go.sum @@ -1,7 +1,7 @@ github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= -go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= -go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +go.yaml.in/yaml/v3 v3.0.6 h1:zcDfvjXEqTQmpjniUBLc91xYJMB2c4QOFxEF/LCEckM= +go.yaml.in/yaml/v3 v3.0.6/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/sys v0.49.0 h1:XbzkgYJHdqh/8m2Uu0W/dQv8nktxx4BFHp1M0gROTXA= golang.org/x/sys v0.49.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= golang.org/x/term v0.47.0 h1:cpyOwQkr2Nzxe2p6KnrTG7Ei2wtzjsuSjhpXXepZ/BM= diff --git a/_examples/repeatable-flags/go.sum b/_examples/repeatable-flags/go.sum index 30632a7..1eda0da 100644 --- a/_examples/repeatable-flags/go.sum +++ b/_examples/repeatable-flags/go.sum @@ -1,7 +1,7 @@ github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= -go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= -go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +go.yaml.in/yaml/v3 v3.0.6 h1:zcDfvjXEqTQmpjniUBLc91xYJMB2c4QOFxEF/LCEckM= +go.yaml.in/yaml/v3 v3.0.6/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/sys v0.49.0 h1:XbzkgYJHdqh/8m2Uu0W/dQv8nktxx4BFHp1M0gROTXA= golang.org/x/sys v0.49.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= golang.org/x/term v0.47.0 h1:cpyOwQkr2Nzxe2p6KnrTG7Ei2wtzjsuSjhpXXepZ/BM= diff --git a/_examples/simple/go.sum b/_examples/simple/go.sum index 30632a7..1eda0da 100644 --- a/_examples/simple/go.sum +++ b/_examples/simple/go.sum @@ -1,7 +1,7 @@ github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= -go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= -go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +go.yaml.in/yaml/v3 v3.0.6 h1:zcDfvjXEqTQmpjniUBLc91xYJMB2c4QOFxEF/LCEckM= +go.yaml.in/yaml/v3 v3.0.6/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/sys v0.49.0 h1:XbzkgYJHdqh/8m2Uu0W/dQv8nktxx4BFHp1M0gROTXA= golang.org/x/sys v0.49.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= golang.org/x/term v0.47.0 h1:cpyOwQkr2Nzxe2p6KnrTG7Ei2wtzjsuSjhpXXepZ/BM= diff --git a/_examples/stdio/go.sum b/_examples/stdio/go.sum index 30632a7..1eda0da 100644 --- a/_examples/stdio/go.sum +++ b/_examples/stdio/go.sum @@ -1,7 +1,7 @@ github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= -go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= -go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +go.yaml.in/yaml/v3 v3.0.6 h1:zcDfvjXEqTQmpjniUBLc91xYJMB2c4QOFxEF/LCEckM= +go.yaml.in/yaml/v3 v3.0.6/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/sys v0.49.0 h1:XbzkgYJHdqh/8m2Uu0W/dQv8nktxx4BFHp1M0gROTXA= golang.org/x/sys v0.49.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= golang.org/x/term v0.47.0 h1:cpyOwQkr2Nzxe2p6KnrTG7Ei2wtzjsuSjhpXXepZ/BM= diff --git a/_examples/typed-context/go.sum b/_examples/typed-context/go.sum index 30632a7..1eda0da 100644 --- a/_examples/typed-context/go.sum +++ b/_examples/typed-context/go.sum @@ -1,7 +1,7 @@ github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= -go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= -go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +go.yaml.in/yaml/v3 v3.0.6 h1:zcDfvjXEqTQmpjniUBLc91xYJMB2c4QOFxEF/LCEckM= +go.yaml.in/yaml/v3 v3.0.6/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/sys v0.49.0 h1:XbzkgYJHdqh/8m2Uu0W/dQv8nktxx4BFHp1M0gROTXA= golang.org/x/sys v0.49.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= golang.org/x/term v0.47.0 h1:cpyOwQkr2Nzxe2p6KnrTG7Ei2wtzjsuSjhpXXepZ/BM= diff --git a/_examples/validation-errors/go.sum b/_examples/validation-errors/go.sum index 30632a7..1eda0da 100644 --- a/_examples/validation-errors/go.sum +++ b/_examples/validation-errors/go.sum @@ -1,7 +1,7 @@ github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= -go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= -go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +go.yaml.in/yaml/v3 v3.0.6 h1:zcDfvjXEqTQmpjniUBLc91xYJMB2c4QOFxEF/LCEckM= +go.yaml.in/yaml/v3 v3.0.6/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/sys v0.49.0 h1:XbzkgYJHdqh/8m2Uu0W/dQv8nktxx4BFHp1M0gROTXA= golang.org/x/sys v0.49.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= golang.org/x/term v0.47.0 h1:cpyOwQkr2Nzxe2p6KnrTG7Ei2wtzjsuSjhpXXepZ/BM= diff --git a/_examples/validation/go.sum b/_examples/validation/go.sum index 30632a7..1eda0da 100644 --- a/_examples/validation/go.sum +++ b/_examples/validation/go.sum @@ -1,7 +1,7 @@ github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= github.com/stretchr/testify v1.12.1/go.mod h1:MDEgiDPPsNp5cuIrHPPCyornHKgEVbtFUmoNlxoYthg= -go.yaml.in/yaml/v3 v3.0.5 h1:N6y/pJk8buWs9NY5ERU2HSMfm+IuD/OtfdAnq6kESPw= -go.yaml.in/yaml/v3 v3.0.5/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= +go.yaml.in/yaml/v3 v3.0.6 h1:zcDfvjXEqTQmpjniUBLc91xYJMB2c4QOFxEF/LCEckM= +go.yaml.in/yaml/v3 v3.0.6/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/sys v0.49.0 h1:XbzkgYJHdqh/8m2Uu0W/dQv8nktxx4BFHp1M0gROTXA= golang.org/x/sys v0.49.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= golang.org/x/term v0.47.0 h1:cpyOwQkr2Nzxe2p6KnrTG7Ei2wtzjsuSjhpXXepZ/BM= From 973aed542e3d2e682bb75d2682286ebccc5b525c Mon Sep 17 00:00:00 2001 From: Gregor Noczinski Date: Thu, 5 Nov 2026 09:21:01 +0100 Subject: [PATCH 3/3] Fix nested module checksums and centralize Go tidy checks --- .github/workflows/ci.yml | 5 +- _benchmarks/go.sum | 2 + docs/development.md | 27 ++++ internal/moduletidy/main.go | 87 +++++++++++++ internal/moduletidy/main_test.go | 209 +++++++++++++++++++++++++++++++ mise.toml | 16 ++- 6 files changed, 341 insertions(+), 5 deletions(-) create mode 100644 internal/moduletidy/main.go create mode 100644 internal/moduletidy/main_test.go diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4ef7f0f..53b4837 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -185,9 +185,12 @@ jobs: ~/.cache/golangci-lint key: quality-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('mise.lock', 'go.mod', 'go.sum') }} + - name: Check all Go module files + run: mise run tidy:check + - name: Run quality gate run: >- - mise run format:check ::: lint:mod ::: lint:workflow ::: + mise run format:check ::: lint:workflow ::: test:examples:code ::: test:module ::: test:benchmarks ::: test:fuzz ::: vuln coverage: diff --git a/_benchmarks/go.sum b/_benchmarks/go.sum index c511586..97ca2f2 100644 --- a/_benchmarks/go.sum +++ b/_benchmarks/go.sum @@ -12,6 +12,7 @@ github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLf github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU= github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4= +github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/testify v1.12.1 h1:EuwCh5fleGS7H32xRwO3wRGT7DxrDhLAT6FF8MpWDWE= @@ -20,6 +21,7 @@ github.com/urfave/cli/v3 v3.14.0 h1:a8414NQlHJs0c/iBsulKLzlES0n/lEAskbL2LKpU4/s= github.com/urfave/cli/v3 v3.14.0/go.mod h1:vXn6HxPNccJSzQr2QvwVncOKrgYGIHU0HY5h8B2nQj4= github.com/uudashr/gocognit v1.3.0 h1:Xdw5JwAoYmX3WAB+wsXY3nxEwdw7+MWAnM0wCAAv7A4= github.com/uudashr/gocognit v1.3.0/go.mod h1:acaubQc6xYlXFEMb9nWX2dYBzJ/bIjEkc1zzvyIZg5Q= +go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= go.yaml.in/yaml/v3 v3.0.6 h1:zcDfvjXEqTQmpjniUBLc91xYJMB2c4QOFxEF/LCEckM= go.yaml.in/yaml/v3 v3.0.6/go.mod h1:HVTZu1O7/Vkt2N+BFy8Zza+lnLsABggaTM2ZpNIGuKg= golang.org/x/mod v0.42.0 h1:ICeL3t2L30ljSPHHxDnR4fqVcBt/zR2zJAb9juavmQg= diff --git a/docs/development.md b/docs/development.md index 762c9c1..3867d5a 100644 --- a/docs/development.md +++ b/docs/development.md @@ -13,6 +13,8 @@ mise run check:full | Command | Purpose | | --- | --- | | `mise run format` | Format Go code and tidy modules | +| `mise run tidy` | Tidy the root, benchmark, and all example modules | +| `mise run tidy:check` | Check all module files without changing them | | `mise run lint` | Check Go, modules, and workflows | | `mise run test` | Test Go code and examples | | `mise run test:go --race` | Go tests with race detection | @@ -117,6 +119,31 @@ complete repository. - `CLI4G_CI=1` enables race/verbose/coverage for Go tests and binary coverage for examples; Go tests then write `profile.cov.full`. +## Go dependency updates + +The root, `_benchmarks`, and every directory under `_examples` are independent +Go modules. Nested modules use a local `replace` for cli4g, so an update to the +root's dependencies can also require changes to their `go.mod` or `go.sum` files. +Dependabot grouping does not guarantee those transitive checksum updates. + +After updating dependencies, including on a Dependabot PR, run: + +```shell +mise run tidy +mise run tidy:check +mise run check:full +``` + +`tidy` processes the root first, then the benchmark and example modules, with +`GOWORK=off` and the locked Go toolchain. Commit all resulting module-file changes +with the dependency update. Do not edit `go.sum` by hand or remove older versions +just because a newer version is selected: their `go.mod` checksums can still be +needed to resolve the module graph. + +The standard local `check` includes the same all-module check through `lint`. +CI runs it before the expensive quality checks and fails with the module's name +and the required diff. It does not silently repair or commit changes. + ## CI - Go linting: Linux, macOS Intel, Windows. diff --git a/internal/moduletidy/main.go b/internal/moduletidy/main.go new file mode 100644 index 0000000..fb2ea16 --- /dev/null +++ b/internal/moduletidy/main.go @@ -0,0 +1,87 @@ +// Command moduletidy keeps the root, benchmark, and example modules tidy. +package main + +import ( + "errors" + "flag" + "fmt" + "io" + "os" + "os/exec" + "path/filepath" + + "github.com/echocat/cli4g/internal/exampleutil" +) + +func main() { os.Exit(run(os.Args[1:], os.Stdout, os.Stderr)) } + +func run(args []string, output, diagnostics io.Writer) int { + flags := flag.NewFlagSet("moduletidy", flag.ContinueOnError) + flags.SetOutput(diagnostics) + check := flags.Bool("check", false, "check module files without changing them") + if err := flags.Parse(args); err != nil { + if errors.Is(err, flag.ErrHelp) { + return 0 + } + return 2 + } + if flags.NArg() != 0 { + _, _ = fmt.Fprintln(diagnostics, "usage: moduletidy [-check]") + return 2 + } + root, err := exampleutil.Root(".") + if err == nil { + err = tidy(root, *check, output, diagnostics) + } + if err != nil { + _, _ = fmt.Fprintln(diagnostics, err) + if *check { + _, _ = fmt.Fprintln(diagnostics, "Run mise run tidy to update all module files.") + } + return 1 + } + return 0 +} + +func modules(root string) ([]string, error) { + names, err := exampleutil.Names(root) + if err != nil { + return nil, err + } + result := []string{".", "_benchmarks"} + for _, name := range names { + result = append(result, filepath.Join("_examples", name)) + } + // Validate the complete checkout before changing any module files. + for _, name := range result { + if _, err := os.Stat(filepath.Join(root, name, "go.mod")); err != nil { + return nil, fmt.Errorf("module %s: %w", name, err) + } + } + return result, nil +} + +func tidy(root string, check bool, output, diagnostics io.Writer) error { + directories, err := modules(root) + if err != nil { + return err + } + arguments := []string{"mod", "tidy"} + verb := "Tidying" + if check { + arguments = append(arguments, "-diff") + verb = "Checking" + } + // Nested modules replace cli4g with the root, so always tidy the root first. + for _, directory := range directories { + _, _ = fmt.Fprintf(output, "%s module %s\n", verb, filepath.ToSlash(directory)) + command := exec.Command("go", arguments...) + command.Dir = filepath.Join(root, directory) + command.Env = append(command.Environ(), "GOWORK=off") + command.Stdout, command.Stderr = output, diagnostics + if err := command.Run(); err != nil { + return fmt.Errorf("go mod tidy in %s: %w", filepath.ToSlash(directory), err) + } + } + return nil +} diff --git a/internal/moduletidy/main_test.go b/internal/moduletidy/main_test.go new file mode 100644 index 0000000..695fadc --- /dev/null +++ b/internal/moduletidy/main_test.go @@ -0,0 +1,209 @@ +package main + +import ( + "bytes" + "io/fs" + "os" + "path/filepath" + "reflect" + "runtime" + "strings" + "testing" +) + +func TestModules(t *testing.T) { + root := fixture(t) + got, err := modules(root) + want := []string{".", "_benchmarks", filepath.Join("_examples", "alpha"), filepath.Join("_examples", "simple")} + if err != nil || !reflect.DeepEqual(got, want) { + t.Fatalf("modules = %v, %v; want %v", got, err, want) + } +} + +func TestMissingModuleDoesNotChangeFiles(t *testing.T) { + for _, name := range []string{"go.mod", "_benchmarks/go.mod", "_examples/alpha/go.mod"} { + t.Run(name, func(t *testing.T) { + root := fixture(t) + if err := os.Remove(filepath.Join(root, filepath.FromSlash(name))); err != nil { + t.Fatal(err) + } + before := moduleFiles(t, root) + var output, diagnostics bytes.Buffer + if err := tidy(root, false, &output, &diagnostics); err == nil { + t.Fatal("tidy accepted a checkout with a missing module") + } + if got := moduleFiles(t, root); !reflect.DeepEqual(got, before) { + t.Fatal("tidy modified files before validating the checkout") + } + }) + } +} + +func TestTidyAndCheck(t *testing.T) { + root := fixture(t) + // This test needs no network and must ignore the caller's workspace. + t.Setenv("GOPROXY", "off") + t.Setenv("GOSUMDB", "off") + t.Setenv("GOTOOLCHAIN", "local") + t.Setenv("GOWORK", filepath.Join(root, "missing.work")) + t.Setenv("GOOS", runtime.GOOS) + t.Setenv("GOARCH", runtime.GOARCH) + before := moduleFiles(t, root) + var output, diagnostics bytes.Buffer + if err := tidy(root, true, &output, &diagnostics); err == nil { + t.Fatal("check accepted untidy module files") + } + if !strings.Contains(output.String(), "diff current/go.mod tidy/go.mod") { + t.Fatalf("check did not report the diff:\n%s\n%s", &output, &diagnostics) + } + if got := moduleFiles(t, root); !reflect.DeepEqual(got, before) { + t.Fatal("check modified module files") + } + output.Reset() + diagnostics.Reset() + if err := tidy(root, false, &output, &diagnostics); err != nil { + t.Fatalf("tidy: %v\n%s\n%s", err, &output, &diagnostics) + } + wantOutput := "Tidying module .\nTidying module _benchmarks\nTidying module _examples/alpha\nTidying module _examples/simple\n" + if output.String() != wantOutput { + t.Fatalf("unexpected module order: %q", output.String()) + } + after := moduleFiles(t, root) + if reflect.DeepEqual(after, before) { + t.Fatal("tidy did not update module files") + } + for name, contents := range after { + if strings.Contains(contents, "example.test/unused v0.0.0") { + t.Fatalf("unused requirement remains in %s:\n%s", name, contents) + } + } + output.Reset() + diagnostics.Reset() + if err := tidy(root, true, &output, &diagnostics); err != nil { + t.Fatalf("check after tidy: %v\n%s\n%s", err, &output, &diagnostics) + } + if strings.Count(output.String(), "Checking module ") != 4 { + t.Fatalf("check did not visit all modules: %s", &output) + } + if err := tidy(root, false, &output, &diagnostics); err != nil { + t.Fatalf("second tidy: %v\n%s", err, &diagnostics) + } + if got := moduleFiles(t, root); !reflect.DeepEqual(got, after) { + t.Fatal("tidy is not idempotent") + } + // A drift confined to any nested module must also fail the shared check. + for _, directory := range []string{"_benchmarks", "_examples/simple"} { + parent := ".." + if strings.HasPrefix(directory, "_examples/") { + parent = "../.." + } + writeFixture(t, root, directory+"/go.mod", nestedModule(filepath.Base(directory), parent)) + before = moduleFiles(t, root) + output.Reset() + if err := tidy(root, true, &output, &diagnostics); err == nil || !strings.Contains(err.Error(), directory) { + t.Fatalf("check did not reject the untidy module %s: %v", directory, err) + } + if got := moduleFiles(t, root); !reflect.DeepEqual(got, before) { + t.Fatal("nested-module check modified files") + } + if err := tidy(root, false, &output, &diagnostics); err != nil { + t.Fatalf("repair nested module: %v\n%s", err, &diagnostics) + } + } +} + +func TestRunFromNestedDirectory(t *testing.T) { + root := fixture(t) + t.Chdir(filepath.Join(root, "_examples", "simple")) + var output, diagnostics bytes.Buffer + if got := run([]string{"-check"}, &output, &diagnostics); got != 1 { + t.Fatalf("untidy check exit %d: %s", got, &diagnostics) + } + if !strings.Contains(diagnostics.String(), "mise run tidy") { + t.Fatalf("missing repair instructions: %s", &diagnostics) + } + if got := run(nil, &output, &diagnostics); got != 0 { + t.Fatalf("tidy exit %d: %s", got, &diagnostics) + } + if got := run([]string{"-check"}, &output, &diagnostics); got != 0 { + t.Fatalf("tidy check exit %d: %s", got, &diagnostics) + } +} + +func TestRunOutsideRepository(t *testing.T) { + t.Chdir(t.TempDir()) + var output, diagnostics bytes.Buffer + if got := run(nil, &output, &diagnostics); got != 1 { + t.Fatalf("outside repository exit %d: %s", got, &diagnostics) + } +} + +func TestRunArguments(t *testing.T) { + for _, test := range []struct { + args []string + want int + }{ + {[]string{"-help"}, 0}, + {[]string{"-unknown"}, 2}, + {[]string{"unexpected"}, 2}, + } { + var output, diagnostics bytes.Buffer + if got := run(test.args, &output, &diagnostics); got != test.want { + t.Fatalf("run(%q) = %d; want %d: %s", test.args, got, test.want, &diagnostics) + } + } +} + +func fixture(t *testing.T) string { + t.Helper() + root := t.TempDir() + writeFixture(t, root, "go.mod", "module github.com/echocat/cli4g\n\ngo 1.27.0\n\nrequire example.test/unused v0.0.0\n\nreplace example.test/unused => ./dependency\n") + writeFixture(t, root, "root.go", "package root\n") + writeFixture(t, root, "dependency/go.mod", "module example.test/unused\n\ngo 1.27.0\n") + writeFixture(t, root, "dependency/dependency.go", "package dependency\n") + for _, directory := range []string{"_benchmarks", "_examples/simple", "_examples/alpha"} { + parent := ".." + if strings.HasPrefix(directory, "_examples/") { + parent = "../.." + } + writeFixture(t, root, directory+"/go.mod", nestedModule(filepath.Base(directory), parent)) + writeFixture(t, root, directory+"/main.go", "package main\n\nimport _ \"github.com/echocat/cli4g\"\n\nfunc main() {}\n") + } + return root +} + +func nestedModule(name, parent string) string { + return "module example.test/" + name + "\n\ngo 1.27.0\n\nrequire (\n github.com/echocat/cli4g v0.0.0\n example.test/unused v0.0.0 // indirect\n)\n\nreplace github.com/echocat/cli4g => " + parent + "\n\nreplace example.test/unused => " + parent + "/dependency\n" +} + +func writeFixture(t *testing.T, root, name, contents string) { + t.Helper() + path := filepath.Join(root, filepath.FromSlash(name)) + if err := os.MkdirAll(filepath.Dir(path), 0o700); err != nil { + t.Fatal(err) + } + if err := os.WriteFile(path, []byte(contents), 0o600); err != nil { + t.Fatal(err) + } +} + +func moduleFiles(t *testing.T, root string) map[string]string { + t.Helper() + result := map[string]string{} + if err := filepath.WalkDir(root, func(path string, entry fs.DirEntry, err error) error { + if err != nil { + return err + } + if entry.Name() == "go.mod" || entry.Name() == "go.sum" { + contents, err := os.ReadFile(path) + if err != nil { + return err + } + result[path] = string(contents) + } + return nil + }); err != nil { + t.Fatal(err) + } + return result +} diff --git a/mise.toml b/mise.toml index 21c04dd..2f33d3a 100644 --- a/mise.toml +++ b/mise.toml @@ -56,9 +56,13 @@ tools.golangci-lint = "{{vars.golangci_lint}}" run = "golangci-lint fmt" [tasks."format:go:mod"] -description = "Tidy the Go module" +description = "Tidy the root, benchmark, and example modules" alias = "tidy" -run = "go mod tidy" +dir = "{{config_root}}" +env.GOWORK = "off" +env.GOOS = "{% if os() == 'macos' %}darwin{% else %}{{ os() }}{% endif %}" +env.GOARCH = "{% if arch() == 'x64' %}amd64{% else %}{{ arch() }}{% endif %}" +run = "go run ./internal/moduletidy" [tasks."format:check"] description = "Check formatting in all packages" @@ -239,9 +243,13 @@ alias = "vet" run = "go vet ./..." [tasks."lint:mod"] -description = "Check that the Go module is tidy" +description = "Check that the root, benchmark, and example modules are tidy" alias = "tidy:check" -run = "go mod tidy -diff" +dir = "{{config_root}}" +env.GOWORK = "off" +env.GOOS = "{% if os() == 'macos' %}darwin{% else %}{{ os() }}{% endif %}" +env.GOARCH = "{% if arch() == 'x64' %}amd64{% else %}{{ arch() }}{% endif %}" +run = "go run ./internal/moduletidy -check" [tasks."lint:workflow"] description = "Lint GitHub Actions workflows"