Skip to content

Commit 3930f06

Browse files
committed
Merge branch 'main' into multi2multivec-weaviate
2 parents b08e9d6 + aeaf1f5 commit 3930f06

149 files changed

Lines changed: 6151 additions & 2520 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/dependabot.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ updates:
88
- package-ecosystem: "pip" # See documentation for possible values
99
directory: "/" # Location of package manifests
1010
schedule:
11-
interval: "weekly"
11+
interval: "monthly"
1212
ignore:
1313
- dependency-name: "grpcio"
1414
- dependency-name: "grpcio-tools"

.github/workflows/main.yaml

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,15 @@ concurrency:
1818
cancel-in-progress: true
1919

2020
env:
21-
WEAVIATE_125: 1.25.34
22-
WEAVIATE_126: 1.26.17
2321
WEAVIATE_127: 1.27.27
2422
WEAVIATE_128: 1.28.16
25-
WEAVIATE_129: 1.29.9
26-
WEAVIATE_130: 1.30.12
27-
WEAVIATE_131: 1.31.5
28-
WEAVIATE_132: 1.32.5
23+
WEAVIATE_129: 1.29.11
24+
WEAVIATE_130: 1.30.22
25+
WEAVIATE_131: 1.31.20
26+
WEAVIATE_132: 1.32.23
27+
WEAVIATE_133: 1.33.10
28+
WEAVIATE_134: 1.34.5
29+
WEAVIATE_135: 1.35.0
2930

3031
jobs:
3132
lint-and-format:
@@ -59,7 +60,7 @@ jobs:
5960
strategy:
6061
fail-fast: false
6162
matrix:
62-
version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
63+
version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
6364
folder: ["weaviate", "integration", "integration_embedded"]
6465
steps:
6566
- uses: actions/checkout@v4
@@ -79,7 +80,7 @@ jobs:
7980
strategy:
8081
fail-fast: false
8182
matrix:
82-
version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
83+
version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
8384
folder: ["test", "mock_tests"]
8485
steps:
8586
- uses: actions/checkout@v4
@@ -122,7 +123,7 @@ jobs:
122123
runs-on: ubuntu-latest
123124
strategy:
124125
matrix:
125-
version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
126+
version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
126127
optional_dependencies: [false]
127128
steps:
128129
- uses: actions/checkout@v4
@@ -153,11 +154,11 @@ jobs:
153154
fail-fast: false
154155
matrix:
155156
versions: [
156-
{ py: "3.9", weaviate: $WEAVIATE_131, grpc: "1.59.0"},
157-
{ py: "3.10", weaviate: $WEAVIATE_131, grpc: "1.66.0"},
158-
{ py: "3.11", weaviate: $WEAVIATE_131, grpc: "1.70.0"},
159-
{ py: "3.12", weaviate: $WEAVIATE_131, grpc: "1.72.1"},
160-
{ py: "3.13", weaviate: $WEAVIATE_131, grpc: "1.74.0"}
157+
{ py: "3.10", weaviate: $WEAVIATE_132, grpc: "1.59.0"},
158+
{ py: "3.11", weaviate: $WEAVIATE_132, grpc: "1.66.0"},
159+
{ py: "3.12", weaviate: $WEAVIATE_132, grpc: "1.70.0"},
160+
{ py: "3.13", weaviate: $WEAVIATE_132, grpc: "1.72.1"},
161+
{ py: "3.14", weaviate: $WEAVIATE_132, grpc: "1.76.0"}
161162
]
162163
optional_dependencies: [false]
163164
steps:
@@ -208,11 +209,11 @@ jobs:
208209
fail-fast: false
209210
matrix:
210211
versions: [
211-
{ py: "3.9", weaviate: $WEAVIATE_131},
212-
{ py: "3.10", weaviate: $WEAVIATE_131},
213-
{ py: "3.11", weaviate: $WEAVIATE_131},
214-
{ py: "3.12", weaviate: $WEAVIATE_131},
215-
{ py: "3.13", weaviate: $WEAVIATE_131}
212+
{ py: "3.10", weaviate: $WEAVIATE_132},
213+
{ py: "3.11", weaviate: $WEAVIATE_132},
214+
{ py: "3.12", weaviate: $WEAVIATE_132},
215+
{ py: "3.13", weaviate: $WEAVIATE_132},
216+
{ py: "3.14", weaviate: $WEAVIATE_132}
216217
]
217218
optional_dependencies: [false]
218219
steps:
@@ -297,14 +298,15 @@ jobs:
297298
fail-fast: false
298299
matrix:
299300
version: [
300-
$WEAVIATE_125,
301-
$WEAVIATE_126,
302301
$WEAVIATE_127,
303302
$WEAVIATE_128,
304303
$WEAVIATE_129,
305304
$WEAVIATE_130,
306305
$WEAVIATE_131,
307-
$WEAVIATE_132
306+
$WEAVIATE_132,
307+
$WEAVIATE_133,
308+
$WEAVIATE_134
309+
$WEAVIATE_135
308310
]
309311
steps:
310312
- name: Checkout

