Skip to content

chore(deps): upgrade Go to 1.26 and all dependencies#475

Merged
CybotTM merged 9 commits intomainfrom
chore/upgrade-go-1.26
Feb 15, 2026
Merged

chore(deps): upgrade Go to 1.26 and all dependencies#475
CybotTM merged 9 commits intomainfrom
chore/upgrade-go-1.26

Conversation

@CybotTM
Copy link
Copy Markdown
Member

@CybotTM CybotTM commented Feb 15, 2026

Summary

  • Upgrade Go from 1.25.7 to 1.26.0
  • Upgrade all direct and indirect dependencies to latest versions
  • All CI workflows use go-version-file: go.mod — no workflow changes needed

Dependency upgrades

Package From To
Go 1.25.7 1.26.0
docker/cli v29.1.3 v29.2.1
go-playground/validator v10.30.0 v10.30.1
netresearch/go-cron v0.9.1 v0.11.0
sirupsen/logrus v1.9.3 v1.9.4
golang.org/x/crypto v0.46.0 v0.48.0
golang.org/x/term v0.38.0 v0.40.0
golang.org/x/text v0.32.0 v0.34.0
gopkg.in/ini.v1 v1.67.0 v1.67.1
+ various indirect deps (otel, mimetype, etc.)

Supersedes #469, #470, #471, #472, #473.

Test plan

  • go build ./... passes
  • go vet ./... passes
  • go test -short ./... — all tests pass
  • CI: all checks pass with Go 1.26

- Go: 1.25.7 → 1.26.0
- docker/cli: v29.1.3 → v29.2.1
- go-playground/validator: v10.30.0 → v10.30.1
- netresearch/go-cron: v0.9.1 → v0.11.0
- sirupsen/logrus: v1.9.3 → v1.9.4
- golang.org/x/crypto: v0.46.0 → v0.48.0
- golang.org/x/term: v0.38.0 → v0.40.0
- golang.org/x/text: v0.32.0 → v0.34.0
- gopkg.in/ini.v1: v1.67.0 → v1.67.1
- Various indirect dependency upgrades (otel, mimetype, etc.)

All CI workflows use go-version-file: go.mod, so they will
automatically use Go 1.26. Supersedes Dependabot PRs
#469, #470, #471, #472, #473.
Copilot AI review requested due to automatic review settings February 15, 2026 10:20
@gemini-code-assist
Copy link
Copy Markdown

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

@github-actions
Copy link
Copy Markdown

github-actions bot commented Feb 15, 2026

Dependency Review

The following issues were found:
  • ✅ 0 vulnerable package(s)
  • ✅ 0 package(s) with incompatible licenses
  • ✅ 0 package(s) with invalid SPDX license definitions
  • ⚠️ 1 package(s) with unknown licenses.
See the Details below.

License Issues

go.mod

PackageVersionLicenseIssue Type
golang.org/x/term0.40.0NullUnknown License
Allowed Licenses: MIT, Apache-2.0, BSD-2-Clause, BSD-3-Clause, ISC, MPL-2.0, CC0-1.0, Unlicense
Excluded from license check: pkg:golang/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp, pkg:golang/go.opentelemetry.io/otel, pkg:golang/go.opentelemetry.io/otel/metric, pkg:golang/go.opentelemetry.io/otel/trace, pkg:golang/golang.org/x/crypto, pkg:golang/golang.org/x/sys, pkg:golang/golang.org/x/text

OpenSSF Scorecard

