From 9051c20208da46e153a13c29749229de90b42db8 Mon Sep 17 00:00:00 2001 From: Chris Burns <29541485+ChrisJBurns@users.noreply.github.com> Date: Tue, 21 Apr 2026 20:54:41 +0100 Subject: [PATCH] =?UTF-8?q?TEST:=20rename=20mcpgroups.spec.description=20?= =?UTF-8?q?=E2=86=92=20summary=20(do=20not=20merge)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Deliberate breaking change to validate that the api-compat workflow from #4980 (as repaired in #4987) flags a JSON tag rename as NoFieldRemoval against the last release tag. The Go field name is kept as Description to avoid cascading into the 20+ test files that reference it. Only the JSON tag moves from "description" to "summary", which is how the CRD schema change propagates end-to-end via controller-gen. Expected outcome: - api-compat CRD Schema Compatibility check runs against v0.23.1. - Step log + summary contain two NoFieldRemoval errors, one for v1alpha1 and one for v1beta1 of mcpgroups. - Step exits non-zero; Phase 1 continue-on-error keeps the PR's overall status passing. DO NOT MERGE. Close once the check has been demonstrated. Co-Authored-By: Claude Opus 4.7 (1M context) --- cmd/thv-operator/api/v1beta1/mcpgroup_types.go | 8 ++++++-- .../crds/toolhive.stacklok.dev_mcpgroups.yaml | 18 ++++++++++++++---- .../toolhive.stacklok.dev_mcpgroups.yaml | 18 ++++++++++++++---- 3 files changed, 34 insertions(+), 10 deletions(-) diff --git a/cmd/thv-operator/api/v1beta1/mcpgroup_types.go b/cmd/thv-operator/api/v1beta1/mcpgroup_types.go index a151448943..96436f336d 100644 --- a/cmd/thv-operator/api/v1beta1/mcpgroup_types.go +++ b/cmd/thv-operator/api/v1beta1/mcpgroup_types.go @@ -9,9 +9,13 @@ import ( // MCPGroupSpec defines the desired state of MCPGroup type MCPGroupSpec struct { - // Description provides human-readable context + // Description provides human-readable context. + // TEST: JSON tag deliberately renamed from "description" to "summary" to + // validate that the api-compat.yml workflow flags the field rename as a + // breaking change. Go field name is kept so existing callers still + // compile. Do NOT merge this PR. // +optional - Description string `json:"description,omitempty"` + Description string `json:"summary,omitempty"` } // MCPGroupStatus defines observed state diff --git a/deploy/charts/operator-crds/files/crds/toolhive.stacklok.dev_mcpgroups.yaml b/deploy/charts/operator-crds/files/crds/toolhive.stacklok.dev_mcpgroups.yaml index 4270eb0334..4da97b1971 100644 --- a/deploy/charts/operator-crds/files/crds/toolhive.stacklok.dev_mcpgroups.yaml +++ b/deploy/charts/operator-crds/files/crds/toolhive.stacklok.dev_mcpgroups.yaml @@ -59,8 +59,13 @@ spec: spec: description: MCPGroupSpec defines the desired state of MCPGroup properties: - description: - description: Description provides human-readable context + summary: + description: |- + Description provides human-readable context. + TEST: JSON tag deliberately renamed from "description" to "summary" to + validate that the api-compat.yml workflow flags the field rename as a + breaking change. Go field name is kept so existing callers still + compile. Do NOT merge this PR. type: string type: object status: @@ -213,8 +218,13 @@ spec: spec: description: MCPGroupSpec defines the desired state of MCPGroup properties: - description: - description: Description provides human-readable context + summary: + description: |- + Description provides human-readable context. + TEST: JSON tag deliberately renamed from "description" to "summary" to + validate that the api-compat.yml workflow flags the field rename as a + breaking change. Go field name is kept so existing callers still + compile. Do NOT merge this PR. type: string type: object status: diff --git a/deploy/charts/operator-crds/templates/toolhive.stacklok.dev_mcpgroups.yaml b/deploy/charts/operator-crds/templates/toolhive.stacklok.dev_mcpgroups.yaml index 5a072011b2..fe56938d13 100644 --- a/deploy/charts/operator-crds/templates/toolhive.stacklok.dev_mcpgroups.yaml +++ b/deploy/charts/operator-crds/templates/toolhive.stacklok.dev_mcpgroups.yaml @@ -62,8 +62,13 @@ spec: spec: description: MCPGroupSpec defines the desired state of MCPGroup properties: - description: - description: Description provides human-readable context + summary: + description: |- + Description provides human-readable context. + TEST: JSON tag deliberately renamed from "description" to "summary" to + validate that the api-compat.yml workflow flags the field rename as a + breaking change. Go field name is kept so existing callers still + compile. Do NOT merge this PR. type: string type: object status: @@ -216,8 +221,13 @@ spec: spec: description: MCPGroupSpec defines the desired state of MCPGroup properties: - description: - description: Description provides human-readable context + summary: + description: |- + Description provides human-readable context. + TEST: JSON tag deliberately renamed from "description" to "summary" to + validate that the api-compat.yml workflow flags the field rename as a + breaking change. Go field name is kept so existing callers still + compile. Do NOT merge this PR. type: string type: object status: