Change:
Smoke tests run by publishing-bot on client-go master are failing Ref for failure logs: Tests defined for client-go, after publishing, Since commit No response As part of , when module is used from within the staging directory, can be used by traversing to the parent directory. But once the module is made as a separate repository as part of publishing, then traversing to repository using path will not work. No response /sig-api-machinery
/sig api-machinery
The label(s) cannot be applied, because the repository doesn't have them. <detailsIn response to : /sig api-machinery Instructions for interacting with me using PR comments are available . If you have questions or suggestions related to my behavior, please file an issue against the repository. </details
Looking
I'll remove the swagger file dependency, I don't think we strictly need it.
/triage accepted

Discussion:
package testing import ( <del> "encoding/json" </del> "fmt" "math/rand" <del> "os" "path/filepath" </del> <ins> "sigs.k8s.io/structured-merge-diff/v4/typed" </ins> "strconv" <del> "strings" </del> "sync" "testing"

"k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/managedfields" "k8s.io/apimachinery/pkg/watch" <del> "k8s.io/kube-openapi/pkg/validation/spec" </del> "k8s.io/utils/ptr" )

scheme := runtime.NewScheme() scheme.AddKnownTypes(cmResource.GroupVersion(), &v1.ConfigMap{}) codecs := serializer.NewCodecFactory(scheme) <del> o := NewFieldManagedObjectTracker(scheme, codecs.UniversalDecoder(), fakeTypeConverter) </del> <ins> o := NewFieldManagedObjectTracker(scheme, codecs.UniversalDecoder(), configMapTypeConverter(scheme)) </ins> reaction := ObjectReaction(o) patch := []byte(`{"apiVersion": "v1", "kind": "ConfigMap", "metadata": {"name": "cm-1"}, "data": {"k": "v"}}`)

scheme := runtime.NewScheme() scheme.AddKnownTypes(cmResource.GroupVersion(), &v1.ConfigMap{}) codecs := serializer.NewCodecFactory(scheme) <del> o := NewFieldManagedObjectTracker(scheme, codecs.UniversalDecoder(), fakeTypeConverter) </del> <ins> o := NewFieldManagedObjectTracker(scheme, codecs.UniversalDecoder(), configMapTypeConverter(scheme)) </ins> reaction := ObjectReaction(o) action := NewCreateAction(cmResource, "default", &v1.ConfigMap{

} } <del> var fakeTypeConverter = func() managedfields.TypeConverter { data, err := os.ReadFile(filepath.Join(strings.Repeat(".."+string(filepath.Separator), 5), "api", "openapi-spec", "swagger.json")) </del> <ins> func configMapTypeConverter(scheme *runtime.Scheme) managedfields.TypeConverter { parser, err := typed.NewParser(configMapTypedSchema) </ins> if err != nil { <del> panic(err) </del> <ins> panic(fmt.Sprintf("Failed to parse schema: %v", err)) </ins> } <del> swag := spec.Swagger{} if err := json.Unmarshal(data, &swag); err != nil { panic(err) } convertedDefs := map[string]*spec.Schema{} for k, v := range swag.Definitions { vCopy := v convertedDefs[k] = &vCopy } typeConverter, err := managedfields.NewTypeConverter(convertedDefs, false) if err != nil { panic(err) } return typeConverter }() </del> <ins> return TypeConverter{Scheme: scheme, TypeResolver: parser} } var configMapTypedSchema = typed.YAMLObject(`types: - name: io.k8s.api.core.v1.ConfigMap map: fields: - name: apiVersion type: scalar: string - name: data type: map: elementType: scalar: string - name: kind type: scalar: string - name: metadata type: namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta default: {} - name: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta map: fields: - name: creationTimestamp type: namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time - name: managedFields type: list: elementType: namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry elementRelationship: atomic - name: name type: scalar: string - name: namespace type: scalar: string - name: io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry map: fields: - name: apiVersion type: scalar: string - name: fieldsType type: scalar: string - name: fieldsV1 type: namedType: io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1 - name: manager type: scalar: string - name: operation type: scalar: string - name: subresource type: scalar: string - name: time type: namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time - name: io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1 map: elementType: scalar: untyped list: elementType: namedType: __untyped_atomic_ elementRelationship: atomic map: elementType: namedType: __untyped_deduced_ elementRelationship: separable - name: io.k8s.apimachinery.pkg.apis.meta.v1.Time scalar: untyped - name: __untyped_deduced_ scalar: untyped list: elementType: namedType: __untyped_atomic_ elementRelationship: atomic map: elementType: namedType: __untyped_deduced_ elementRelationship: separable `) </ins>