Skip to content

feat(config): freeze config v14 and start v15 as latest#3807

Merged
dgageot merged 1 commit into
docker:mainfrom
dgageot:freeze-config-v14
Jul 23, 2026
Merged

feat(config): freeze config v14 and start v15 as latest#3807
dgageot merged 1 commit into
docker:mainfrom
dgageot:freeze-config-v14

Conversation

@dgageot

@dgageot dgageot commented Jul 23, 2026

Copy link
Copy Markdown
Member

The config versioning scheme requires that each stable schema be frozen as an immutable numbered package before work-in-progress changes accumulate on latest. This PR performs that freeze step for version 14.

pkg/config/latest is copied verbatim into pkg/config/v14 with the package name updated accordingly. The latest package then advances to version 15: its Version constant is bumped, its internal import of the previous version now points at v14, and pkg/config/versions.go registers the new package so the auto-loader can decode configs that declare version: 14. agent-schema.json is updated in parallel — the description string references v15, and "14" is added to the version enum and examples.

No behaviour changes for existing configs. Agents already on v14 will continue to load correctly via the frozen package; agents on any earlier version are unaffected.

@dgageot
dgageot requested a review from a team as a code owner July 23, 2026 14:56
@aheritier aheritier added area/config For configuration parsing, YAML, environment variables kind/feat PR adds a new feature (maps to feat:). Use on PRs only. labels Jul 23, 2026

@docker-agent docker-agent left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Assessment: 🟢 APPROVE

This PR correctly freezes config v14 and advances latest to v15. The new pkg/config/v14/ package has the correct package v14 declaration, and all logic in the added files is a faithful copy of the prior latest state with no behavioral changes introduced.

@docker-agent docker-agent left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Assessment: 🟢 APPROVE

This PR correctly performs the config version 14 freeze and advances latest to version 15.

All key invariants verified:

  • pkg/config/v14/ declares package v14 throughout ✓
  • pkg/config/v14/types.go sets Version = "14"
  • pkg/config/latest/types.go bumps to Version = "15"
  • pkg/config/latest/parse.go imports previous "github.com/docker/docker-agent/pkg/config/v14"
  • pkg/config/v14/parse.go imports previous "github.com/docker/docker-agent/pkg/config/v13"
  • pkg/config/versions.go registers v14.Register(parsers, &upgraders)
  • agent-schema.json updated: description → v15, "14" and "15" added to both enum and examples ✓

No new logic introduced — the v14 package is a verbatim copy of the previous latest with the package name updated. No bugs, regressions, or security issues identified.

@dgageot
dgageot merged commit 801eae4 into docker:main Jul 23, 2026
10 of 11 checks passed
pull Bot pushed a commit to TheTechOddBug/cagent that referenced this pull request Jul 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/config For configuration parsing, YAML, environment variables kind/feat PR adds a new feature (maps to feat:). Use on PRs only.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants