From a0c6e7cec74840deda5d09ea0f2c26967993854f Mon Sep 17 00:00:00 2001
From: Brendan Burns <5751682+brendandburns@users.noreply.github.com>
Date: Wed, 1 Jul 2026 21:31:29 +0000
Subject: [PATCH] Add a script to easily update the version of all modules in
the project. Update to 28.0.0-SNAPSHOT in all modules.
---
README.md | 14 +++++++
client-java-contrib/admissionreview/pom.xml | 4 +-
client-java-contrib/cert-manager/pom.xml | 4 +-
.../prometheus-operator/pom.xml | 4 +-
e2e/pom.xml | 2 +-
examples/examples-release-latest/pom.xml | 2 +-
examples/pom.xml | 4 +-
extended/pom.xml | 2 +-
fluent-gen/pom.xml | 2 +-
fluent/pom.xml | 2 +-
kubernetes/pom.xml | 2 +-
pom.xml | 2 +-
proto/pom.xml | 2 +-
scripts/update-version.sh | 37 +++++++++++++++++++
spring-aot/pom.xml | 2 +-
spring/pom.xml | 2 +-
util/pom.xml | 2 +-
17 files changed, 70 insertions(+), 19 deletions(-)
create mode 100755 scripts/update-version.sh
diff --git a/README.md b/README.md
index bfa21d7b1d..4bb7f5861f 100644
--- a/README.md
+++ b/README.md
@@ -29,6 +29,20 @@ preferring the old SDK interface, a legacy SDK module version is available with
- [Known Issues](https://github.com/kubernetes-client/java/wiki/6.-Known-Issues)
- [Troubleshooting/FAQ](https://github.com/kubernetes-client/java/wiki/7.-FAQ)
+To update the Maven project version across all `pom.xml` files, including the
+optional `fluent-gen` module, run:
+
+```
+./scripts/update-version.sh 28.0.0-SNAPSHOT
+```
+
+The helper delegates to the Maven Versions Plugin, so the equivalent Maven
+command is:
+
+```
+./mvnw -Pfluent-gen versions:set -DnewVersion=28.0.0-SNAPSHOT -DprocessAllModules=true -DgenerateBackupPoms=false
+```
+
## Support
If you need support, start with checking whether you're hitting known issues. If that doesn't work, please [open an issue](https://github.com/kubernetes-client/java/issues/new)
diff --git a/client-java-contrib/admissionreview/pom.xml b/client-java-contrib/admissionreview/pom.xml
index 151be7aa5f..9e7f6a54b7 100644
--- a/client-java-contrib/admissionreview/pom.xml
+++ b/client-java-contrib/admissionreview/pom.xml
@@ -6,10 +6,10 @@
io.kubernetes
client-java-parent
- 27.0.0-SNAPSHOT
+ 28.0.0-SNAPSHOT
../../pom.xml
- 27.0.0-SNAPSHOT
+ 28.0.0-SNAPSHOT
diff --git a/client-java-contrib/cert-manager/pom.xml b/client-java-contrib/cert-manager/pom.xml
index b37c24a93e..d9c747ef21 100644
--- a/client-java-contrib/cert-manager/pom.xml
+++ b/client-java-contrib/cert-manager/pom.xml
@@ -6,11 +6,11 @@
io.kubernetes
client-java-parent
- 27.0.0-SNAPSHOT
+ 28.0.0-SNAPSHOT
../../pom.xml
- 27.0.0-SNAPSHOT
+ 28.0.0-SNAPSHOT
io.kubernetes
diff --git a/client-java-contrib/prometheus-operator/pom.xml b/client-java-contrib/prometheus-operator/pom.xml
index 3aac8a8131..9f9e1383f4 100644
--- a/client-java-contrib/prometheus-operator/pom.xml
+++ b/client-java-contrib/prometheus-operator/pom.xml
@@ -3,14 +3,14 @@
client-java-parent
io.kubernetes
- 27.0.0-SNAPSHOT
+ 28.0.0-SNAPSHOT
../../pom.xml
4.0.0
prometheus-operator-models
client-java-prometheus-operator-models
- 27.0.0-SNAPSHOT
+ 28.0.0-SNAPSHOT
jakarta.annotation
diff --git a/e2e/pom.xml b/e2e/pom.xml
index 3def901bd6..e4b3af00bd 100644
--- a/e2e/pom.xml
+++ b/e2e/pom.xml
@@ -9,7 +9,7 @@
client-java-parent
io.kubernetes
- 27.0.0-SNAPSHOT
+ 28.0.0-SNAPSHOT
../pom.xml
diff --git a/examples/examples-release-latest/pom.xml b/examples/examples-release-latest/pom.xml
index 20d487149f..7697781c81 100644
--- a/examples/examples-release-latest/pom.xml
+++ b/examples/examples-release-latest/pom.xml
@@ -4,7 +4,7 @@
io.kubernetes
client-java-examples-parent
- 27.0.0-SNAPSHOT
+ 28.0.0-SNAPSHOT
..
diff --git a/examples/pom.xml b/examples/pom.xml
index f3027125cc..1922b19fec 100644
--- a/examples/pom.xml
+++ b/examples/pom.xml
@@ -4,11 +4,11 @@
io.kubernetes
client-java-parent
- 27.0.0-SNAPSHOT
+ 28.0.0-SNAPSHOT
../pom.xml
- 27.0.0-SNAPSHOT
+ 28.0.0-SNAPSHOT
client-java-examples-parent
pom
diff --git a/extended/pom.xml b/extended/pom.xml
index 6d294a4194..ace7b5cce9 100644
--- a/extended/pom.xml
+++ b/extended/pom.xml
@@ -9,7 +9,7 @@
client-java-parent
io.kubernetes
- 27.0.0-SNAPSHOT
+ 28.0.0-SNAPSHOT
../pom.xml
diff --git a/fluent-gen/pom.xml b/fluent-gen/pom.xml
index 5d21607366..161be7f984 100644
--- a/fluent-gen/pom.xml
+++ b/fluent-gen/pom.xml
@@ -9,7 +9,7 @@
io.kubernetes
client-java-parent
- 27.0.0-SNAPSHOT
+ 28.0.0-SNAPSHOT
../pom.xml
diff --git a/fluent/pom.xml b/fluent/pom.xml
index f7831027f5..ea17cd502f 100644
--- a/fluent/pom.xml
+++ b/fluent/pom.xml
@@ -7,7 +7,7 @@
io.kubernetes
client-java-parent
- 27.0.0-SNAPSHOT
+ 28.0.0-SNAPSHOT
../pom.xml
diff --git a/kubernetes/pom.xml b/kubernetes/pom.xml
index 4bdd6b9cf1..f250f2ce1a 100644
--- a/kubernetes/pom.xml
+++ b/kubernetes/pom.xml
@@ -9,7 +9,7 @@
io.kubernetes
client-java-parent
- 27.0.0-SNAPSHOT
+ 28.0.0-SNAPSHOT
../pom.xml
diff --git a/pom.xml b/pom.xml
index 98a8883287..9ce2ecd11d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -2,7 +2,7 @@
4.0.0
client-java-parent
io.kubernetes
- 27.0.0-SNAPSHOT
+ 28.0.0-SNAPSHOT
pom
Kubernetes Client API
https://github.com/kubernetes-client/java
diff --git a/proto/pom.xml b/proto/pom.xml
index ba402dccfd..9dce301cef 100644
--- a/proto/pom.xml
+++ b/proto/pom.xml
@@ -8,7 +8,7 @@
io.kubernetes
client-java-parent
- 27.0.0-SNAPSHOT
+ 28.0.0-SNAPSHOT
../pom.xml
diff --git a/scripts/update-version.sh b/scripts/update-version.sh
new file mode 100755
index 0000000000..73ddd736ec
--- /dev/null
+++ b/scripts/update-version.sh
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+# Copyright 2026 The Kubernetes Authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -o errexit
+set -o nounset
+set -o pipefail
+
+if [[ $# -ne 1 ]]; then
+ echo "Usage: $0 " >&2
+ echo "Example: $0 28.0.0-SNAPSHOT" >&2
+ exit 1
+fi
+
+SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+REPO_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)"
+NEW_VERSION="$1"
+
+cd "${REPO_ROOT}"
+
+./mvnw -Pfluent-gen \
+ versions:set \
+ -DnewVersion="${NEW_VERSION}" \
+ -DprocessAllModules=true \
+ -DgenerateBackupPoms=false
\ No newline at end of file
diff --git a/spring-aot/pom.xml b/spring-aot/pom.xml
index 0ed5d2c0d1..5d4a026254 100644
--- a/spring-aot/pom.xml
+++ b/spring-aot/pom.xml
@@ -8,7 +8,7 @@
client-java-parent
io.kubernetes
- 27.0.0-SNAPSHOT
+ 28.0.0-SNAPSHOT
../pom.xml
diff --git a/spring/pom.xml b/spring/pom.xml
index 535935b0bf..700ac4689d 100644
--- a/spring/pom.xml
+++ b/spring/pom.xml
@@ -9,7 +9,7 @@
client-java-parent
io.kubernetes
- 27.0.0-SNAPSHOT
+ 28.0.0-SNAPSHOT
../pom.xml
diff --git a/util/pom.xml b/util/pom.xml
index 2cef7113e0..5e1f5f7f09 100644
--- a/util/pom.xml
+++ b/util/pom.xml
@@ -7,7 +7,7 @@
io.kubernetes
client-java-parent
- 27.0.0-SNAPSHOT
+ 28.0.0-SNAPSHOT
../pom.xml