Skip to content

Commit a56766e

Browse files
shuchuSHUCHU HANpatelchaitanyaborgatinCopilot
authored
fix: Retire the support of Python3.10 (#7101)
* fix: Retire the support of Python3.10. Signed-off-by: SHUCHU HAN <[email protected]> Signed-off-by: SHUCHU HAN <[email protected]> * fix: Update the pyproject.toml file. Signed-off-by: Shuchu Han <[email protected]> Signed-off-by: SHUCHU HAN <[email protected]> * fix: Update the pixi.lock. Signed-off-by: Shuchu Han <[email protected]> Signed-off-by: SHUCHU HAN <[email protected]> * fix: Update the pixi.lock with python3.11 Signed-off-by: Shuchu Han <[email protected]> Signed-off-by: SHUCHU HAN <[email protected]> * fix: Fix snowflake_udf unit test error. Signed-off-by: Shuchu Han <[email protected]> Signed-off-by: SHUCHU HAN <[email protected]> * fix: Pin build dependencies of source builds to the CI lock (#7104) sqlglotc has no Python 3.10 wheels on PyPI, so on 3.10 uv builds sqlglotc==30.21.0 from source. Its build pulls the newest unpinned sqlglot, whose Schema class is no longer a mypyc trait, and mypyc fails with "Multiple inheritance is not supported (except for traits)". Pass the CI lock as --build-constraints so source builds use the locked versions (sqlglot==30.21.0) instead of the newest release. Signed-off-by: Chaitany Patel <[email protected]> Signed-off-by: SHUCHU HAN <[email protected]> * feat: Add --gc-freeze option to feast serve (#7089) Signed-off-by: SHUCHU HAN <[email protected]> * ci: Pin Java 17 for HDFS registration tests (#7106) Signed-off-by: Chaitany Patel <[email protected]> Co-authored-by: Shuchu Han <[email protected]> Signed-off-by: SHUCHU HAN <[email protected]> * ci: Align Pixi version with shared lockfile (#7105) * Initial plan * ci: Align Pixi version with shared lockfile Co-authored-by: shuchu <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: shuchu <[email protected]> Co-authored-by: Shuchu Han <[email protected]> Signed-off-by: SHUCHU HAN <[email protected]> * Update dependencies in pyproject.toml for ray Co-authored-by: Copilot Autofix powered by AI <[email protected]> Signed-off-by: SHUCHU HAN <[email protected]> * fix: Update the pixi.lock. Signed-off-by: Shuchu Han <[email protected]> Signed-off-by: SHUCHU HAN <[email protected]> --------- Signed-off-by: SHUCHU HAN <[email protected]> Signed-off-by: SHUCHU HAN <[email protected]> Signed-off-by: Shuchu Han <[email protected]> Signed-off-by: Chaitany Patel <[email protected]> Co-authored-by: SHUCHU HAN <[email protected]> Co-authored-by: Chaitany Patel <[email protected]> Co-authored-by: Alexandr Borgatin <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: shuchu <[email protected]> Co-authored-by: Copilot Autofix powered by AI <[email protected]>
1 parent fde9529 commit a56766e

21 files changed

Lines changed: 3463 additions & 17836 deletions

File tree

‎.github/workflows/build_wheels.yml‎

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -135,12 +135,8 @@ jobs:
135135
strategy:
136136
matrix:
137137
os: [ ubuntu-latest, macos-14 ]
138-
python-version: [ "3.10", "3.11", "3.12"]
138+
python-version: ["3.11", "3.12"]
139139
from-source: [ True, False ]
140-
exclude:
141-
# Skip macOS 14 with Python 3.10 due to gettext library issues
142-
- os: macos-14
143-
python-version: "3.10"
144140
env:
145141
# this script is for testing servers
146142
# it starts server with timeout and checks whether process killed by timeout (started healthy) or died by itself
@@ -191,13 +187,13 @@ jobs:
191187
VERSION_WITHOUT_PREFIX: ${{ steps.get-version.outputs.version_without_prefix }}
192188
run: |
193189
feast version
194-
if ! VERSION_OUTPUT=$(feast version); then
195-
echo "Error: Failed to get Feast version."
196-
exit 1
197-
fi
198-
VERSION_OUTPUT=$(printf '%s\n' "$VERSION_OUTPUT" | python -c 'import re, sys; print(re.sub(r"\x1b\[[0-9;]*[A-Za-z]", "", sys.stdin.read()).strip())')
199-
VERSION_REGEX='[0-9]+\.[0-9]+\.[0-9]+(\.dev[0-9]+)?'
200-
OUTPUT_REGEX="^Feast SDK Version: \"${VERSION_REGEX}\"$"
190+
if ! VERSION_OUTPUT=$(feast version); then
191+
echo "Error: Failed to get Feast version."
192+
exit 1
193+
fi
194+
VERSION_OUTPUT=$(printf '%s\n' "$VERSION_OUTPUT" | python -c 'import re, sys; print(re.sub(r"\x1b\[[0-9;]*[A-Za-z]", "", sys.stdin.read()).strip())')
195+
VERSION_REGEX='[0-9]+\.[0-9]+\.[0-9]+(\.dev[0-9]+)?'
196+
OUTPUT_REGEX="^Feast SDK Version: \"${VERSION_REGEX}\"$"
201197
VERSION=$(echo "$VERSION_OUTPUT" | grep -oE "$VERSION_REGEX")
202198
OUTPUT=$(echo "$VERSION_OUTPUT" | grep -E "$OUTPUT_REGEX")
203199
echo "Installed Feast Version: $VERSION and using Feast Version: $VERSION_WITHOUT_PREFIX"

‎.github/workflows/master_only.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
strategy:
1313
fail-fast: false
1414
matrix:
15-
python-version: ["3.10", "3.11", "3.12"]
15+
python-version: ["3.11", "3.12"]
1616
os: [ ubuntu-latest ]
1717
env:
1818
OS: ${{ matrix.os }}

‎.github/workflows/unit_tests.yml‎

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,9 @@ jobs:
2424
strategy:
2525
fail-fast: false
2626
matrix:
27-
python-version: ["3.10", "3.11", "3.12"]
27+
python-version: ["3.11", "3.12"]
2828
os: [ ubuntu-latest, macos-14 ]
29-
exclude:
30-
- os: macos-14
31-
python-version: "3.10"
32-
29+
3330
env:
3431
OS: ${{ matrix.os }}
3532
PYTHON: ${{ matrix.python-version }}

‎.gitpod.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ tasks:
88
uv pip install pre-commit
99
pre-commit install --hook-type pre-commit --hook-type pre-push
1010
source .venv/bin/activate
11-
export PYTHON=3.10 && make install-python-dependencies-dev
11+
export PYTHON=3.11 && make install-python-dependencies-dev
1212
# git config --global alias.ci 'commit -s'
1313
# git config --global alias.sw switch
1414
# git config --global alias.st status

‎.readthedocs.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ version: 2
33
build:
44
os: ubuntu-24.04
55
tools:
6-
python: "3.10"
6+
python: "3.11"
77

88
sphinx:
99
configuration: sdk/python/docs/source/conf.py

‎Makefile‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ endif
3939
TRINO_VERSION ?= 376
4040
PYTHON_VERSION = ${shell python --version | grep -Eo '[0-9]\.[0-9]+'}
4141

42-
PYTHON_VERSIONS := 3.10 3.11 3.12
42+
PYTHON_VERSIONS := 3.11 3.12
4343

4444
define get_env_name
4545
$(subst .,,py$(1))

‎docs/reference/alpha-vector-database.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,7 @@ If you are using `pyenv` to manage your Python versions, you can install the SQL
458458
PYTHON_CONFIGURE_OPTS="--enable-loadable-sqlite-extensions" \
459459
LDFLAGS="-L/opt/homebrew/opt/sqlite/lib" \
460460
CPPFLAGS="-I/opt/homebrew/opt/sqlite/include" \
461-
pyenv install 3.10.14
461+
pyenv install 3.11
462462
```
463463

464464
And you can the Feast install package via:

‎docs/reference/compute-engine/snowflake.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@ batch_engine:
2424
role: sysadmin
2525
warehouse: demo_wh
2626
database: FEAST
27-
python_udf_runtime_version: "3.10"
27+
python_udf_runtime_version: "3.11"
2828
```
2929
{% endcode %}
3030
3131
## Configuration
3232
33-
* `python_udf_runtime_version` *(optional, default: `"3.10"`)* -- The Snowflake Python UDF `RUNTIME_VERSION` used when Feast deploys its materialization UDFs. Snowflake periodically decommissions old Python UDF runtimes (for example, the 3.9 runtime was decommissioned, requiring Feast to bump its default to 3.10 -- see [#6606](https://github.com/feast-dev/feast/issues/6606)). If Snowflake decommissions the 3.10 runtime in the future, set this field to a still-supported version (e.g. `"3.11"`) instead of waiting for a new Feast release.
33+
* `python_udf_runtime_version` *(optional, default: `"3.11"`)* -- The Snowflake Python UDF `RUNTIME_VERSION` used when Feast deploys its materialization UDFs. Snowflake periodically decommissions old Python UDF runtimes (for example, the 3.9 runtime was decommissioned, requiring Feast to bump its default to 3.11 -- see [#6606](https://github.com/feast-dev/feast/issues/6606)). If Snowflake decommissions the 3.11 runtime in the future, set this field to a still-supported version (e.g. `"3.12"`) instead of waiting for a new Feast release.

‎docs/tutorials/rag-with-docling.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ The typical RAG process involves:
2020

2121
## Prerequisites
2222

23-
- Python 3.10 or later
23+
- Python 3.11 or later
2424
- Feast installed with Milvus support: `pip install feast[milvus, nlp]`
2525
- A basic understanding of feature stores and vector embeddings
2626

‎examples/agent_feature_store/README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ Feast is a natural fit for this checkpoint layer because it already provides:
111111

112112
## Prerequisites
113113

114-
- Python 3.10+
114+
- Python 3.11+
115115
- Feast with MCP and Milvus support
116116
- OpenAI API key (for live tool-calling; demo mode works without it)
117117

0 commit comments

Comments
 (0)