diff --git a/.build/run-tests.sh b/.build/run-tests.sh index fd6a7da21d..53dfb32867 100755 --- a/.build/run-tests.sh +++ b/.build/run-tests.sh @@ -74,16 +74,31 @@ _timeout_for() { } _build_all_dtest_jars() { - pushd $TMP_DIR >/dev/null - rm -fR ${TMP_DIR}/cassandra-dtest-jars - until git clone --quiet --depth 1 --no-single-branch https://github.com/apache/cassandra.git cassandra-dtest-jars ; do echo "git clone failed… trying again… " ; done + + # build the dtest-jar for the branch under test. remember to `ant clean` if you want a new dtest jar built + dtest_jar_version=$(grep 'property\s*name=\"base.version\"' build.xml |sed -ne 's/.*value=\"\([^"]*\)\".*/\1/p') + if [ -f "${DIST_DIR}/dtest-${dtest_jar_version}.jar" ] ; then + echo "Skipping dtest jar build for branch under test as ${DIST_DIR}/dtest-${dtest_jar_version}.jar already exists" + else + ant jar dtest-jar ${ANT_TEST_OPTS} -Dbuild.dir=${TMP_DIR}/cassandra-dtest-jars/build + cp "${TMP_DIR}/cassandra-dtest-jars/build/dtest-${dtest_jar_version}.jar" ${DIST_DIR}/ + fi + + if [ -d ${TMP_DIR}/cassandra-dtest-jars ] && [ "https://github.com/apache/cassandra.git" == "$(git -C ${TMP_DIR}/cassandra-dtest-jars remote get-url origin)" ] ; then + until git -C ${TMP_DIR}/cassandra-dtest-jars fetch --quiet origin ; do echo "git pull failed… trying again… " ; done + else + rm -fR ${TMP_DIR}/cassandra-dtest-jars + pushd $TMP_DIR >/dev/null + until git clone --quiet --depth 1 --no-single-branch https://github.com/apache/cassandra.git cassandra-dtest-jars ; do echo "git clone failed… trying again… " ; done + popd >/dev/null + fi # cassandra-4 branches need CASSANDRA_USE_JDK11 to allow jdk11 [ "${java_version}" -eq 11 ] && export CASSANDRA_USE_JDK11=true pushd ${TMP_DIR}/cassandra-dtest-jars >/dev/null - for branch in cassandra-4.0 cassandra-4.1 trunk ; do - git checkout $branch + for branch in cassandra-4.0 cassandra-4.1 cassandra-5.0 trunk ; do + git checkout --quiet $branch dtest_jar_version=$(grep 'property\s*name=\"base.version\"' build.xml |sed -ne 's/.*value=\"\([^"]*\)\".*/\1/p') if [ -f "${DIST_DIR}/dtest-${dtest_jar_version}.jar" ] ; then echo "Skipping dtest jar build for branch ${branch} as ${DIST_DIR}/dtest-${dtest_jar_version}.jar already exists" @@ -95,7 +110,6 @@ _build_all_dtest_jars() { cp "${TMP_DIR}/cassandra-dtest-jars/build/dtest-${dtest_jar_version}.jar" ${DIST_DIR}/ done popd >/dev/null - popd >/dev/null ls -l ${DIST_DIR}/dtest*.jar unset CASSANDRA_USE_JDK11 } diff --git a/.circleci/config.yml b/.circleci/config.yml index 0c247fbc85..52c4b590ee 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -5070,7 +5070,7 @@ jobs: cd ~/cassandra mkdir ~/dtest_jars git remote add apache https://github.com/apache/cassandra.git - for branch in cassandra-4.0 cassandra-4.1 trunk; do + for branch in cassandra-4.0 cassandra-4.1 cassandra-5.0 trunk; do # check out the correct cassandra version: git remote set-branches --add apache '$branch' git fetch --depth 1 apache $branch diff --git a/.circleci/config.yml.FREE b/.circleci/config.yml.FREE index 0c247fbc85..52c4b590ee 100644 --- a/.circleci/config.yml.FREE +++ b/.circleci/config.yml.FREE @@ -5070,7 +5070,7 @@ jobs: cd ~/cassandra mkdir ~/dtest_jars git remote add apache https://github.com/apache/cassandra.git - for branch in cassandra-4.0 cassandra-4.1 trunk; do + for branch in cassandra-4.0 cassandra-4.1 cassandra-5.0 trunk; do # check out the correct cassandra version: git remote set-branches --add apache '$branch' git fetch --depth 1 apache $branch diff --git a/.circleci/config.yml.PAID b/.circleci/config.yml.PAID index 8e8e89c95c..94519e1353 100644 --- a/.circleci/config.yml.PAID +++ b/.circleci/config.yml.PAID @@ -5070,7 +5070,7 @@ jobs: cd ~/cassandra mkdir ~/dtest_jars git remote add apache https://github.com/apache/cassandra.git - for branch in cassandra-4.0 cassandra-4.1 trunk; do + for branch in cassandra-4.0 cassandra-4.1 cassandra-5.0 trunk; do # check out the correct cassandra version: git remote set-branches --add apache '$branch' git fetch --depth 1 apache $branch diff --git a/.circleci/config_template.yml b/.circleci/config_template.yml index b8ed8cbbcb..92e91daa34 100644 --- a/.circleci/config_template.yml +++ b/.circleci/config_template.yml @@ -2901,7 +2901,7 @@ commands: cd ~/cassandra mkdir ~/dtest_jars git remote add apache https://github.com/apache/cassandra.git - for branch in cassandra-4.0 cassandra-4.1 trunk; do + for branch in cassandra-4.0 cassandra-4.1 cassandra-5.0 trunk; do # check out the correct cassandra version: git remote set-branches --add apache '$branch' git fetch --depth 1 apache $branch diff --git a/NEWS.txt b/NEWS.txt index 6e986522a7..b642685f79 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -66,6 +66,19 @@ restore snapshots created with the previous major version using the using the provided 'sstableupgrade' tool. +5.1 +=== + +New features +------------ + +Upgrading +--------- + +Deprecation +----------- + + 5.0 === diff --git a/build.xml b/build.xml index 7c7efc0a5d..b36ce1b5c8 100644 --- a/build.xml +++ b/build.xml @@ -32,7 +32,7 @@ - + diff --git a/debian/changelog b/debian/changelog index cdb1af9772..4a2fc47012 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -cassandra (5.0) UNRELEASED; urgency=medium +cassandra (5.1) UNRELEASED; urgency=medium * New release diff --git a/test/distributed/org/apache/cassandra/distributed/upgrade/CompactionHistorySystemTableUpgradeTest.java b/test/distributed/org/apache/cassandra/distributed/upgrade/CompactionHistorySystemTableUpgradeTest.java index 73e92dd423..a7b23ce5ce 100644 --- a/test/distributed/org/apache/cassandra/distributed/upgrade/CompactionHistorySystemTableUpgradeTest.java +++ b/test/distributed/org/apache/cassandra/distributed/upgrade/CompactionHistorySystemTableUpgradeTest.java @@ -19,36 +19,18 @@ package org.apache.cassandra.distributed.upgrade; import com.google.common.collect.ImmutableMap; -import com.google.common.collect.Lists; +import org.junit.Test; -import com.vdurmont.semver4j.Semver; import org.apache.cassandra.db.compaction.OperationType; import org.apache.cassandra.distributed.api.ConsistencyLevel; import org.apache.cassandra.tools.ToolRunner; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; -import org.junit.runners.Parameterized.Parameter; -import org.junit.runners.Parameterized.Parameters; - -import java.util.ArrayList; - import static org.apache.cassandra.db.compaction.CompactionHistoryTabularData.COMPACTION_TYPE_PROPERTY; import static org.apache.cassandra.tools.ToolRunner.invokeNodetoolJvmDtest; import static org.apache.cassandra.tools.nodetool.CompactionHistoryTest.assertCompactionHistoryOutPut; -@RunWith(Parameterized.class) public class CompactionHistorySystemTableUpgradeTest extends UpgradeTestBase { - @Parameter - public Semver version; - - @Parameters() - public static ArrayList versions() - { - return Lists.newArrayList(v30, v3X, v40, v41); - } @Test public void compactionHistorySystemTableTest() throws Throwable @@ -56,7 +38,9 @@ public class CompactionHistorySystemTableUpgradeTest extends UpgradeTestBase new TestCase() .nodes(1) .nodesToUpgrade(1) - .upgradesToCurrentFrom(version) + // all upgrades from v40 to current, excluding v50 -> v51 + .singleUpgradeToCurrentFrom(v40) + .singleUpgradeToCurrentFrom(v41) .setup((cluster) -> { //create table cluster.schemaChange("CREATE TABLE " + KEYSPACE + ".tb (" + diff --git a/test/distributed/org/apache/cassandra/distributed/upgrade/MixedModeTTLOverflowUpgradeTest.java b/test/distributed/org/apache/cassandra/distributed/upgrade/MixedModeTTLOverflowUpgradeTest.java index 49ad956e07..fed751e26e 100644 --- a/test/distributed/org/apache/cassandra/distributed/upgrade/MixedModeTTLOverflowUpgradeTest.java +++ b/test/distributed/org/apache/cassandra/distributed/upgrade/MixedModeTTLOverflowUpgradeTest.java @@ -119,7 +119,9 @@ public class MixedModeTTLOverflowUpgradeTest extends UpgradeTestBase new TestCase() .nodes(2) .nodesToUpgradeOrdered(1, 2) - .upgradesToCurrentFrom(v40) + // all upgrades from v40 to current, excluding v50 -> v51 + .singleUpgradeToCurrentFrom(v40) + .singleUpgradeToCurrentFrom(v41) .setup(cluster -> { cluster.schemaChange(withKeyspace("CREATE TABLE %s.t (k int PRIMARY KEY, v int)")); diff --git a/test/distributed/org/apache/cassandra/distributed/upgrade/MixedModeWritetimeOrTTLTest.java b/test/distributed/org/apache/cassandra/distributed/upgrade/MixedModeWritetimeOrTTLTest.java index 295ffd2987..4c559c2eef 100644 --- a/test/distributed/org/apache/cassandra/distributed/upgrade/MixedModeWritetimeOrTTLTest.java +++ b/test/distributed/org/apache/cassandra/distributed/upgrade/MixedModeWritetimeOrTTLTest.java @@ -45,7 +45,9 @@ public class MixedModeWritetimeOrTTLTest extends UpgradeTestBase new TestCase() .nodes(2) .nodesToUpgradeOrdered(1, 2) - .upgradesToCurrentFrom(v30) + // all upgrades from v40 to current, excluding v50 -> v51 + .singleUpgradeToCurrentFrom(v40) + .singleUpgradeToCurrentFrom(v41) .setup(cluster -> { ICoordinator coordinator = cluster.coordinator(1); diff --git a/test/distributed/org/apache/cassandra/distributed/upgrade/UpgradeTestBase.java b/test/distributed/org/apache/cassandra/distributed/upgrade/UpgradeTestBase.java index 3f8f4d47c8..5ee8780204 100644 --- a/test/distributed/org/apache/cassandra/distributed/upgrade/UpgradeTestBase.java +++ b/test/distributed/org/apache/cassandra/distributed/upgrade/UpgradeTestBase.java @@ -92,6 +92,7 @@ public class UpgradeTestBase extends DistributedTestBase public static final Semver v40 = new Semver("4.0-alpha1", SemverType.LOOSE); public static final Semver v41 = new Semver("4.1-alpha1", SemverType.LOOSE); public static final Semver v50 = new Semver("5.0-alpha1", SemverType.LOOSE); + public static final Semver v51 = new Semver("5.1-alpha1", SemverType.LOOSE); protected static final SimpleGraph SUPPORTED_UPGRADE_PATHS = new SimpleGraph.Builder() .addEdge(v30, v3X) @@ -101,7 +102,10 @@ public class UpgradeTestBase extends DistributedTestBase .addEdge(v3X, v41) .addEdge(v40, v41) .addEdge(v40, v50) + .addEdge(v40, v51) .addEdge(v41, v50) + .addEdge(v41, v51) + .addEdge(v50, v51) .build(); // the last is always the current