#1146429 ITP: golang-k8s-sigs-structured-merge-diff-v6 -- Kubernetes server-side apply operation

#1146429#5
Date:
2026-09-01 19:36:26 UTC
From:
To:
* Package name    : golang-k8s-sigs-structured-merge-diff-v6
  Version         : 6.4.2-1
  Upstream Author : The Kubernetes Authors
* URL             : https://github.com/kubernetes-sigs/structured-merge-diff
* License         : Apache-2.0
  Programming Lang: Go
  Description     : Kubernetes server-side apply operation

 This library implements the Kubernetes "apply" operation, the mechanism
 behind server-side apply. It models resources in a control plane as
 having multiple "managers", where each manager typically owns only one
 aspect of a resource. This lets both humans and machines (controllers)
 make the changes they need without clobbering fields owned by other
 managers. The set of fields each manager currently owns is tracked
 explicitly using a fieldset data structure.
 .
 Objects can be modified through two mechanisms. A PUT or PATCH request
 makes the object look exactly like the supplied version, and the managed
 fields are deduced from what changes. An APPLY request instead declares
 the fields a manager wants to own, requesting deletion of any fields it
 previously managed but no longer mentions. When one manager starts
 managing a field owned by another, an APPLY reports a conflict and stops
 unless the "force" option is given, preventing accidental takeover of
 fields owned by other entities. PUT and PATCH always force and are used
 mostly by automated systems.
 .
 The package is organised into several building blocks: a targeted schema
 type (simpler than OpenAPI), a fieldpath package providing an efficient
 Trie-based field-set structure, a value type storing arbitrary objects, a
 typed package that combines values and schemas to validate and compare
 objects, and a merge package that ties everything together to implement
 the apply operation.
 .
 This is version 6 of the module sigs.k8s.io/structured-merge-diff.
 .
 Upstream sigs.k8s.io/structured-merge-diff changed its module path from
 sigs.k8s.io/structured-merge-diff to sigs.k8s.io/structured-merge-diff/v6
 as part of a Go semantic-import-versioning bump.
 .
 Reverse dependencies still import the old /v4 paths, so they fail to build
 against the new upstream, and a v4 -> v6 compatibility symlink is insufficient
 because it only bridges the import path, not the genuine API differences
 between v4 and v6 that some revdeps hit.
 .
 Rather than bumping the existing golang-k8s-sigs-structured-merge-diff (v4)
 source package in place, v6 is therefore packaged as a separate source package
 shipping the /v6 import path, letting both major versions coexist in the
 archive during the transition
 .
 See the debian-go discussion:
   - https://lists.debian.org/debian-go/2026/08/msg00202.html
   - https://lists.debian.org/debian-go/2026/09/msg00000.html

#1146429#10
Date:
2026-09-01 20:44:31 UTC
From:
To:
Hi all,

Following up on the earlier thread about the
sigs.k8s.io/structured-merge-diff module-path bump [1][2], here's where
things stand.

As discussed, I went with packaging /v6 as a separate source package so
it can coexist with the existing v4 package during the transition,
rather than bumping v4 in place.

What I've done so far:

1. Filed the ITP for the new package:
   - https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1146429

2. Created the packaging repository under the go-team Salsa group (via
flight-deck):
   - flight-deck MR:
https://salsa.debian.org/go-team/flight-deck/-/merge_requests/111
   - Repository:

https://salsa.debian.org/go-team/packages/golang-k8s-sigs-structured-merge-diff-v6

3. Opened an MR against that repository with the initial packaging
(6.4.2-1).
    The rationale for the separate source package is recorded in
    debian/README.source.

Before I upload to NEW, I'd appreciate a review from the team, just to
get another pair of eyes on the changes.

If someone has a moment to look over the initial-packaging MR, I'll
incorporate any feedback and then proceed with the upload.

https://salsa.debian.org/go-team/packages/golang-k8s-sigs-structured-merge-diff-v6/-/merge_requests/1

Thanks,
Arthur Diniz

[1] https://lists.debian.org/debian-go/2026/08/msg00202.html
[2] https://lists.debian.org/debian-go/2026/09/msg00000.html

#1146429#15
Date:
2026-09-02 12:33:00 UTC
From:
To:
Adding the following extra information to this ITP.

Why a separate -v6 source package
==================================

Upstream sigs.k8s.io/structured-merge-diff changed its module path as part
of a Go semantic-import-versioning bump:

     old: sigs.k8s.io/structured-merge-diff
     new: sigs.k8s.io/structured-merge-diff/v6

Reverse dependencies still import the old /v4 paths (e.g. .../v4/value,
.../v4/schema, .../v4/fieldpath), so they fail to build against the new
upstream. A v4 -> v6 compatibility symlink was tried but is insufficient:
a symlink only bridges the import path, not the genuine API differences
between v4 and v6 that some revdeps hit.

Rather than bumping the existing golang-k8s-sigs-structured-merge-diff (v4)
source package in place, v6 is packaged as a separate source package
shipping
the /v6 import path. This lets both major versions coexist in the archive
during the transition.

See the debian-go discussion:
https://lists.debian.org/debian-go/2026/08/msg00202.html
https://lists.debian.org/debian-go/2026/09/msg00000.html