.pre-commit-config.yaml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ repos:
99

1010
- repo: https://github.com/astral-sh/ruff-pre-commit
1111
# Ruff version.
12-
rev: v0.11.7
12+
rev: v0.14.7
1313
hooks:
1414
# Run the linter.
1515
- id: ruff
@@ -19,24 +19,24 @@ repos:
1919
args: [ weaviate, integration, test, mock_tests, journey_tests ]
2020

2121
- repo: https://github.com/PyCQA/flake8
22-
rev: 7.1.0
22+
rev: 7.3.0
2323
hooks:
2424
- id: flake8
2525
name: linting
2626
additional_dependencies: [
27-
'flake8-bugbear==22.10.27',
28-
'flake8-comprehensions==3.10.1',
29-
'flake8-builtins==2.0.1'
27+
'flake8-bugbear==24.12.12',
28+
'flake8-comprehensions==3.17.0',
29+
'flake8-builtins==3.0.0'
3030
]
3131
- id: flake8
3232
name: docstrings
3333
additional_dependencies: [
3434
'flake8-docstrings==1.7.0',
35-
'pydoclint==0.6.5',
35+
'pydoclint==0.7.3',
3636
]
3737

3838
- repo: https://github.com/pre-commit/pre-commit-hooks
39-
rev: v4.6.0
39+
rev: v6.0.0
4040
hooks:
4141
- id: no-commit-to-branch
4242
- id: trailing-whitespace

.readthedocs.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ build:
1313
jobs:
1414
pre_build:
1515
- git clone -b main --depth=1 https://github.com/weaviate/weaviate-agents-python-client.git docs/weaviate-agents-python-client
16+
- python -m pip install -e ./docs/weaviate-agents-python-client
1617

1718
python:
1819
install:
19-
- requirements: requirements-devel.txt
20+
- requirements: requirements-devel.txt

CONTRIBUTING.md

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,12 @@
11
### Setup
22

3-
We recommend that you use a virtual environment to contribute to the client.
4-
5-
To create a virtual environment, activate it, and install dependencies, run the following shell code:
3+
The development requirements are listed in the `requirements-devel.txt` file. Install them to your virtual environment with:
64

75
```shell
8-
python3 -m venv .venv
9-
source .venv/bin/activate
106
pip install -r requirements-devel.txt
117
```
128

