Skip to content

Commit 7730461

Browse files
committed
ci: raise minimal required version to 1.32
Replication API's changed between 1.31 and 1.32 and is completely incompatible
1 parent 9ad739e commit 7730461

7 files changed

Lines changed: 30 additions & 15 deletions

File tree

.github/workflows/test.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ jobs:
6868
strategy:
6969
fail-fast: false
7070
matrix:
71-
WEAVIATE_VERSION: ["1.30.0", "1.31.0", "1.32.0", "1.33.0"]
71+
WEAVIATE_VERSION: ["1.32.0", "1.33.0"]
7272
steps:
7373
- uses: actions/checkout@v4
7474

src/it/java/io/weaviate/ConcurrentTest.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -119,18 +119,16 @@ public static void eventually(Callable<Boolean> cond, int intervalMillis, int ti
119119
* Skip the test if the version that the {@link Weaviate}
120120
* container is running is older than the required one.
121121
*/
122-
public static void requireAtLeast(int major, int minor) {
123-
var required = new SemanticVersion(major, minor);
122+
public static void requireAtLeast(Weaviate.Version required) {
124123
var actual = SemanticVersion.of(Weaviate.VERSION);
125124
Assumptions.assumeThat(actual)
126-
.as("requires at least %s, but running %s", required, actual)
127-
.isGreaterThanOrEqualTo(required);
125+
.as("requires at least %s, but running %s", required.semver, actual)
126+
.isGreaterThanOrEqualTo(required.semver);
128127
}
129128

130-
public static void requireAtLeast(int major, int minor, Runnable r) {
131-
var required = new SemanticVersion(major, minor);
129+
public static void requireAtLeast(Weaviate.Version required, Runnable r) {
132130
var actual = SemanticVersion.of(Weaviate.VERSION);
133-
if (actual.compareTo(required) >= 0) {
131+
if (actual.compareTo(required.semver) >= 0) {
134132
r.run();
135133
}
136134
}

src/it/java/io/weaviate/containers/Weaviate.java

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,11 @@
1616
import org.testcontainers.lifecycle.Startable;
1717
import org.testcontainers.weaviate.WeaviateContainer;
1818

19+
import io.weaviate.ConcurrentTest;
1920
import io.weaviate.client6.v1.api.Config;
2021
import io.weaviate.client6.v1.api.WeaviateClient;
2122
import io.weaviate.client6.v1.internal.ObjectBuilder;
23+
import io.weaviate.client6.v1.internal.VersionSupport.SemanticVersion;
2224

2325
public class Weaviate extends WeaviateContainer {
2426
public static final String DOCKER_IMAGE = "semitechnologies/weaviate";
@@ -28,12 +30,26 @@ public class Weaviate extends WeaviateContainer {
2830
static {
2931
VERSION = System.getenv().getOrDefault("WEAVIATE_VERSION", LATEST_VERSION);
3032
}
31-
3233
public static String OIDC_ISSUER = "https://auth.wcs.api.weaviate.io/auth/realms/SeMI";
3334

3435
private volatile SharedClient clientInstance;
3536
private final String containerName;
3637

38+
public enum Version {
39+
V132(1, 32),
40+
V133(1, 33);
41+
42+
public final SemanticVersion semver;
43+
44+
private Version(int major, int minor) {
45+
this.semver = new SemanticVersion(major, minor);
46+
}
47+
48+
public void orSkip() {
49+
ConcurrentTest.requireAtLeast(this);
50+
}
51+
}
52+
3753
/**
3854
* By default, testcontainer's name is only available after calling
3955
* {@link #start}.

src/it/java/io/weaviate/integration/AliasITest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,14 @@
1111
import io.weaviate.client6.v1.api.WeaviateClient;
1212
import io.weaviate.client6.v1.api.alias.Alias;
1313
import io.weaviate.containers.Container;
14+
import io.weaviate.containers.Weaviate;
1415

1516
public class AliasITest extends ConcurrentTest {
1617
private static final WeaviateClient client = Container.WEAVIATE.getClient();
1718

1819
@BeforeClass
1920
public static void __() {
20-
requireAtLeast(1, 32);
21+
Weaviate.Version.V132.orSkip();
2122
}
2223

2324
@Test

src/it/java/io/weaviate/integration/BackupITest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public class BackupITest extends ConcurrentTest {
2929

3030
@Test
3131
public void test_lifecycle() throws IOException, TimeoutException {
32-
requireAtLeast(1, 32); // List backups not implemented in earlier versions
32+
Weaviate.Version.V132.orSkip(); // List backups not implemented in earlier versions
3333

3434
// Arrange
3535
String nsA = ns("A"), nsB = ns("B"), nsC = ns("C"), nsBig = ns("Big");
@@ -124,7 +124,7 @@ public void test_lifecycle() throws IOException, TimeoutException {
124124

125125
@Test
126126
public void test_lifecycle_async() throws ExecutionException, InterruptedException, Exception {
127-
requireAtLeast(1, 32); // List backups not implemented in earlier versions
127+
Weaviate.Version.V132.orSkip(); // List backups not implemented in earlier versions
128128

129129
// Arrange
130130
String nsA = ns("A"), nsB = ns("B"), nsC = ns("C"), nsBig = ns("Big");

src/it/java/io/weaviate/integration/RbacITest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,11 +75,11 @@ public void test_roles_Lifecycle() throws IOException {
7575
Permission.users("my-user", UsersPermission.Action.READ),
7676
Permission.replicate(myCollection, "my-shard", ReplicatePermission.Action.READ));
7777

78-
requireAtLeast(1, 32, () -> {
78+
requireAtLeast(Weaviate.Version.V132, () -> {
7979
permissions.add(
8080
Permission.aliases("ThingsAlias", myCollection, AliasesPermission.Action.CREATE));
8181
});
82-
requireAtLeast(1, 33, () -> {
82+
requireAtLeast(Weaviate.Version.V133, () -> {
8383
permissions.add(
8484
Permission.groups("my-group", GroupType.OIDC, GroupsPermission.Action.READ));
8585
});

src/main/java/io/weaviate/client6/v1/internal/VersionSupport.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import java.util.Arrays;
44

55
public final class VersionSupport {
6-
public static final SemanticVersion MINIMAL_SUPPORTED_VERSION = new SemanticVersion(1, 31);
6+
public static final SemanticVersion MINIMAL_SUPPORTED_VERSION = new SemanticVersion(1, 32);
77

88
/**
99
* Returns true if the {@code version} is the same as or older than the

0 commit comments

Comments
 (0)