#1146429#20
Date:
2026-09-02 19:10:02 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
golang-k8s-sigs-structured-merge-diff-v6, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1146429@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Arthur Diniz <arthurbd@debian.org> (supplier of updated golang-k8s-sigs-structured-merge-diff-v6 package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Wed, 02 Sep 2026 16:27:00 +0100
Source: golang-k8s-sigs-structured-merge-diff-v6
Binary: golang-k8s-sigs-structured-merge-diff-v6-dev
Architecture: source all
Version: 6.4.2-1
Distribution: unstable
Urgency: medium
Maintainer: Debian Go Packaging Team <team+pkg-go@tracker.debian.org>
Changed-By: Arthur Diniz <arthurbd@debian.org>
Description:
 golang-k8s-sigs-structured-merge-diff-v6-dev - Kubernetes server-side apply operation (library)
Closes: 1146429
Changes:
 golang-k8s-sigs-structured-merge-diff-v6 (6.4.2-1) unstable; urgency=medium
 .
   * Initial release (Closes: #1146429)
     - Introduce as a separate source package shipping the /v6 import path so
       it can coexist with the v4 source package during the transition.
Checksums-Sha1:
 f8027afe478c6bd3cce0f3f243d66e7e9d441e4a 2586 golang-k8s-sigs-structured-merge-diff-v6_6.4.2-1.dsc
 f5c4f60c9469e8f0151379818f9a09908ae2cac8 265879 golang-k8s-sigs-structured-merge-diff-v6_6.4.2.orig.tar.gz
 a1a483731d675f54916a8d95807ba0edf7357ec2 3732 golang-k8s-sigs-structured-merge-diff-v6_6.4.2-1.debian.tar.xz
 3b67102d2b8e46085dc4ee42f2edb360abf7db6c 164116 golang-k8s-sigs-structured-merge-diff-v6-dev_6.4.2-1_all.deb
 918c07e77bf299a73f1aa61652a7e4123164cb5d 6254 golang-k8s-sigs-structured-merge-diff-v6_6.4.2-1_amd64.buildinfo
Checksums-Sha256:
 c2c374f97004ef15e96dbf94986dd9da27a402063583aac9336bfa43e4b50e52 2586 golang-k8s-sigs-structured-merge-diff-v6_6.4.2-1.dsc
 fe1938762532c5f84d0b78157f4311958770aee02f54e4bbf25bb32401033ca2 265879 golang-k8s-sigs-structured-merge-diff-v6_6.4.2.orig.tar.gz
 34fa0fa76f0d2121b8de379dd9476f0c6b3fc9031c272df439aa9eddcfc665f5 3732 golang-k8s-sigs-structured-merge-diff-v6_6.4.2-1.debian.tar.xz
 f361aa88be07bd6b04349e85d51d140114bfd628f9c993f657542d223adf21fc 164116 golang-k8s-sigs-structured-merge-diff-v6-dev_6.4.2-1_all.deb
 b8372a59669df1efc030af841600ac6f7c05cdf39fc3327de18ef1e542ab0a83 6254 golang-k8s-sigs-structured-merge-diff-v6_6.4.2-1_amd64.buildinfo
Files:
 4823d79a6057b37657f36ba32f177624 2586 golang optional golang-k8s-sigs-structured-merge-diff-v6_6.4.2-1.dsc
 d51b7bb5a785adeed80d84f04b9c4455 265879 golang optional golang-k8s-sigs-structured-merge-diff-v6_6.4.2.orig.tar.gz
 f7a20ad29ed0eb246aa5dff2de0886cd 3732 golang optional golang-k8s-sigs-structured-merge-diff-v6_6.4.2-1.debian.tar.xz
 ab68353296f0daac9f58d409d1c3b698 164116 golang optional golang-k8s-sigs-structured-merge-diff-v6-dev_6.4.2-1_all.deb
 7f845a2f1dd78b0a5205a15e2ae49c71 6254 golang optional golang-k8s-sigs-structured-merge-diff-v6_6.4.2-1_amd64.buildinfo
-----BEGIN PGP SIGNATURE-----

iQJIBAEBCgAyFiEECOt4p/pKieBdXIaey86ybZa5jLsFAmqYSW8UHGFydGh1cmJk
QGRlYmlhbi5vcmcACgkQy86ybZa5jLvN3A/9FdpP8ystcSglAEbdrzxONuGsVXNI
duSR3mOflwhpK6iR6VoPNHRYHhrRE7a1CmWwgF245uCCW6r7/fytzT9AsneJ5xVx
pw1PKXvQLT7MPADQp33BBoz6uwWGDDW6izqd8dKlJRKFyKPAUEZlfoDNFL4eJE/S
gMIqguDXR+2NIZrgyypdDLAUJSVQyuWCBWO0CK/20nxqIaiQNhhNv0kYMyssQdFh
kwh+F3ngQ+DZxZ0+O45Rt5XIF3g5j3bPk6o5tfSY7OjvytLI37tokxYtoX7NI3f1
ZHUJhnWD/cBPrLomoBeXmVPPQsY5m3kMWFm2m0TOok11FrcyKIUJKOIQlcUMghCp
I6Ec/FDkMQzOZFb62a36RrVpYZ243WjKgCSqxOcdjSvSE+THf9R4bL9Y0N5WXaY2
QjWNHN+XxZzEF8S5CkW3kHOJHnRHhV3bliS0dB9nqJKUDXoiue2zNeYbI+j6lrz2
uEO3M17L+lUH74SgPXbnF6kDFl1RxK0G+2YYzHkwaA8oNdwOxVA0ipE5Fq3apfG/
VJ04UrNPZ3qUZxHJCRKUzLHep3Ry8BpJlnFkTzomMNWPZeLAxeKorkT+m8fMvu9p
ou9aLMhJc6TiETORo9nJQwcqAYYKmW+od8wni6gjwlg4PxZauljFp898BpXAQe5x
LiRLZ5dgmLG5yiY=
=UvmD
-----END PGP SIGNATURE-----