From 7ed024e2c8289021b187d46bfa42b2daf2cd82b4 Mon Sep 17 00:00:00 2001
From: Nick Knize <nknize@gmail.com>
Date: Wed, 25 Aug 2021 23:11:43 -0500
Subject: [PATCH] Add 1.0.1 revision (#1152)

This commit stages the branch to the next 1.0.1 patch release. BWC testing needs
this even if the next revision is never actually released.

Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
---
 .ci/bwcVersions                               |  2 ++
 .../src/main/java/org/opensearch/Version.java |  1 +
 .../org/opensearch/test/VersionUtils.java     | 23 +++++++++++--------
 3 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/.ci/bwcVersions b/.ci/bwcVersions
index 21b111c307b..44501068a79 100644
--- a/.ci/bwcVersions
+++ b/.ci/bwcVersions
@@ -75,3 +75,5 @@ BWC_VERSION:
   - "7.10.1"
   - "7.10.2"
   - "1.0.0"
+  - "1.0.1"
+  - "1.1.0"
diff --git a/server/src/main/java/org/opensearch/Version.java b/server/src/main/java/org/opensearch/Version.java
index 9969ef182b0..142fabf5ad0 100644
--- a/server/src/main/java/org/opensearch/Version.java
+++ b/server/src/main/java/org/opensearch/Version.java
@@ -71,6 +71,7 @@ public class Version implements Comparable<Version>, ToXContentFragment {
     public static final Version V_EMPTY = new Version(V_EMPTY_ID, org.apache.lucene.util.Version.LATEST);
 
     public static final Version V_1_0_0 = new Version(1000099, org.apache.lucene.util.Version.LUCENE_8_8_2);
+    public static final Version V_1_0_1 = new Version(1000199, org.apache.lucene.util.Version.LUCENE_8_8_2);
     public static final Version V_1_1_0 = new Version(1010099, org.apache.lucene.util.Version.LUCENE_8_9_0);
     public static final Version CURRENT = V_1_1_0;
 
diff --git a/test/framework/src/main/java/org/opensearch/test/VersionUtils.java b/test/framework/src/main/java/org/opensearch/test/VersionUtils.java
index 90c2aabe715..747190cbd5b 100644
--- a/test/framework/src/main/java/org/opensearch/test/VersionUtils.java
+++ b/test/framework/src/main/java/org/opensearch/test/VersionUtils.java
@@ -95,15 +95,20 @@ public class VersionUtils {
         // remove last minor unless the it's the first OpenSearch version.
         // all Legacy ES versions are released, so we don't exclude any.
         if (current.equals(Version.V_1_0_0) == false) {
-            Version lastMinor = moveLastToUnreleased(stableVersions, unreleasedVersions);
-            if (lastMinor.revision == 0) {
-                if (stableVersions.get(stableVersions.size() - 1).size() == 1) {
-                    // a minor is being staged, which is also unreleased
-                    moveLastToUnreleased(stableVersions, unreleasedVersions);
-                }
-                // remove the next bugfix
-                if (stableVersions.isEmpty() == false) {
-                    moveLastToUnreleased(stableVersions, unreleasedVersions);
+            List<Version> lastMinorLine = stableVersions.get(stableVersions.size() - 1);
+            if (lastMinorLine.get(lastMinorLine.size() - 1) instanceof LegacyESVersion == false) {
+                // if the last minor line is Legacy there are no more staged releases; do nothing
+                Version lastMinor = moveLastToUnreleased(stableVersions, unreleasedVersions);
+                if (lastMinor instanceof LegacyESVersion == false && lastMinor.revision == 0) {
+                    // no more staged legacy versions
+                    if (stableVersions.get(stableVersions.size() - 1).size() == 1) {
+                        // a minor is being staged, which is also unreleased
+                        moveLastToUnreleased(stableVersions, unreleasedVersions);
+                    }
+                    // remove the next bugfix
+                    if (stableVersions.isEmpty() == false) {
+                        moveLastToUnreleased(stableVersions, unreleasedVersions);
+                    }
                 }
             }
         }