13-
To activate your virtual environment, run `source .venv/bin/activate`.
14-
15-
The newest client versions sometimes require upcoming Weaviate core features. We recommend using Docker (see https://weaviate.io/developers/weaviate/installation/docker-compose) to run a local instance of the `latest Weaviate core <https://hub.docker.com/r/semitechnologies/weaviate/tags>`_ for client development.
9+
The newest client versions sometimes require upcoming Weaviate core features. We recommend using Docker (see https://docs.weaviate.io/deploy/installation-guides/docker-installation) to run a local instance of the `latest Weaviate core <https://hub.docker.com/r/semitechnologies/weaviate/tags>`_ for client development.
1610

1711
#### Installation
1812

@@ -34,10 +28,16 @@ You can install a particular branch directly from GitHub with:
3428
pip install git+https://github.com/weaviate/weaviate-python-client.git@BRANCH_NAME
3529
```
3630

31+
If any static analysis tools such as Pylance fail, try installing the package with:
32+
`--config-settings editable_mode=compat` suffix. (e.g. `pip install -e . --config-settings editable_mode=compat`)
3733

3834
### Testing
3935

40-
> Note: We use [pytest](https://docs.pytest.org) to write tests for new client code. However, many older tests use [unittest](https://docs.python.org/3/library/unittest.html). These commands run the `pytest` and `unittest` tests.
36+
To set up the testing environment, install the test requirements with:
37+
38+
```shell
39+
pip install -r requirements-test.txt
40+
```
4141

4242
There are three kinds of tests:
4343
- Unit tests test individual client components.
@@ -67,9 +67,10 @@ pytest test
6767
> We strongly recommend using [pre-commit](https://pre-commit.com/) to automatically run all linters locally on each commit. Install `pre-commit` on your system, and then enable it with `pre-commit install`.
6868
6969
We use the following tools to ensure a high code quality:
70-
- black (formatter), run with `black $FOLDER_WITH_CHANGES`
71-
- flake8 with plugins. Run with `flake8 $FOLDER_WITH_CHANGES`. Note that all plugins are listed in the `requirements.txt` file and are installed in the first step.
70+
- ruff (formatter), run with `ruff format $FOLDER_WITH_CHANGES`
71+
- flake8 with plugins. Run with `flake8 $FOLDER_WITH_CHANGES`.
7272

73+
Note that all plugins are listed in the `requirements-devel.txt` file and are installed in the first step.
7374

7475
### Creating a Pull Request
7576

RELEASING.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
## How to create releases
2+
3+
### Step 1: Prepare for release
4+
1. Pull latest main
5+
- Merge any pending PRs
6+
2. Determine what the next version should be, following semantic versioning
7+
3. Create a new branch for the changelog
8+
4. Add a changelog entry to `docs/changelog.rst`
9+
- `gh pr list --repo weaviate/weaviate-python-client --state merged --search "merged:>=YYYY-MM-DD"` where `YYYY-MM-DD` is the last release date
10+
- Only add the relevant entries to the changelog
11+
- Examples - [minor release](https://github.com/weaviate/weaviate-python-client/releases/tag/v4.18.0), [patch release](https://github.com/weaviate/weaviate-python-client/releases/tag/v4.16.10)
12+
5. Merge back to main
13+
6. Pull main
14+
15+
### Step 2: Create release
16+
Option 1: With GH CLI
17+
1. `gh release create <VERSION_TAG>` (e.g. `gh release create v4.18.1`)
18+
19+
Option 2: With git + GH web UI
20+
1. git tag VERSION
21+
- `git tag -a v4.18.1 -m "v4.18.1"
22+
2. `git push --tags`
23+
3. Create a release [from the GH repo](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository?tool=webui#creating-a-release)
24+
25+
### Step 3: Monitor pipeline
26+
1. Monitor the CICD pipeline
27+
1. When all tests pass, the release will be pushed to PyPI automatically
28+
29+
### Notes:
30+
- The package version is updated automatically (see setup.cfg)

ci/docker-compose-backup.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ services:
3030
AUTHORIZATION_ENABLE_RBAC: "true"
3131
AUTHENTICATION_DB_USERS_ENABLED: "true"
3232
AUTHENTICATION_OIDC_ENABLED: 'true'
33-
AUTHENTICATION_OIDC_CLIENT_ID: 'wcs'
34-
AUTHENTICATION_OIDC_ISSUER: 'https://auth.wcs.api.weaviate.io/auth/realms/SeMI'
33+
AUTHENTICATION_OIDC_CLIENT_ID: 'Peuc12y02UA0eAED1dqSjE5HtGUrpBsx'
34+
AUTHENTICATION_OIDC_ISSUER: 'https://auth.weaviate.cloud/Peuc12y02UA0eAED1dqSjE5HtGUrpBsx'
3535
AUTHENTICATION_OIDC_USERNAME_CLAIM: 'email'
36-
AUTHENTICATION_OIDC_GROUPS_CLAIM: 'groups'
36+
AUTHENTICATION_OIDC_GROUPS_CLAIM: 'roles'
3737
...

ci/docker-compose-rbac.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ services:
2929
AUTHORIZATION_ENABLE_RBAC: "true"
3030
AUTHENTICATION_DB_USERS_ENABLED: "true"
3131
AUTHENTICATION_OIDC_ENABLED: 'true'
32-
AUTHENTICATION_OIDC_CLIENT_ID: 'wcs'
33-
AUTHENTICATION_OIDC_ISSUER: 'https://auth.wcs.api.weaviate.io/auth/realms/SeMI'
32+
AUTHENTICATION_OIDC_CLIENT_ID: 'Peuc12y02UA0eAED1dqSjE5HtGUrpBsx'
33+
AUTHENTICATION_OIDC_ISSUER: 'https://auth.weaviate.cloud/Peuc12y02UA0eAED1dqSjE5HtGUrpBsx'
3434
AUTHENTICATION_OIDC_USERNAME_CLAIM: 'email'
35-
AUTHENTICATION_OIDC_GROUPS_CLAIM: 'groups'
35+
AUTHENTICATION_OIDC_GROUPS_CLAIM: 'roles'
3636
...

ci/docker-compose-wcs.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ services:
1919
PERSISTENCE_DATA_PATH: '/var/lib/weaviate'
2020
AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'false'
2121
AUTHENTICATION_OIDC_ENABLED: 'true'
22-
AUTHENTICATION_OIDC_CLIENT_ID: 'wcs'
23-
AUTHENTICATION_OIDC_ISSUER: 'https://auth.wcs.api.weaviate.io/auth/realms/SeMI'
22+
AUTHENTICATION_OIDC_CLIENT_ID: 'Peuc12y02UA0eAED1dqSjE5HtGUrpBsx'
23+
AUTHENTICATION_OIDC_ISSUER: 'https://auth.weaviate.cloud/Peuc12y02UA0eAED1dqSjE5HtGUrpBsx'
2424
AUTHENTICATION_OIDC_USERNAME_CLAIM: 'email'
25-
AUTHENTICATION_OIDC_GROUPS_CLAIM: 'groups'
25+
AUTHENTICATION_OIDC_GROUPS_CLAIM: 'roles'
2626
AUTHORIZATION_ADMINLIST_ENABLED: 'true'
2727
AUTHORIZATION_ADMINLIST_USERS: 'oidc-test-user@weaviate.io'
2828
AUTHENTICATION_OIDC_SCOPES: 'openid,email'

docs/changelog.rst

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,73 @@
11
Changelog
22
=========
33

4+
Version 4.19.0
5+
--------------
6+
This minor version includes:
7+
- Support for new 1.35 features:
8+
- Add support for time-to-live (TTL) on objects
9+
- Add support for new ``multi2multivec-weaviate`` module
10+
- Enhance model integration helper functions
11+
- Add separate service-specific helpers for aws sagemaker vs bedrock, or google gemini vs vertex
12+
- Add BaseURL support for Cohere rerankers
13+
- Fix model provider parameters
14+
- Improve batch performance by optimizing checks for live threads
15+
- Update authlib
16+
17+
18+
Version 4.18.3
19+
--------------
20+
This patch version includes:
21+
- Fixes wrong deprecation warning in PyCharm when creating a collection without vectorizers
22+
- Fixes warnings with boolean filters
23+
24+
Version 4.18.2
25+
--------------
26+
This patch version includes:
27+
- Add support for contextual generative and reranker modules
28+
- Add support for ZSTD compression in backups
29+
- Add support for VoyageAI's voyage-3-large model
30+
31+
Version 4.18.1
32+
--------------
33+
This patch version includes:
34+
- Add 'dimensions' param to cohere vectorizers (feat/cohere-dimensions-param)
35+
- Add 'dimensions' parameter to text2vec-voyageai methods (feat/t2v-voyage-add-dimensions)
36+
37+
Version 4.18.0
38+
--------------
39+
This minor version includes:
40+
- Support for new 1.34 features:
41+
- 1-bit rotational quantization (RQ) for hnsw indices
42+
- 1-bit and 8-bit RQ for flat indices
43+
- Support for latest preview release of Server-side Batching (SSB)
44+
- Allow sorting backups by creation time
45+
- Add support for ``gse_ch`` tokenizer
46+
47+
Version 4.17.0
48+
--------------
49+
This minor version includes:
50+
- Remove support for Weaviate versions < 1.27. Please update your Weaviate instances
51+
- Support for new 1.33 features:
52+
- OIDC group support in RBAC
53+
- Uncompressed quantizer
54+
- ContainsNone and Not filter operators
55+
- Add support for ``verbosity`` and ``reasoning effort`` for generative-openai module
56+
- Add alias.exists method
57+
- Add multi2vec-aws and text2vec-morph modules
58+
- Add support for max_tokens for generative-aws module
59+
- Fix weaviate client installation with other packages depending on grpc-health-checking
60+
61+
Version 4.16.10
62+
--------------
63+
This patch version includes:
64+
- Addition of helper to create an uncompressed quantizer for use when not using default compression
65+
- Support for ``overwrite_alias`` option to backup create/restore
66+
- Support for OIDC groups
67+
- Addition of ``multi2vec-aws`` and ``text2vec-morph`` modules
68+
- Support for ``alias.exists`` method
69+
- Update to ``weaviate-agents-client`` dependency for GA release of agents
70+
471
Version 4.16.9
572
--------------
673
This patch version includes:

0 commit comments

Comments
 (0)