Skip to content

build(deps): update polars requirement from <1.36.0,>=0.20.26 to >=0.20.26,<1.37.0 #5677

build(deps): update polars requirement from <1.36.0,>=0.20.26 to >=0.20.26,<1.37.0

build(deps): update polars requirement from <1.36.0,>=0.20.26 to >=0.20.26,<1.37.0 #5677

Workflow file for this run

name: Main
on:
push:
branches:
- main
tags:
- '**'
paths-ignore:
- docs/**
- README.rst
- LICENSE.md
- publishing.md
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
WEAVIATE_127: 1.27.27
WEAVIATE_128: 1.28.16
WEAVIATE_129: 1.29.11
WEAVIATE_130: 1.30.22
WEAVIATE_131: 1.31.20
WEAVIATE_132: 1.32.23
WEAVIATE_133: 1.33.10
WEAVIATE_134: 1.34.5
WEAVIATE_135: 1.35.0
jobs:
lint-and-format:
name: Run Linter and Formatter
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
cache: 'pip' # caching pip dependencies
- run: pip install -r requirements-devel.txt
- name: "Ruff lint"
run: ruff check weaviate test mock_tests integration
- name: "Ruff format"
run: ruff format --diff weaviate test mock_tests integration
- name: "Flake 8"
run: flake8 weaviate test mock_tests integration
- name: "Check release for pypi"
run: |
python -m build
python -m twine check dist/*
- name: Build the docs (results don't matter)
run: |
cd docs
python -m sphinx -T -b html -d _build/doctrees -D language=en . html
type-checking:
name: Run Type Checking
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
folder: ["weaviate", "integration", "integration_embedded"]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.version }}
cache: 'pip' # caching pip dependencies
- run: pip install -r requirements-devel.txt
- uses: jakebailey/pyright-action@v2
with:
version: 1.1.399
working-directory: ${{ matrix.folder }}
unit-tests:
name: Run Unit Tests
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
folder: ["test", "mock_tests"]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.version }}
cache: 'pip' # caching pip dependencies
- run: pip install -r requirements-test.txt -r requirements-devel.txt
- name: Run unittests
run: pytest --cov -v --cov-report=term-missing --cov=weaviate --cov-report xml:coverage-${{ matrix.folder }}.xml ${{ matrix.folder }}
- name: Archive code coverage results
if: matrix.version == '3.10' && (github.ref_name != 'main')
uses: actions/upload-artifact@v4
with:
name: coverage-report-${{ matrix.folder }}
path: coverage-${{ matrix.folder }}.xml
proto-test:
name: Run importing protos test
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
grpc: ["1.59.5", "1.63.0", "1.65.0", "1.66.0", "1.68.0", "1.72.1", "1.73.0", "1.74.0"]
protobuf: ["4.25.8", "5.26.0", "5.27.4", "5.28.3", "5.29.0", "6.30.0", "6.31.1", "6.32.0"]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
cache: 'pip' # caching pip dependencies
- run: |
pip install -r requirements-test.txt -r requirements-devel.txt
pip install grpcio==${{ matrix.grpc }} protobuf==${{ matrix.protobuf }}
- name: Run proto test
run: pytest proto_test/test_proto.py
integration-tests-embedded:
name: Run Integration Tests Embedded
runs-on: ubuntu-latest
strategy:
matrix:
version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
optional_dependencies: [false]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.version }}
cache: 'pip' # caching pip dependencies
- run: |
pip install -r requirements-test.txt -r requirements-devel.txt
pip install .
- name: Run integration tests
if: ${{ !github.event.pull_request.head.repo.fork }}
run: pytest -v --cov --cov-report=term-missing --cov=weaviate --cov-report xml:coverage-integration-embedded.xml integration_embedded
- name: Archive code coverage results
if: matrix.version == '3.10' && (github.ref_name != 'main')
uses: actions/upload-artifact@v4
with:
name: coverage-report-integration-embedded
path: coverage-integration-embedded.xml
integration-tests:
name: Run Integration Tests
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
versions: [
{ py: "3.10", weaviate: $WEAVIATE_132, grpc: "1.59.0"},
{ py: "3.11", weaviate: $WEAVIATE_132, grpc: "1.66.0"},
{ py: "3.12", weaviate: $WEAVIATE_132, grpc: "1.70.0"},
{ py: "3.13", weaviate: $WEAVIATE_132, grpc: "1.72.1"},
{ py: "3.14", weaviate: $WEAVIATE_132, grpc: "1.76.0"}
]
optional_dependencies: [false]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.versions.py }}
cache: 'pip' # caching pip dependencies
- name: Login to Docker Hub
uses: docker/login-action@v3
if: ${{ !github.event.pull_request.head.repo.fork && github.triggering_actor != 'dependabot[bot]' }}
with:
username: ${{secrets.DOCKER_USERNAME}}
password: ${{secrets.DOCKER_PASSWORD}}
- run: |
pip install -r requirements-test.txt
pip install grpcio==${{ matrix.versions.grpc }} grpcio-tools==${{ matrix.versions.grpc }} grpcio-health-checking==${{ matrix.versions.grpc }}
pip install .
- name: start weaviate
run: /bin/bash ci/start_weaviate.sh ${{ matrix.versions.weaviate }}
- name: Run integration tests with auth secrets
if: ${{ !github.event.pull_request.head.repo.fork && github.triggering_actor != 'dependabot[bot]' }}
env:
OKTA_CLIENT_SECRET: ${{ secrets.OKTA_CLIENT_SECRET }}
WCS_DUMMY_CI_PW: ${{ secrets.WCS_DUMMY_CI_PW }}
OKTA_DUMMY_CI_PW: ${{ secrets.OKTA_DUMMY_CI_PW }}
# OPENAI_APIKEY: ${{ secrets.OPENAI_APIKEY }} disabled until we have a working key
run: pytest -n auto --dist loadgroup -v --cov --cov-report=term-missing --cov=weaviate --cov-report xml:coverage-integration.xml integration
- name: Run integration tests without auth secrets (for forks)
if: ${{ github.event.pull_request.head.repo.fork || github.triggering_actor == 'dependabot[bot]' }}
run: pytest -n auto --dist loadgroup -v --cov --cov-report=term-missing --cov=weaviate --cov-report xml:coverage-integration.xml integration
- name: Archive code coverage results
if: matrix.versions.py == '3.10' && (github.ref_name != 'main')
uses: actions/upload-artifact@v4
with:
name: coverage-report-integration
path: coverage-integration.xml
- name: stop weaviate
run: /bin/bash ci/stop_weaviate.sh ${{ matrix.versions.weaviate }}
journey-tests:
name: Run Journey Tests
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
versions: [
{ py: "3.10", weaviate: $WEAVIATE_132},
{ py: "3.11", weaviate: $WEAVIATE_132},
{ py: "3.12", weaviate: $WEAVIATE_132},
{ py: "3.13", weaviate: $WEAVIATE_132},
{ py: "3.14", weaviate: $WEAVIATE_132}
]
optional_dependencies: [false]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
cache: 'pip' # caching pip dependencies
- name: Login to Docker Hub
uses: docker/login-action@v3
if: ${{ !github.event.pull_request.head.repo.fork && github.triggering_actor != 'dependabot[bot]' }}
with:
username: ${{secrets.DOCKER_USERNAME}}
password: ${{secrets.DOCKER_PASSWORD}}
- run: pip install -r requirements-test.txt -r requirements-devel.txt
- run: pip install .
- name: start weaviate
run: /bin/bash ci/start_weaviate_jt.sh ${{ matrix.versions.weaviate }}
- name: Run journey tests
run: ./journey_tests/run.sh
- name: stop weaviate
run: /bin/bash ci/stop_weaviate.sh ${{ matrix.versions.weaviate }}
Codecov:
needs: [Unit-Tests, Integration-Tests]
runs-on: ubuntu-latest
if: github.ref_name != 'main'
steps:
- uses: actions/checkout@v4
- name: Download coverage artifacts mock
uses: actions/download-artifact@v4
with:
name: coverage-report-mock_tests
- name: Download coverage artifacts unit
uses: actions/download-artifact@v4
with:
name: coverage-report-test
- name: Download coverage integration
uses: actions/download-artifact@v4
with:
name: coverage-report-integration
- name: Download coverage integration embedded
uses: actions/download-artifact@v4
with:
name: coverage-report-integration-embedded
- name: Codecov
uses: codecov/codecov-action@v4
with:
fail_ci_if_error: true
files: ./coverage-integration.xml, ./coverage-integration-embedded.xml, ./coverage-test.xml, ./coverage-mock_tests.xml
verbose: true
token: ${{ secrets.CODECOV_TOKEN }}
build-package:
name: Build package
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: "3.11"
cache: 'pip' # caching pip dependencies
- name: Install dependencies
run: pip install -r requirements-test.txt -r requirements-devel.txt
- name: Build a binary wheel
run: python -m build
- name: Create Wheel Artifacts
uses: actions/upload-artifact@v4
with:
path: "dist/*.whl"
name: weaviate-python-client-wheel
retention-days: 30
test-package:
needs: [build-package]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
version: [
$WEAVIATE_127,
$WEAVIATE_128,
$WEAVIATE_129,
$WEAVIATE_130,
$WEAVIATE_131,
$WEAVIATE_132,
$WEAVIATE_133,
$WEAVIATE_134
$WEAVIATE_135
]
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Login to Docker Hub
uses: docker/login-action@v3
if: ${{ !github.event.pull_request.head.repo.fork && github.triggering_actor != 'dependabot[bot]' }}
with:
username: ${{secrets.DOCKER_USERNAME}}
password: ${{secrets.DOCKER_PASSWORD}}
- name: Download build artifact to append to release
uses: actions/download-artifact@v4
with:
name: weaviate-python-client-wheel
- run: |
pip install -r requirements-test.txt # install test dependencies
pip install weaviate_client-*.whl
- run: rm -r weaviate
- name: start weaviate
run: /bin/bash ci/start_weaviate.sh ${{ matrix.version }}
- name: Run integration tests without auth secrets (auth tests ran in previous job)
run: pytest -v -n auto --dist loadgroup integration
build-and-publish:
name: Build and publish Python 🐍 distributions 📦 to PyPI and TestPyPI
needs: [integration-tests, unit-tests, lint-and-format, type-checking, test-package, proto-test]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: "3.11"
cache: 'pip' # caching pip dependencies
- name: Install dependencies
run: pip install -r requirements-devel.txt
- name: Build a binary wheel
run: python -m build
- name: Publish distribution 📦 to PyPI on new tags
if: startsWith(github.ref, 'refs/tags')
uses: pypa/gh-action-pypi-publish@release/v1
with:
verbose: true
password: ${{ secrets.PYPI_API_TOKEN }}
gh-release:
name: Create a GitHub Release on new tags
if: startsWith(github.ref, 'refs/tags')
runs-on: ubuntu-latest
needs: [build-and-publish]
steps:
- name: Download build artifact to append to release
uses: actions/download-artifact@v4
with:
name: weaviate-python-client-wheel
path: dist
- name: Release
uses: softprops/action-gh-release@v1
with:
generate_release_notes: true
draft: true
files: dist/*.whl