kubernetes-sigs / structured-merge-diff

Test cases and implementation for "server-side apply"
Apache License 2.0
106 stars 63 forks source link

vendor\k8s.io\apimachinery\pkg\util\managedfields\internal\structuredmerge.go:73:4: unknown field IgnoredFields in struct literal of type merge.Updater #268

Open anyone0034 opened 2 weeks ago

anyone0034 commented 2 weeks ago

image

IgnoredFields is miss,how to resolve

jvilhuber commented 2 weeks ago

@jpbetz It appears that https://github.com/kubernetes-sigs/structured-merge-diff/commit/c68c9ee5bc5f9b73b5785e38a6a28a6c5b654572 introduced a backward-incompatible change, removing IgnoredFields and adding IgnoredFilter in its stead:

    // IgnoreFilter filters out ignored fields from a fieldpath.Set.
    IgnoreFilter map[fieldpath.APIVersion]fieldpath.Filter

This is impacting a few downstream projects/dependencies. For me it's apimachinery:

# k8s.io/apimachinery/pkg/util/managedfields/internal
../../../../../go/pkg/mod/k8s.io/apimachinery@v0.31.2/pkg/util/managedfields/internal/structuredmerge.go:56:4: unknown field IgnoredFields in struct literal of type merge.Updater
../../../../../go/pkg/mod/k8s.io/apimachinery@v0.31.2/pkg/util/managedfields/internal/structuredmerge.go:73:4: unknown field IgnoredFields in struct literal of type merge.Updater

I'd recommend adding back the old field in some backwards compatible way. A breaking change should be done via a major version bump, not in a minor bump.

jvilhuber commented 2 weeks ago

I do see it's fixed in k8s.io/apimachinery, but there's no release of it yet (v0.32.0 hasn't been released yet)