From 97266a1af3e563bee14726ff68fbff800e5ce95e Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Thu, 11 Sep 2025 09:32:35 -0700 Subject: [PATCH 1/8] Add pull request job to verify transport versions backported via main --- .../validate-transport-version-backport.yml | 5 ++++ .../validate-transport-version-backport.sh | 24 +++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 .buildkite/pipelines/pull-request/validate-transport-version-backport.yml create mode 100755 .buildkite/scripts/validate-transport-version-backport.sh diff --git a/.buildkite/pipelines/pull-request/validate-transport-version-backport.yml b/.buildkite/pipelines/pull-request/validate-transport-version-backport.yml new file mode 100644 index 0000000000000..4afc6f8953013 --- /dev/null +++ b/.buildkite/pipelines/pull-request/validate-transport-version-backport.yml @@ -0,0 +1,5 @@ +config: + skip-target-branches: "main" +steps: + - label: validate-transport-version-backport + command: .ci/scripts/validate-transport-version-backport.sh diff --git a/.buildkite/scripts/validate-transport-version-backport.sh b/.buildkite/scripts/validate-transport-version-backport.sh new file mode 100755 index 0000000000000..d67ed89e1c094 --- /dev/null +++ b/.buildkite/scripts/validate-transport-version-backport.sh @@ -0,0 +1,24 @@ +#!/bin/bash +set -euo pipefail + +echo "--- Looking for transport version changes" + +# Get any changes in this pull request to transport definitions +git fetch origin "${BUILDKITE_PULL_REQUEST_BASE_BRANCH}" --quiet +changed_files=$(git diff --name-only "origin/${BUILDKITE_PULL_REQUEST_BASE_BRANCH}" | grep -E "server/src/main/resources/transport/definitions/.*\.csv" || true) + +if [[ -z "${changed_files}" ]]; then + echo "No transport version changes detected." + exit 0 +fi + +# Compare those files against the main branch to ensure they are the same +while IFS= read -r file; do + if ! git diff --quiet origin/main -- "${file}"; then + echo "Changes to transport definition [${file}] missing from main branch." + echo "Transport changes must first be merged to main before being backported." + exit 1 + fi +done <<< "${changed_files}" + +echo "All transport changes exist in main branch." From bfb97cfcbd113d2515c35209ff6c113d6f94afdc Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Thu, 11 Sep 2025 09:40:24 -0700 Subject: [PATCH 2/8] Fix path to script --- .../pull-request/validate-transport-version-backport.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.buildkite/pipelines/pull-request/validate-transport-version-backport.yml b/.buildkite/pipelines/pull-request/validate-transport-version-backport.yml index 4afc6f8953013..6d67b6041cab3 100644 --- a/.buildkite/pipelines/pull-request/validate-transport-version-backport.yml +++ b/.buildkite/pipelines/pull-request/validate-transport-version-backport.yml @@ -2,4 +2,4 @@ config: skip-target-branches: "main" steps: - label: validate-transport-version-backport - command: .ci/scripts/validate-transport-version-backport.sh + command: .buildkite/scripts/validate-transport-version-backport.sh From 34a5324d66ac8ba1567ea8bd0ef15830844b4eeb Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Thu, 11 Sep 2025 09:51:07 -0700 Subject: [PATCH 3/8] Make sure we fetch main before comparing --- .buildkite/scripts/validate-transport-version-backport.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/.buildkite/scripts/validate-transport-version-backport.sh b/.buildkite/scripts/validate-transport-version-backport.sh index d67ed89e1c094..9badf15808300 100755 --- a/.buildkite/scripts/validate-transport-version-backport.sh +++ b/.buildkite/scripts/validate-transport-version-backport.sh @@ -13,6 +13,7 @@ if [[ -z "${changed_files}" ]]; then fi # Compare those files against the main branch to ensure they are the same +git fetch origin main --quiet while IFS= read -r file; do if ! git diff --quiet origin/main -- "${file}"; then echo "Changes to transport definition [${file}] missing from main branch." From cc86271cc59e8e20470508af9084fd2ee43f9fd0 Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Fri, 12 Sep 2025 08:56:55 -0700 Subject: [PATCH 4/8] Print file diff when change is detected --- .buildkite/scripts/validate-transport-version-backport.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.buildkite/scripts/validate-transport-version-backport.sh b/.buildkite/scripts/validate-transport-version-backport.sh index 9badf15808300..2a18059947f48 100755 --- a/.buildkite/scripts/validate-transport-version-backport.sh +++ b/.buildkite/scripts/validate-transport-version-backport.sh @@ -18,6 +18,8 @@ while IFS= read -r file; do if ! git diff --quiet origin/main -- "${file}"; then echo "Changes to transport definition [${file}] missing from main branch." echo "Transport changes must first be merged to main before being backported." + echo "" + git diff --quiet origin/main -- "${file}" exit 1 fi done <<< "${changed_files}" From 249b64e605f5013e78585517ae23c453582b3df3 Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Fri, 12 Sep 2025 08:57:40 -0700 Subject: [PATCH 5/8] Add a new transport version to test failure --- .../apm/src/main/java/org/elasticsearch/telemetry/apm/APM.java | 2 ++ .../resources/transport/definitions/referable/my-backport.csv | 1 + server/src/main/resources/transport/upper_bounds/9.0.csv | 2 +- 3 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 server/src/main/resources/transport/definitions/referable/my-backport.csv diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APM.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APM.java index 43447cfa21a62..2ea7f0efe9cb9 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APM.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APM.java @@ -12,6 +12,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.lucene.util.SetOnce; +import org.elasticsearch.TransportVersion; import org.elasticsearch.common.settings.Setting; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.plugins.NetworkPlugin; @@ -50,6 +51,7 @@ public class APM extends Plugin implements NetworkPlugin, TelemetryPlugin { private static final Logger logger = LogManager.getLogger(APM.class); private final SetOnce telemetryProvider = new SetOnce<>(); private final Settings settings; + private static final TransportVersion transportVersion = TransportVersion.fromName("my-backport"); public APM(Settings settings) { this.settings = settings; diff --git a/server/src/main/resources/transport/definitions/referable/my-backport.csv b/server/src/main/resources/transport/definitions/referable/my-backport.csv new file mode 100644 index 0000000000000..f3a8f8ecfd8fe --- /dev/null +++ b/server/src/main/resources/transport/definitions/referable/my-backport.csv @@ -0,0 +1 @@ +9001015 diff --git a/server/src/main/resources/transport/upper_bounds/9.0.csv b/server/src/main/resources/transport/upper_bounds/9.0.csv index f8f50cc6d7839..df47d3972bfdb 100644 --- a/server/src/main/resources/transport/upper_bounds/9.0.csv +++ b/server/src/main/resources/transport/upper_bounds/9.0.csv @@ -1 +1 @@ -initial_elasticsearch_9_0_6,9000015 +my-backport,9001015 From 4afe57be0706450b01b6d5577399c25878b8e53b Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Fri, 12 Sep 2025 09:04:54 -0700 Subject: [PATCH 6/8] Remove --quiet --- .buildkite/scripts/validate-transport-version-backport.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.buildkite/scripts/validate-transport-version-backport.sh b/.buildkite/scripts/validate-transport-version-backport.sh index 2a18059947f48..198777336b070 100755 --- a/.buildkite/scripts/validate-transport-version-backport.sh +++ b/.buildkite/scripts/validate-transport-version-backport.sh @@ -19,7 +19,7 @@ while IFS= read -r file; do echo "Changes to transport definition [${file}] missing from main branch." echo "Transport changes must first be merged to main before being backported." echo "" - git diff --quiet origin/main -- "${file}" + git diff origin/main -- "${file}" exit 1 fi done <<< "${changed_files}" From 1d640b237d8fa7ed2a90ec7301b626e94075ff0e Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Fri, 12 Sep 2025 09:13:55 -0700 Subject: [PATCH 7/8] Revert "Add a new transport version to test failure" This reverts commit 249b64e605f5013e78585517ae23c453582b3df3. --- .../apm/src/main/java/org/elasticsearch/telemetry/apm/APM.java | 2 -- .../resources/transport/definitions/referable/my-backport.csv | 1 - server/src/main/resources/transport/upper_bounds/9.0.csv | 2 +- 3 files changed, 1 insertion(+), 4 deletions(-) delete mode 100644 server/src/main/resources/transport/definitions/referable/my-backport.csv diff --git a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APM.java b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APM.java index 2ea7f0efe9cb9..43447cfa21a62 100644 --- a/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APM.java +++ b/modules/apm/src/main/java/org/elasticsearch/telemetry/apm/APM.java @@ -12,7 +12,6 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.lucene.util.SetOnce; -import org.elasticsearch.TransportVersion; import org.elasticsearch.common.settings.Setting; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.plugins.NetworkPlugin; @@ -51,7 +50,6 @@ public class APM extends Plugin implements NetworkPlugin, TelemetryPlugin { private static final Logger logger = LogManager.getLogger(APM.class); private final SetOnce telemetryProvider = new SetOnce<>(); private final Settings settings; - private static final TransportVersion transportVersion = TransportVersion.fromName("my-backport"); public APM(Settings settings) { this.settings = settings; diff --git a/server/src/main/resources/transport/definitions/referable/my-backport.csv b/server/src/main/resources/transport/definitions/referable/my-backport.csv deleted file mode 100644 index f3a8f8ecfd8fe..0000000000000 --- a/server/src/main/resources/transport/definitions/referable/my-backport.csv +++ /dev/null @@ -1 +0,0 @@ -9001015 diff --git a/server/src/main/resources/transport/upper_bounds/9.0.csv b/server/src/main/resources/transport/upper_bounds/9.0.csv index df47d3972bfdb..f8f50cc6d7839 100644 --- a/server/src/main/resources/transport/upper_bounds/9.0.csv +++ b/server/src/main/resources/transport/upper_bounds/9.0.csv @@ -1 +1 @@ -my-backport,9001015 +initial_elasticsearch_9_0_6,9000015 From 83d0f8ec85f618454553a063813959f97a21c5ab Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Fri, 12 Sep 2025 11:57:29 -0700 Subject: [PATCH 8/8] Remove diff --- .buildkite/scripts/validate-transport-version-backport.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/.buildkite/scripts/validate-transport-version-backport.sh b/.buildkite/scripts/validate-transport-version-backport.sh index 198777336b070..9badf15808300 100755 --- a/.buildkite/scripts/validate-transport-version-backport.sh +++ b/.buildkite/scripts/validate-transport-version-backport.sh @@ -18,8 +18,6 @@ while IFS= read -r file; do if ! git diff --quiet origin/main -- "${file}"; then echo "Changes to transport definition [${file}] missing from main branch." echo "Transport changes must first be merged to main before being backported." - echo "" - git diff origin/main -- "${file}" exit 1 fi done <<< "${changed_files}"