Skip to content

Commit be6c8dc

Browse files
jfrancoaclaude
andcommitted
ci: run integration tests against Weaviate 1.39.0-rc.0
Bumps the integration-test matrix from 1.36.x to 1.39.0-rc.0 and adds the version to the test-package matrix. There is no plain `1.39.0-rc.0` tag on Docker Hub yet, only commit-suffixed builds, so the newest one is pinned following the existing `WEAVIATE_137` convention. One existing test needed adapting to an intentional server change in 1.39: `asyncEnabled` is no longer stored per class but derived server-side as `factor > 1 && !globallyDisabled`. `test_collection_config_full` uses a replication factor of 1, so the field now reports `False`. The pre-1.39 assertions are kept behind a version check. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 904ea78 commit be6c8dc

2 files changed

Lines changed: 30 additions & 12 deletions

File tree

.github/workflows/main.yaml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ env:
2929
WEAVIATE_135: 1.35.18
3030
WEAVIATE_136: 1.36.12
3131
WEAVIATE_137: 1.37.5-e0fe0d5.amd64
32+
WEAVIATE_139: 1.39.0-rc.0-b41225e.amd64
3233

3334
jobs:
3435
lint-and-format:
@@ -162,11 +163,11 @@ jobs:
162163
fail-fast: false
163164
matrix:
164165
versions: [
165-
{ py: "3.10", weaviate: $WEAVIATE_136, grpc: "1.59.0"},
166-
{ py: "3.11", weaviate: $WEAVIATE_136, grpc: "1.66.0"},
167-
{ py: "3.12", weaviate: $WEAVIATE_136, grpc: "1.70.0"},
168-
{ py: "3.13", weaviate: $WEAVIATE_136, grpc: "1.72.1"},
169-
{ py: "3.14", weaviate: $WEAVIATE_136, grpc: "1.76.0"}
166+
{ py: "3.10", weaviate: $WEAVIATE_139, grpc: "1.59.0"},
167+
{ py: "3.11", weaviate: $WEAVIATE_139, grpc: "1.66.0"},
168+
{ py: "3.12", weaviate: $WEAVIATE_139, grpc: "1.70.0"},
169+
{ py: "3.13", weaviate: $WEAVIATE_139, grpc: "1.72.1"},
170+
{ py: "3.14", weaviate: $WEAVIATE_139, grpc: "1.76.0"}
170171
]
171172
optional_dependencies: [false]
172173
steps:
@@ -320,7 +321,8 @@ jobs:
320321
$WEAVIATE_134,
321322
$WEAVIATE_135,
322323
$WEAVIATE_136,
323-
$WEAVIATE_137
324+
$WEAVIATE_137,
325+
$WEAVIATE_139
324326
]
325327
steps:
326328
- name: Checkout

integration/test_collection_config.py

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,19 @@
4848
WeaviateUnsupportedFeatureError,
4949
)
5050
from integration.conftest import retry_on_http_error
51+
from weaviate.util import _ServerVersion
52+
53+
54+
def _expected_async_enabled(version: _ServerVersion, factor: int) -> bool:
55+
"""Whether the server reports async replication as enabled for a collection.
56+
57+
Up to 1.38 the server stores whatever `async_enabled` the collection was created with. From
58+
1.39 it ignores that and derives the field as `factor > 1 and not globally disabled` instead,
59+
so a collection with a single replica always reports `False`.
60+
"""
61+
if version.is_at_least(1, 39, 0):
62+
return factor > 1
63+
return version.is_at_least(1, 26, 0)
5164

5265

5366
@pytest.fixture(scope="module")
@@ -353,10 +366,9 @@ def test_collection_config_full(collection_factory: CollectionFactory) -> None:
353366
assert config.multi_tenancy_config.auto_tenant_creation is False
354367

355368
assert config.replication_config.factor == 1
356-
if collection._connection._weaviate_version.is_at_least(1, 26, 0):
357-
assert config.replication_config.async_enabled is True
358-
else:
359-
assert config.replication_config.async_enabled is False
369+
assert config.replication_config.async_enabled is _expected_async_enabled(
370+
collection._connection._weaviate_version, factor=1
371+
)
360372

361373
if collection._connection._weaviate_version.is_at_least(1, 24, 25):
362374
assert (
@@ -1605,7 +1617,9 @@ def test_replication_config_with_async_config(collection_factory: CollectionFact
16051617
)
16061618
config = collection.config.get()
16071619
assert config.replication_config.factor == 1
1608-
assert config.replication_config.async_enabled is True
1620+
assert config.replication_config.async_enabled is _expected_async_enabled(
1621+
collection._connection._weaviate_version, factor=1
1622+
)
16091623
assert config.replication_config.async_config is not None
16101624
ac = config.replication_config.async_config
16111625
assert ac.propagation_concurrency == 4
@@ -1672,7 +1686,9 @@ def test_replication_config_remove_async_config(collection_factory: CollectionFa
16721686
),
16731687
)
16741688
config = collection.config.get()
1675-
assert config.replication_config.async_enabled is True
1689+
assert config.replication_config.async_enabled is _expected_async_enabled(
1690+
collection._connection._weaviate_version, factor=1
1691+
)
16761692
assert config.replication_config.async_config is None
16771693
assert config.replication_config.factor == 1
16781694

0 commit comments

Comments
 (0)