Skip to content

Commit 30c1f90

Browse files
authored
[8.18] Cutover to the new transport version system (elastic#135048)
This commit updates the latest transport version ids to use the new gradle managed system. It also adds a test to ensure new constants are not added to TransportVersions.java.
1 parent c30b7f6 commit 30c1f90

File tree

6 files changed

+26
-49
lines changed

6 files changed

+26
-49
lines changed

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/transport/ValidateTransportVersionResourcesTask.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ private void validateUpperBound(
255255
}
256256

257257
TransportVersionUpperBound existingUpperBound = getResources().get().getUpperBoundFromUpstream(upperBound.name());
258-
if (existingUpperBound != null) {
258+
if (existingUpperBound != null && getShouldValidatePrimaryIdNotPatch().get()) {
259259
if (upperBound.definitionId().patch() != 0 && upperBound.definitionId().base() != existingUpperBound.definitionId().base()) {
260260
throwUpperBoundFailure(
261261
upperBound,

server/src/main/java/org/elasticsearch/TransportVersions.java

Lines changed: 11 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,16 @@
2020
import java.util.TreeSet;
2121

2222
/**
23-
* <p>Transport version is used to coordinate compatible wire protocol communication between nodes, at a fine-grained level. This replaces
24-
* and supersedes the old Version constants.</p>
23+
* Legacy container for transport version constants.
2524
*
26-
* <p>Before adding a new version constant, please read the block comment at the end of the list of constants.</p>
25+
* ____ ___ _ _ ___ _____ _____ ____ ___ _____ _____ _ _ ___ ____ _____ ___ _ _____
26+
* | _ \ / _ \ | \ | |/ _ \_ _| | ____| _ \_ _|_ _| |_ _| | | |_ _/ ___| | ___|_ _| | | ____|
27+
* | | | | | | | | \| | | | || | | _| | | | | | | | | | | |_| || |\___ \ | |_ | || | | _|
28+
* | |_| | |_| | | |\ | |_| || | | |___| |_| | | | | | | | _ || | ___) | | _| | || |___| |___
29+
* |____/ \___/ |_| \_|\___/ |_| |_____|____/___| |_| |_| |_| |_|___|____/ |_| |___|_____|_____|
30+
*
31+
* DO NOT EDIT THIS FILE! New transport versions should be added using the new transport version system.
32+
* See docs/internal/Versioning.md.
2733
*/
2834
public class TransportVersions {
2935

@@ -174,8 +180,6 @@ static TransportVersion def(int id) {
174180
public static final TransportVersion ML_INFERENCE_IBM_WATSONX_RERANK_ADDED = def(8_840_00_0);
175181
public static final TransportVersion REMOVE_ALL_APPLICABLE_SELECTOR_BACKPORT_8_18 = def(8_840_00_1);
176182
public static final TransportVersion RETRY_ILM_ASYNC_ACTION_REQUIRE_ERROR_8_18 = def(8_840_0_02);
177-
public static final TransportVersion INITIAL_ELASTICSEARCH_8_18_7 = def(8_840_0_09);
178-
public static final TransportVersion INITIAL_ELASTICSEARCH_8_18_8 = def(8_840_0_10);
179183

180184
/*
181185
* STOP! READ THIS FIRST! No, really,
@@ -185,49 +189,9 @@ static TransportVersion def(int id) {
185189
* ___) || || |_| | __/|_| | _ <| |___ / ___ \| |_| | | | | _ || | ___) | | _| | || _ < ___) || | |_|
186190
* |____/ |_| \___/|_| (_) |_| \_\_____/_/ \_\____/ |_| |_| |_|___|____/ |_| |___|_| \_\____/ |_| (_)
187191
*
188-
* A new transport version should be added EVERY TIME a change is made to the serialization protocol of one or more classes. Each
189-
* transport version should only be used in a single merged commit (apart from the BwC versions copied from o.e.Version, ≤V_8_8_1).
190-
*
191-
* ADDING A TRANSPORT VERSION
192-
* To add a new transport version, add a new constant at the bottom of the list, above this comment. Don't add other lines,
193-
* comments, etc. The version id has the following layout:
194-
*
195-
* M_NNN_S_PP
196-
*
197-
* M - The major version of Elasticsearch
198-
* NNN - The server version part
199-
* S - The subsidiary version part. It should always be 0 here, it is only used in subsidiary repositories.
200-
* PP - The patch version part
201-
*
202-
* To determine the id of the next TransportVersion constant, do the following:
203-
* - Use the same major version, unless bumping majors
204-
* - Bump the server version part by 1, unless creating a patch version
205-
* - Leave the subsidiary part as 0
206-
* - Bump the patch part if creating a patch version
207-
*
208-
* If a patch version is created, it should be placed sorted among the other existing constants.
209-
*
210-
* REVERTING A TRANSPORT VERSION
211-
*
212-
* If you revert a commit with a transport version change, you MUST ensure there is a NEW transport version representing the reverted
213-
* change. DO NOT let the transport version go backwards, it must ALWAYS be incremented.
214-
*
215-
* DETERMINING TRANSPORT VERSIONS FROM GIT HISTORY
216-
*
217-
* If your git checkout has the expected minor-version-numbered branches and the expected release-version tags then you can find the
218-
* transport versions known by a particular release ...
219-
*
220-
* git show v8.11.0:server/src/main/java/org/elasticsearch/TransportVersions.java | grep '= def'
221-
*
222-
* ... or by a particular branch ...
223-
*
224-
* git show 8.11:server/src/main/java/org/elasticsearch/TransportVersions.java | grep '= def'
225-
*
226-
* ... and you can see which versions were added in between two versions too ...
227-
*
228-
* git diff v8.11.0..main -- server/src/main/java/org/elasticsearch/TransportVersions.java
192+
* DO NOT EDIT THIS FILE.
229193
*
230-
* In branches 8.7-8.10 see server/src/main/java/org/elasticsearch/TransportVersion.java for the equivalent definitions.
194+
* Transport version must now be added with the new transport version system. See docs/internal/Versioning.md
231195
*/
232196

233197
/**
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
8840009
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
8840010
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
initial_elasticsearch_8_18_6,8840008
1+
initial_elasticsearch_8_18_8,8840010

server/src/test/java/org/elasticsearch/TransportVersionTests.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import static org.hamcrest.Matchers.contains;
2828
import static org.hamcrest.Matchers.containsString;
2929
import static org.hamcrest.Matchers.endsWith;
30+
import static org.hamcrest.Matchers.equalTo;
3031
import static org.hamcrest.Matchers.greaterThan;
3132
import static org.hamcrest.Matchers.is;
3233
import static org.hamcrest.Matchers.lessThan;
@@ -450,4 +451,14 @@ public void testMoreLikeThis() {
450451
)
451452
);
452453
}
454+
455+
public void testTransportVersionsLocked() {
456+
List<TransportVersion> versions = TransportVersions.DEFINED_VERSIONS;
457+
assertThat(
458+
"TransportVersions.java is locked. Generate transport versions with TransportVersion.fromName "
459+
+ "and generateTransportVersion gradle task",
460+
versions.get(versions.size() - 1).id(),
461+
equalTo(8_840_0_02)
462+
);
463+
}
453464
}

0 commit comments

Comments
 (0)