Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: Adding protobuf<5 as a required dependency due to snowflake limitations #4537

Merged
merged 4 commits into from
Sep 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/build_wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ jobs:
# There's a `git restore` in here because `make install-go-ci-dependencies` is actually messing up go.mod & go.sum.
run: |
pip install -U pip setuptools wheel twine
make install-protoc-dependencies
make build-ui
git status
git restore go.mod go.sum
Expand Down
19 changes: 12 additions & 7 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -52,13 +52,16 @@ install-python-ci-dependencies-uv-venv:
uv pip install --no-deps -e .
python setup.py build_python_protos --inplace

install-protoc-dependencies:
pip install "protobuf<5" "grpcio-tools>=1.56.2,<2" "mypy-protobuf>=3.1"

lock-python-ci-dependencies:
uv pip compile --system --no-strip-extras setup.py --extra ci --output-file sdk/python/requirements/py$(PYTHON_VERSION)-ci-requirements.txt

package-protos:
cp -r ${ROOT_DIR}/protos ${ROOT_DIR}/sdk/python/feast/protos

compile-protos-python:
compile-protos-python: install-protoc-dependencies
python setup.py build_python_protos --inplace

install-python:
Expand All @@ -69,12 +72,14 @@ lock-python-dependencies:
uv pip compile --system --no-strip-extras setup.py --output-file sdk/python/requirements/py$(PYTHON_VERSION)-requirements.txt