Scorecard details
PackageVersionScoreDetails
actions/github/codeql-action/upload-sarif 9e907b5e64f6b83e7804b09294d44122997950d6 UnknownUnknown
gomod/github.com/docker/cli 29.2.1+incompatible 🟢 8.3
Details
CheckScoreReason
Maintained🟢 1030 commit(s) and 11 issue activity found in the last 90 days -- score normalized to 10
Code-Review🟢 10all changesets reviewed
Security-Policy🟢 10security policy file detected
Packaging⚠️ -1packaging workflow not detected
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Token-Permissions🟢 10GitHub workflow tokens follow principle of least privilege
License🟢 10license file detected
Fuzzing⚠️ 0project is not fuzzed
Branch-Protection⚠️ -1internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration
Signed-Releases⚠️ -1no releases found
Binary-Artifacts🟢 10no binaries found in the repo
Vulnerabilities🟢 100 existing vulnerabilities detected
SAST🟢 10SAST tool is run on all commits
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0
gomod/github.com/docker/docker-credential-helpers 0.9.5 🟢 7
Details
CheckScoreReason
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Maintained🟢 1022 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10
Security-Policy🟢 9security policy file detected
Token-Permissions🟢 10GitHub workflow tokens follow principle of least privilege
Code-Review🟢 10all changesets reviewed
Packaging⚠️ -1packaging workflow not detected
Binary-Artifacts🟢 10no binaries found in the repo
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Fuzzing⚠️ 0project is not fuzzed
License🟢 10license file detected
Branch-Protection⚠️ -1internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration
Signed-Releases⚠️ 0Project has not signed or included provenance with any releases.
Vulnerabilities🟢 100 existing vulnerabilities detected
Pinned-Dependencies⚠️ 1dependency not pinned by hash detected -- score normalized to 1
SAST⚠️ 2SAST tool is not run on all commits -- score normalized to 2
gomod/github.com/gabriel-vasile/mimetype 1.4.13 🟢 7.4
Details
CheckScoreReason
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Maintained🟢 1016 commit(s) and 6 issue activity found in the last 90 days -- score normalized to 10
Code-Review⚠️ 0Found 2/26 approved changesets -- score normalized to 0
Packaging⚠️ -1packaging workflow not detected
Binary-Artifacts🟢 10no binaries found in the repo
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0
Token-Permissions🟢 10GitHub workflow tokens follow principle of least privilege
CII-Best-Practices🟢 5badge detected: Passing
Security-Policy⚠️ 0security policy file not detected
Fuzzing🟢 10project is fuzzed
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
Branch-Protection⚠️ -1internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
Vulnerabilities🟢 100 existing vulnerabilities detected
SAST🟢 10SAST tool is run on all commits
gomod/github.com/go-playground/validator/v10 10.30.1 🟢 5.3
Details
CheckScoreReason
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Packaging⚠️ -1packaging workflow not detected
Maintained🟢 1023 commit(s) and 7 issue activity found in the last 90 days -- score normalized to 10
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Code-Review🟢 10all changesets reviewed
Binary-Artifacts🟢 10no binaries found in the repo
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Security-Policy⚠️ 0security policy file not detected
Fuzzing⚠️ 0project is not fuzzed
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
Vulnerabilities🟢 55 existing vulnerabilities detected
Branch-Protection⚠️ -1internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
gomod/github.com/netresearch/go-cron 0.11.0 🟢 8.7
Details
CheckScoreReason
Dependency-Update-Tool🟢 10update tool detected
Security-Policy🟢 10security policy file detected
Binary-Artifacts🟢 10no binaries found in the repo
Maintained⚠️ 0project was created in last 90 days. please review its contents carefully
Packaging⚠️ -1packaging workflow not detected
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Code-Review🟢 10all changesets reviewed
Pinned-Dependencies🟢 10all dependencies are pinned
Token-Permissions🟢 10GitHub workflow tokens follow principle of least privilege
Vulnerabilities🟢 100 existing vulnerabilities detected
CII-Best-Practices🟢 5badge detected: Passing
Signed-Releases🟢 85 out of the last 5 releases have a total of 5 signed artifacts.
License🟢 10license file detected
Fuzzing🟢 10project is fuzzed
Branch-Protection🟢 8branch protection is not maximal on development and all release branches
SAST🟢 10SAST tool is run on all commits
CI-Tests🟢 105 out of 5 merged PRs checked by a CI test -- score normalized to 10
Contributors🟢 6project has 2 contributing companies or organizations -- score normalized to 6
gomod/github.com/sirupsen/logrus 1.9.4 🟢 5
Details
CheckScoreReason
Code-Review🟢 7Found 10/13 approved changesets -- score normalized to 7
Maintained🟢 1018 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Packaging⚠️ -1packaging workflow not detected
Binary-Artifacts🟢 10no binaries found in the repo
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Security-Policy⚠️ 0security policy file not detected
Fuzzing⚠️ 0project is not fuzzed
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
Vulnerabilities🟢 100 existing vulnerabilities detected
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
gomod/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp 0.65.0 🟢 8.8
Details
CheckScoreReason
Code-Review🟢 10all changesets reviewed
Maintained🟢 1030 commit(s) and 15 issue activity found in the last 90 days -- score normalized to 10
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Binary-Artifacts🟢 10no binaries found in the repo
Packaging⚠️ -1packaging workflow not detected
Dependency-Update-Tool🟢 10update tool detected
Token-Permissions🟢 10GitHub workflow tokens follow principle of least privilege
License🟢 10license file detected
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Signed-Releases🟢 84 out of the last 4 releases have a total of 4 signed artifacts.
SAST🟢 10SAST tool is run on all commits
Branch-Protection🟢 4branch protection is not maximal on development and all release branches
Vulnerabilities🟢 100 existing vulnerabilities detected
Security-Policy🟢 10security policy file detected
Pinned-Dependencies🟢 4dependency not pinned by hash detected -- score normalized to 4
Fuzzing🟢 10project is fuzzed
CI-Tests🟢 1030 out of 30 merged PRs checked by a CI test -- score normalized to 10
Contributors🟢 10project has 42 contributing companies or organizations
gomod/go.opentelemetry.io/otel 1.40.0 🟢 9.3
Details
CheckScoreReason
Maintained🟢 1030 commit(s) and 9 issue activity found in the last 90 days -- score normalized to 10
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Dependency-Update-Tool🟢 10update tool detected
Code-Review🟢 10all changesets reviewed
Packaging⚠️ -1packaging workflow not detected
Token-Permissions🟢 10GitHub workflow tokens follow principle of least privilege
Binary-Artifacts🟢 10no binaries found in the repo
Pinned-Dependencies🟢 10all dependencies are pinned
CII-Best-Practices🟢 5badge detected: Passing
SAST🟢 9SAST tool detected but not run on all commits
Security-Policy🟢 10security policy file detected
License🟢 10license file detected
Branch-Protection🟢 5branch protection is not maximal on development and all release branches
Fuzzing🟢 10project is fuzzed
Vulnerabilities🟢 100 existing vulnerabilities detected
Signed-Releases🟢 85 out of the last 5 releases have a total of 5 signed artifacts.
CI-Tests🟢 1030 out of 30 merged PRs checked by a CI test -- score normalized to 10
Contributors🟢 10project has 38 contributing companies or organizations
gomod/go.opentelemetry.io/otel/metric 1.40.0 🟢 9.3
Details
CheckScoreReason
Maintained🟢 1030 commit(s) and 9 issue activity found in the last 90 days -- score normalized to 10
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Dependency-Update-Tool🟢 10update tool detected
Code-Review🟢 10all changesets reviewed
Packaging⚠️ -1packaging workflow not detected
Token-Permissions🟢 10GitHub workflow tokens follow principle of least privilege
Binary-Artifacts🟢 10no binaries found in the repo
Pinned-Dependencies🟢 10all dependencies are pinned
CII-Best-Practices🟢 5badge detected: Passing
SAST🟢 9SAST tool detected but not run on all commits
Security-Policy🟢 10security policy file detected
License🟢 10license file detected
Branch-Protection🟢 5branch protection is not maximal on development and all release branches
Fuzzing🟢 10project is fuzzed
Vulnerabilities🟢 100 existing vulnerabilities detected
Signed-Releases🟢 85 out of the last 5 releases have a total of 5 signed artifacts.
CI-Tests🟢 1030 out of 30 merged PRs checked by a CI test -- score normalized to 10
Contributors🟢 10project has 38 contributing companies or organizations
gomod/go.opentelemetry.io/otel/trace 1.40.0 🟢 9.3
Details
CheckScoreReason
Maintained🟢 1030 commit(s) and 9 issue activity found in the last 90 days -- score normalized to 10
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Dependency-Update-Tool🟢 10update tool detected
Code-Review🟢 10all changesets reviewed
Packaging⚠️ -1packaging workflow not detected
Token-Permissions🟢 10GitHub workflow tokens follow principle of least privilege
Binary-Artifacts🟢 10no binaries found in the repo
Pinned-Dependencies🟢 10all dependencies are pinned
CII-Best-Practices🟢 5badge detected: Passing
SAST🟢 9SAST tool detected but not run on all commits
Security-Policy🟢 10security policy file detected
License🟢 10license file detected
Branch-Protection🟢 5branch protection is not maximal on development and all release branches
Fuzzing🟢 10project is fuzzed
Vulnerabilities🟢 100 existing vulnerabilities detected
Signed-Releases🟢 85 out of the last 5 releases have a total of 5 signed artifacts.
CI-Tests🟢 1030 out of 30 merged PRs checked by a CI test -- score normalized to 10
Contributors🟢 10project has 38 contributing companies or organizations
gomod/golang.org/x/crypto 0.48.0 UnknownUnknown
gomod/golang.org/x/sys 0.41.0 UnknownUnknown
gomod/golang.org/x/term 0.40.0 UnknownUnknown
gomod/golang.org/x/text 0.34.0 UnknownUnknown
gomod/gopkg.in/ini.v1 1.67.1 UnknownUnknown

