Files
kustomize/docs/v3.0.0.md
2019-06-24 16:17:36 -07:00

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.