lock-python-dependencies-all:
pixi run --environment py39 --manifest-path infra/scripts/pixi/pixi.toml "uv pip compile --system --no-strip-extras setup.py --output-file sdk/python/requirements/py3.9-requirements.txt"
pixi run --environment py39 --manifest-path infra/scripts/pixi/pixi.toml "uv pip compile --system --no-strip-extras setup.py --extra ci --output-file sdk/python/requirements/py3.9-ci-requirements.txt"
pixi run --environment py310 --manifest-path infra/scripts/pixi/pixi.toml "uv pip compile --system --no-strip-extras setup.py --output-file sdk/python/requirements/py3.10-requirements.txt"
pixi run --environment py310 --manifest-path infra/scripts/pixi/pixi.toml "uv pip compile --system --no-strip-extras setup.py --extra ci --output-file sdk/python/requirements/py3.10-ci-requirements.txt"
pixi run --environment py311 --manifest-path infra/scripts/pixi/pixi.toml "uv pip compile --system --no-strip-extras setup.py --output-file sdk/python/requirements/py3.11-requirements.txt"
pixi run --environment py311 --manifest-path infra/scripts/pixi/pixi.toml "uv pip compile --system --no-strip-extras setup.py --extra ci --output-file sdk/python/requirements/py3.11-ci-requirements.txt"
# Remove all existing requirements because we noticed the lock file is not always updated correctly. Removing and running the command again ensures that the lock file is always up to date.
rm -r sdk/python/requirements/*
pixi run --environment py39 --manifest-path infra/scripts/pixi/pixi.toml "uv pip compile -p 3.9 --system --no-strip-extras setup.py --output-file sdk/python/requirements/py3.9-requirements.txt"
pixi run --environment py39 --manifest-path infra/scripts/pixi/pixi.toml "uv pip compile -p 3.9 --system --no-strip-extras setup.py --extra ci --output-file sdk/python/requirements/py3.9-ci-requirements.txt"
pixi run --environment py310 --manifest-path infra/scripts/pixi/pixi.toml "uv pip compile -p 3.10 --system --no-strip-extras setup.py --output-file sdk/python/requirements/py3.10-requirements.txt"
pixi run --environment py310 --manifest-path infra/scripts/pixi/pixi.toml "uv pip compile -p 3.10 --system --no-strip-extras setup.py --extra ci --output-file sdk/python/requirements/py3.10-ci-requirements.txt"
pixi run --environment py311 --manifest-path infra/scripts/pixi/pixi.toml "uv pip compile -p 3.11 --system --no-strip-extras setup.py --output-file sdk/python/requirements/py3.11-requirements.txt"
pixi run --environment py311 --manifest-path infra/scripts/pixi/pixi.toml "uv pip compile -p 3.11 --system --no-strip-extras setup.py --extra ci --output-file sdk/python/requirements/py3.11-ci-requirements.txt"

benchmark-python:
IS_TEST=True python -m pytest --integration --benchmark --benchmark-autosave --benchmark-save-data sdk/python/tests
Expand Down
72 changes: 38 additions & 34 deletions sdk/python/requirements/py3.10-ci-requirements.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This file was autogenerated by uv via the following command:
# uv pip compile --system --no-strip-extras setup.py --extra ci --output-file sdk/python/requirements/py3.10-ci-requirements.txt
# uv pip compile -p 3.10 --system --no-strip-extras setup.py --extra ci --output-file sdk/python/requirements/py3.10-ci-requirements.txt
aiobotocore==2.15.0
# via feast (setup.py)
aiohappyeyeballs==2.4.0
Expand All @@ -16,7 +16,7 @@ altair==4.2.2
# via great-expectations
annotated-types==0.7.0
# via pydantic
anyio==4.4.0
anyio==4.5.0
# via
# httpx
# jupyter-server
Expand Down Expand Up @@ -51,13 +51,13 @@ attrs==24.2.0
# aiohttp
# jsonschema
# referencing
azure-core==1.30.2
azure-core==1.31.0
# via
# azure-identity
# azure-storage-blob
azure-identity==1.17.1
# via feast (setup.py)
azure-storage-blob==12.22.0
azure-storage-blob==12.23.0
# via feast (setup.py)
babel==2.16.0
# via
Expand Down Expand Up @@ -144,11 +144,11 @@ cryptography==42.0.8
# types-redis
cython==3.0.11
# via thriftpy2
dask[dataframe]==2024.8.2
dask[dataframe]==2024.9.0
# via
# feast (setup.py)
# dask-expr
dask-expr==1.1.13
dask-expr==1.1.14
# via dask
db-dtypes==1.3.0
# via google-cloud-bigquery
Expand All @@ -158,7 +158,7 @@ decorator==5.1.1
# via ipython
defusedxml==0.7.1
# via nbconvert
deltalake==0.19.2
deltalake==0.20.0
# via feast (setup.py)
deprecation==2.1.0
# via python-keycloak
Expand Down Expand Up @@ -187,11 +187,11 @@ execnet==2.1.1
# via pytest-xdist
executing==2.1.0
# via stack-data
fastapi==0.114.1
fastapi==0.115.0
# via feast (setup.py)
fastjsonschema==2.20.0
# via nbformat
filelock==3.16.0
filelock==3.16.1
# via
# snowflake-connector-python
# virtualenv
Expand Down Expand Up @@ -256,7 +256,7 @@ googleapis-common-protos[grpc]==1.65.0
# google-api-core
# grpc-google-iam-v1
# grpcio-status
great-expectations==0.18.20
great-expectations==0.18.21
# via feast (setup.py)
grpc-google-iam-v1==0.13.1
# via google-cloud-bigtable
Expand Down Expand Up @@ -302,15 +302,15 @@ httpx==0.27.2
# feast (setup.py)
# jupyterlab
# python-keycloak
ibis-framework[duckdb]==9.4.0
ibis-framework[duckdb]==9.5.0
# via
# feast (setup.py)
# ibis-substrait
ibis-substrait==4.0.1
# via feast (setup.py)
identify==2.6.0
identify==2.6.1
# via pre-commit
idna==3.8
idna==3.10
# via
# anyio
# httpx
Expand All @@ -321,7 +321,9 @@ idna==3.8
imagesize==1.4.1
# via sphinx
importlib-metadata==8.5.0
# via dask
# via
# build
# dask
iniconfig==2.0.0
# via pytest
ipykernel==6.29.5
Expand Down Expand Up @@ -372,7 +374,7 @@ jsonschema[format-nongpl]==4.23.0
# nbformat
jsonschema-specifications==2023.12.1
# via jsonschema
jupyter-client==8.6.2
jupyter-client==8.6.3
# via
# ipykernel
# jupyter-server
Expand Down Expand Up @@ -438,7 +440,7 @@ mistune==3.0.2
# via
# great-expectations
# nbconvert
mmh3==4.1.0
mmh3==5.0.0
# via feast (setup.py)
mock==2.0.0
# via feast (setup.py)
Expand Down Expand Up @@ -506,6 +508,7 @@ packaging==24.1
# google-cloud-bigquery
# great-expectations
# gunicorn
# ibis-framework
# ibis-substrait
# ipykernel
# jupyter-server
Expand Down Expand Up @@ -570,8 +573,9 @@ proto-plus==1.24.0
# google-cloud-bigquery-storage
# google-cloud-bigtable
# google-cloud-datastore
protobuf==4.25.4
protobuf==4.25.5
# via
# feast (setup.py)
# google-api-core
# google-cloud-bigquery-storage
# google-cloud-bigtable
Expand All @@ -590,11 +594,11 @@ psutil==5.9.0
# via
# feast (setup.py)
# ipykernel
psycopg[binary, pool]==3.2.1
psycopg[binary, pool]==3.2.2
# via feast (setup.py)
psycopg-binary==3.2.1
psycopg-binary==3.2.2
# via psycopg
psycopg-pool==3.2.2
psycopg-pool==3.2.3
# via psycopg
ptyprocess==0.7.0
# via
Expand Down Expand Up @@ -629,12 +633,12 @@ pybindgen==0.22.1
# via feast (setup.py)
pycparser==2.22
# via cffi
pydantic==2.9.1
pydantic==2.9.2
# via
# feast (setup.py)
# fastapi
# great-expectations
pydantic-core==2.23.3
pydantic-core==2.23.4
# via pydantic
pygments==2.18.0
# via
Expand Down Expand Up @@ -739,7 +743,7 @@ referencing==0.35.1
# jsonschema
# jsonschema-specifications
# jupyter-events
regex==2024.7.24
regex==2024.9.11
# via
# feast (setup.py)
# parsimonious
Expand Down Expand Up @@ -790,15 +794,15 @@ ruamel-yaml==0.17.40
# via great-expectations
ruamel-yaml-clib==0.2.8
# via ruamel-yaml
ruff==0.6.4
ruff==0.6.5
# via feast (setup.py)
s3transfer==0.10.2
# via boto3
scipy==1.14.1
# via great-expectations
send2trash==1.8.3
# via jupyter-server
setuptools==74.1.2
setuptools==75.1.0
# via
# grpcio-tools
# jupyterlab
Expand Down Expand Up @@ -826,7 +830,7 @@ sniffio==1.3.1
# httpx
snowballstemmer==2.2.0
# via sphinx
snowflake-connector-python[pandas]==3.12.1
snowflake-connector-python[pandas]==3.12.2
# via feast (setup.py)
sortedcontainers==2.4.0
# via snowflake-connector-python
Expand All @@ -846,9 +850,9 @@ sphinxcontrib-qthelp==2.0.0
# via sphinx
sphinxcontrib-serializinghtml==2.0.0
# via sphinx
sqlalchemy[mypy]==2.0.34
sqlalchemy[mypy]==2.0.35
# via feast (setup.py)
sqlglot==25.18.0
sqlglot==25.20.1
# via ibis-framework
sqlite-vec==0.1.1
# via feast (setup.py)
Expand All @@ -858,7 +862,7 @@ stack-data==0.6.3
# via ipython
starlette==0.38.5
# via fastapi
substrait==0.22.0
substrait==0.23.0
# via ibis-substrait
tabulate==0.9.0
# via feast (setup.py)
Expand Down Expand Up @@ -939,15 +943,15 @@ types-python-dateutil==2.9.0.20240906
# via
# feast (setup.py)
# arrow
types-pytz==2024.1.0.20240417
types-pytz==2024.2.0.20240913
# via feast (setup.py)
types-pyyaml==6.0.12.20240808
types-pyyaml==6.0.12.20240917
# via feast (setup.py)
types-redis==4.6.0.20240903
# via feast (setup.py)
types-requests==2.30.0.0
# via feast (setup.py)
types-setuptools==74.1.0.20240907
types-setuptools==75.1.0.20240917
# via
# feast (setup.py)
# types-cffi
Expand Down Expand Up @@ -986,7 +990,7 @@ tzlocal==5.2
# trino
uri-template==1.3.0
# via jsonschema
urllib3==2.2.2
urllib3==2.2.3
# via
# feast (setup.py)
# botocore
Expand Down Expand Up @@ -1038,5 +1042,5 @@ xmltodict==0.13.0
# via moto
yarl==1.11.1
# via aiohttp
zipp==3.20.1
zipp==3.20.2
# via importlib-metadata
Loading
Loading