Scanned Files

  • .github/workflows/scorecard.yml
  • go.mod

github-actions[bot]
github-actions bot previously approved these changes Feb 15, 2026
Copy link
Copy Markdown

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated approval for solo maintainer project

All CI checks passed. See SECURITY.md for compensating controls.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the project’s Go toolchain and module dependencies to newer versions, aligning runtime/CI builds (which read Go version from go.mod) with the upgraded ecosystem.

Changes:

  • Bump go directive from 1.25.7 to 1.26.0.
  • Upgrade key direct dependencies (e.g., github.com/netresearch/go-cron, github.com/docker/cli, golang.org/x/*, logrus, validator).
  • Refresh go.sum to match the new resolved dependency graph (including updated indirect dependencies).

Reviewed changes

Copilot reviewed 1 out of 2 changed files in this pull request and generated no comments.

File Description
go.mod Updates Go version and bumps direct/indirect module requirements.
go.sum Updates module checksums to reflect the upgraded dependency set.

Run `go fix ./...` with Go 1.26's 22 built-in modernizers across 77
files. Key changes:
- interface{} → any (~260 occurrences)
- manual map copy → maps.Copy() (17)
- context.WithCancel(context.Background()) → t.Context() in tests (11)
- for i := 0; i < n; i++ → for i := range n (11)
- manual contains loops → slices.Contains() (9)
- reflect.TypeOf(x) → reflect.TypeFor[T]() (7)
- if/else capping → min()/max() builtins (4)
- HasPrefix+TrimPrefix → CutPrefix (3)
- range strings.Split() → range strings.SplitSeq() (3)
- wg.Add(1)/go/defer wg.Done() → wg.Go() (2)
- string concatenation → strings.Builder (1)
Convert all 7 errors.As calls to the type-safe generic
errors.AsType[T] added in Go 1.26, eliminating the need for
pre-declared target variables.
- Remove redundant loop variable copy (Go 1.22+)
- Remove blank line after wg.Go closure (gofumpt)
- Remove unused stringPtr helper (inlined by go fix)
github-actions[bot]
github-actions bot previously approved these changes Feb 15, 2026
Copy link
Copy Markdown

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated approval for solo maintainer project

All CI checks passed. See SECURITY.md for compensating controls.

@github-actions
Copy link
Copy Markdown

✅ Mutation Testing Results

Mutation Score: 77.78% (threshold: 60%)

✨ Good job! Mutation score meets the threshold.

What is mutation testing?

Mutation testing measures test quality by introducing small changes (mutations) to the code and checking if tests detect them. A higher score means better test effectiveness.

  • Killed mutants: Tests caught the mutation (good!)
  • Survived mutants: Tests missed the mutation (needs improvement)

golangci-lint v2.6.2 was built with Go 1.25 and rejects Go 1.26
targets. Update to v2.9.0 which has Go 1.26 support.

Also update dependency-review allow-licenses to handle compound SPDX
expressions (e.g. "Apache-2.0 AND BSD-3-Clause") now reported by
GitHub's dependency graph for OpenTelemetry and golang.org/x packages.
github-actions[bot]
github-actions bot previously approved these changes Feb 15, 2026
Copy link
Copy Markdown

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated approval for solo maintainer project

All CI checks passed. See SECURITY.md for compensating controls.

All call sites were already inlined to new(bool) by go fix.
The exported wrapper is no longer needed.
github-actions[bot]
github-actions bot previously approved these changes Feb 15, 2026
Copy link
Copy Markdown

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated approval for solo maintainer project

All CI checks passed. See SECURITY.md for compensating controls.

Revert allow-licenses from YAML >- multi-line format back to single
line — the block scalar folding broke the dependency-review-action's
comma-separated license parsing, rejecting even MIT and Apache-2.0.

Increase smoke test timeout from 30s to 60s — race detection overhead
caused TestSchedulerGracefulShutdown to time out on CI.
github-actions[bot]
github-actions bot previously approved these changes Feb 15, 2026
Copy link
Copy Markdown

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated approval for solo maintainer project

All CI checks passed. See SECURITY.md for compensating controls.

The dependency-review-action cannot match compound SPDX expressions
(e.g. "Apache-2.0 AND BSD-3-Clause") in allow-licenses — including
them corrupts the parser, rejecting ALL licenses including MIT.

Use allow-dependencies-licenses with purl format to whitelist the
specific packages GitHub reports with compound SPDX expressions
(OpenTelemetry, golang.org/x/*), and keep allow-licenses clean with
only simple SPDX identifiers.
github-actions[bot]
github-actions bot previously approved these changes Feb 15, 2026
Copy link
Copy Markdown

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated approval for solo maintainer project

All CI checks passed. See SECURITY.md for compensating controls.

CodeQL Action v3 will be deprecated in December 2026.
Update all 5 occurrences across ci.yml and scorecard.yml
from v3.31.9 to v4.32.3.
Copy link
Copy Markdown

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated approval for solo maintainer project

All CI checks passed. See SECURITY.md for compensating controls.

@CybotTM CybotTM added this pull request to the merge queue Feb 15, 2026
Merged via the queue into main with commit 9822f65 Feb 15, 2026
30 checks passed
@CybotTM CybotTM deleted the chore/upgrade-go-1.26 branch February 15, 2026 12:56
github-merge-queue bot pushed a commit that referenced this pull request Feb 15, 2026
## Summary

Modernizes the scheduler to adopt features added in go-cron v0.10.0 and
v0.11.0, which was upgraded as part of the Go 1.26 dependency bump
(#475).

### Changes

- **`WithCapacity(64)`** — pre-allocates cron scheduler internal
structures for ~12% scheduling performance improvement
- **`ValidateSpec`** — replaces hand-rolled regex-based cron validation
(~120 lines removed) with go-cron's parser, fixing false negatives
(month/day names, wraparound ranges) and false positives
- **`IsJobRunningByName`** — exposes job running status through the web
API (`running` field on job objects)
- **`WaitForJobByName`** — waits for in-flight executions before
removing jobs, eliminating races during shutdown and job replacement
- **`JobWithContext`** — implements `cron.JobWithContext` on
`jobWrapper` so per-entry context (canceled on entry removal) propagates
through the middleware chain
- **`UpsertJob`** — replaces fragile polling retry loop in `EnableJob`
with atomic create-or-update
- **`UpdateEntryJobByName`** — adds atomic schedule+job replacement used
by the web API's update handler

### Intentionally deferred

| Feature | Reason |
|---------|--------|
| `WithMissedPolicy` | Requires persistent last-run times (ofelia is
stateless) |
| `RetryOnError` | Ofelia's `RetryExecutor` is deeply integrated with
middleware, metrics, and per-job config |

## Test plan

- [x] All existing tests pass (`go test ./...`)
- [x] `golangci-lint run` clean (0 issues)
- [x] `go vet ./...` clean
- [x] CI pipeline passes
github-merge-queue bot pushed a commit that referenced this pull request Feb 15, 2026
## Summary

Modernize dependency usage following the Go 1.26 and dependency upgrades
in #475:

- **go-flags v1.6**: Use `WroteHelp()` helper, `AllowBoolValues` parser
option, and `description:` tags for CLI help output
- **Docker API**: Remove deprecated fields (`KernelMemory`,
`BridgeNfIptables`, `BridgeNfIP6tables`) dropped in API v1.42+
- **mapstructure**: Migrate from archived `mitchellh/mapstructure` to
maintained `go-viper/mapstructure` v1.6.0 fork via `replace` directive
- **Label decoding**: Unify Docker label and INI config decoding paths
to use consistent case-insensitive matching with unknown key detection
- **go-dockerclient**: Remove legacy `fsouza/go-dockerclient` dependency
— rewrite benchmarks to use the official Docker SDK already used
everywhere else

## Commits

1. `refactor: adopt go-flags v1.6 features` — `WroteHelp()`,
`AllowBoolValues`, `description:` tags, `default-mask:"-"` for secrets
2. `refactor: remove deprecated Docker API fields` — drop 3 fields
removed from Docker API v1.42+
3. `chore(deps): migrate mapstructure to go-viper fork` — drop-in
`replace` directive, API-compatible
4. `refactor: unify Docker label decoding` — consistent decoding options
between label and INI paths, unknown key warnings
5. `refactor: remove go-dockerclient dependency` — rewrite benchmarks to
official SDK, remove transitive deps

## Test plan

- [x] `go test -count=1 -timeout=60s ./...` — all packages pass
- [x] `golangci-lint run --timeout=3m ./...` — 0 issues
- [x] `go build ./...` — compiles cleanly
- [x] `go vet ./...` — no issues
- [ ] CI workflow passes
@github-actions github-actions bot added the released:v0.20.0 Included in v0.20.0 release label Feb 17, 2026
@github-actions
Copy link
Copy Markdown

🚀 Released in v0.20.0

Thank you for your contribution! 🙏

This is now available in the latest release. Please test and verify everything works as expected in your environment.

If you encounter any issues, please open a new issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

released:v0.20.0 Included in v0.20.0 release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants