Visitar URL original
chore: Update virtualenv by ntkathole · Pull Request #6906 · feast-dev/feast · GitHub
Skip to content

chore: Update virtualenv - #6906

Merged
ntkathole merged 2 commits into
feast-dev:masterfrom
ntkathole:chore/update-virtualenv
Oct 8, 2026
Merged

ntkathole merged 2 commits into
feast-dev:masterfrom
ntkathole:chore/update-virtualenv

Conversation

@ntkathole

@ntkathole ntkathole commented Sep 30, 2026 •

Copy link
Copy Markdown
Member

Summary

  • Bump virtualenv to 21.14.1 in pyproject.toml
  • Rebase onto latest master and regenerate all Python requirement locks (make lock-python-dependencies-all)
  • Refresh root and infra/scripts/pixi pixi locks
  • Fix add_cpu_torch_hashes.py so universal --torch-backend cpu locks (with existing +cpu pins) regenerate cleanly

Test plan

  • CI Python unit / dependency install jobs pass
  • pre-commit / tooling that uses virtualenv still works
  • Confirm virtualenv==21.14.1 and python-discovery appear in CI locks

@ntkathole
ntkathole requested a review from a team as a code owner September 30, 2026 17:02
@codecov-commenter

codecov-commenter commented Sep 30, 2026 •

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

❌ Patch coverage is 53.84615% with 6 lines in your changes missing coverage. Please review.
✅ Project coverage is 49.49%. Comparing base (ec0a179) to head (9cc5420).

Files with missing lines Patch % Lines
...python/feast/permissions/auth/oidc_token_parser.py 25.00% 6 Missing ⚠️
❗ Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #6906      +/-   ##
==========================================
- Coverage   49.49%   49.49%   -0.01%     
==========================================
  Files         443      443              
  Lines       55450    55451       +1     
  Branches     8085     8085              
==========================================
  Hits        27443    27443              
- Misses      26109    26110       +1     
  Partials     1898     1898              
Flag Coverage Δ
go-feature-server 30.58% <ø> (ø)
python-unit 50.88% <53.84%> (-0.01%) ⬇️
Files with missing lines Coverage Δ
...infra/compute_engines/spark_application/compute.py 56.93% <100.00%> (ø)
...ast/infra/compute_engines/spark_application/job.py 64.44% <100.00%> (ø)
...python/feast/permissions/auth/oidc_token_parser.py 73.33% <25.00%> (-0.55%) ⬇️

Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ec0a179...9cc5420. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@ntkathole
ntkathole force-pushed the chore/update-virtualenv branch from 6932968 to bf20363 Compare October 1, 2026 04:38
@ntkathole
ntkathole force-pushed the chore/update-virtualenv branch 2 times, most recently from e764637 to 84be7e3 Compare October 7, 2026 12:45
@jyejare
jyejare requested a balanced review from Copilot October 8, 2026 04:42

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The universal-lock regression path lacks a test covering simultaneous plain and +cpu entries.

1 open finding
What changed in this PR

Updates virtualenv and regenerates Python dependency locks, with compatibility fixes for Kubernetes typing and CPU PyTorch lock generation.

Changes:

  • Pins virtualenv 21.14.1 and refreshes dependency locks.
  • Updates Kubernetes client type handling.
  • Handles existing +cpu PyTorch pins during lock regeneration.
File Description
pyproject.toml Pins virtualenv 21.14.1.
pixi.lock Synchronizes the virtualenv constraint.
infra/​scripts/​add_cpu_torch_hashes.py Preserves existing CPU-specific pins.
sdk/​python/​feast/​permissions/​auth/​oidc_token_parser.py Updates Kubernetes authentication typing.
sdk/​python/​feast/​infra/​compute_engines/​spark_application/​compute.py Types lazily initialized Kubernetes clients.
sdk/​python/​feast/​infra/​compute_engines/​spark_application/​job.py Types custom-object API responses.
sdk/​python/​requirements/​py3.12-requirements.txt Refreshes Python 3.12 dependencies.
sdk/​python/​requirements/​py3.12-minimal-sdist-requirements-build.txt Refreshes Python 3.12 build dependencies.
sdk/​python/​requirements/​py3.11-requirements.txt Refreshes Python 3.11 dependencies.
sdk/​python/​requirements/​py3.11-minimal-sdist-requirements-build.txt Refreshes Python 3.11 build dependencies.
sdk/​python/​requirements/​py3.10-requirements.txt Refreshes Python 3.10 dependencies.
sdk/​python/​requirements/​py3.10-minimal-sdist-requirements.txt Refreshes minimal sdist dependencies.
sdk/​python/​requirements/​py3.10-minimal-sdist-requirements-build.txt Refreshes minimal sdist build dependencies.
sdk/​python/​requirements/​py3.10-minimal-requirements.txt Refreshes minimal runtime dependencies.

🧠 Review effort: Balanced


Give feedback about Copilot approvals in this survey to enter a drawing for a $150 gift card.

Comment on lines +50 to +55
pins = sorted(
{
f"{match[1]}=={match[2].removesuffix('+cpu')}"
for match in TORCH_REQUIREMENT.finditer(contents)
if not match[2].endswith("+cpu")
}
ntkathole and others added 2 commits October 8, 2026 16:30
Bump virtualenv to 21.14.1 and refresh Python requirement locks and
pixi locks. Teach add_cpu_torch_hashes to skip existing +cpu torch pins
so lock regeneration succeeds with universal torch-backend output.

Signed-off-by: ntkathole <nikhilkathole2683@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Annotate deferred K8s API clients as Optional and narrow TokenReview
status / custom-object return types so lint-python passes with
kubernetes 37 stubs pulled in by the refreshed CI locks.

Signed-off-by: ntkathole <nikhilkathole2683@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@jyejare
jyejare force-pushed the chore/update-virtualenv branch from ac58a95 to 9cc5420 Compare October 8, 2026 11:00
@ntkathole
ntkathole merged commit 567da22 into feast-dev:master Oct 8, 2026
25 checks passed
ntkathole pushed a commit to haoxu0/feast that referenced this pull request Oct 9, 2026
feast-dev#6906 taught `add_cpu_hashes` to leave an existing `+cpu` pin alone, which
is what `make lock-python-dependencies-all` needed to get past

    ValueError: Missing CPU hashes for torch==2.14.1+cpu

That behaviour is still untested. Both existing tests pass a bare
`torch==2.13.0` as the requirements being patched and put `+cpu` only in
the lookup table, so neither exercises a `+cpu` entry on the side that
gets rewritten -- which is why the lock target could ship unable to run.

Two tests are added for the shape a real `--universal --torch-backend cpu`
resolve emits:

    torch==2.13.0 ; sys_platform == 'darwin'
    torch==2.13.0+cpu ; sys_platform != 'darwin'

one for a single package and one for the torch and torchvision pair the
committed locks actually contain. Both assert idempotency, and the second
asserts the `+cpu` line is left exactly as the resolver wrote it rather
than merged into, so a future change cannot widen the set of artifacts
that pin accepts without failing here.

No production code is touched; these pass against feast-dev#6906's fix as merged.

Signed-off-by: hao-xu5 <hxu44@apple.com>
ntkathole pushed a commit that referenced this pull request Oct 9, 2026
#6906 taught `add_cpu_hashes` to leave an existing `+cpu` pin alone, which
is what `make lock-python-dependencies-all` needed to get past

    ValueError: Missing CPU hashes for torch==2.14.1+cpu

That behaviour is still untested. Both existing tests pass a bare
`torch==2.13.0` as the requirements being patched and put `+cpu` only in
the lookup table, so neither exercises a `+cpu` entry on the side that
gets rewritten -- which is why the lock target could ship unable to run.

Two tests are added for the shape a real `--universal --torch-backend cpu`
resolve emits:

    torch==2.13.0 ; sys_platform == 'darwin'
    torch==2.13.0+cpu ; sys_platform != 'darwin'

one for a single package and one for the torch and torchvision pair the
committed locks actually contain. Both assert idempotency, and the second
asserts the `+cpu` line is left exactly as the resolver wrote it rather
than merged into, so a future change cannot widen the set of artifacts
that pin accepts without failing here.

No production code is touched; these pass against #6906's fix as merged.

Signed-off-by: hao-xu5 <hxu44@apple.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants