1.6 KiB
kustomize 3.0.0
This release is basically v2.1.0, with some
post-v2.1.0 bugs fixed and a v3 in Go package
paths.
The major version increment to v3 begins a new API
that puts plugin developers (both Go plugin
developers and exec plugin developers who happen to
use Go) on a solid footing through the coming
series of minor releases and patches.
Go Module implications
Per the Go modules doc, a release that's already tagged v2 or higher should increment the major version when performing their first Go module-based release.
This advice applies to kustomize, since it was already at major version 2 when switching to Go modules.
The other reason for v3 is that the go tool
assumes Go modules obey semantic versioning, which
means packages used in v2.1 should have the same
API as packages in v2.0.
This is not the case in kustomize. Historically, kustomize's versioning policy has only addressed the command line tool's behavior and the fields in a kustomization file. The underlying packages were an implementation detail, avaiable for use at the author's risk.
With the introduction of plugins, the packages -
in particular loader and resmap - become part
of an API formally exposed to plugin authors, so
the API changes must be respected.
Over time, informed by package use, the API surface should shrink, but such shrinkage will require a major version increment.