◐ Shell
clean mode source ↗

chore: Change dev workflow to use uv (and pixi) both for lock and install by tokoko · Pull Request #4166 · feast-dev/feast

@tokoko

What this PR does / why we need it:

This PR makes a number of changes to the make commands and dev guide:

  • docs now recommend using uv for setting up local development. I changed env install step (step 9) to run make install-python-ci-dependencies-uv, which differs from the current version in 2 ways: 1) It's using uv instead of pip 2) It's installing package versions from the lock file rather than resolving versions from pypi. This will make local env more predictable and comparable to ci environment which uses the same make command. (Let me know if you disagree with this...)
  • Changed all lock-python commands to use uv instead of pip-tools. dev guide now recommends the usage of lock-python-dependencies-all command to update lock files. This command relies on uv and pixi to update lock files for all python versions. (if you want to avoid pixi dependency, you can still run individual commands for each python env) Note that it's important that we all switch to using uv for lock file updates as lock files generated aren't 100% identical to pip-tools generates files in terms of formatting. (see diffs in this PR for an example, the biggest difference is that uv doesn't add feast (setup.py) comment in the files) If some people still keep using pip-tools and others switch to uv for locking, we will generate unnecessary formatting diffs in lock files.

franciscojavierarceo

7. (Optional) install pixi
pixi is necessary to run step 8 for all python versions at once.
```sh
brew install mysql

Choose a reason for hiding this comment

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

We removed this?

Choose a reason for hiding this comment

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

This was necessary for mysqlclient which was removed in #3925. pymysql doesn't require any native dependencies.

franciscojavierarceo


This will allow the installed feast version to automatically reflect changes to your local development version of Feast without needing to reinstall everytime you make code changes.

10. Compile the protubufs

Choose a reason for hiding this comment

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

Do we no longer need the compile the protos? if someone makes a Message change we will, no?

Choose a reason for hiding this comment

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

We do, it's just part of the make install-python-ci-dependencies-uv already

franciscojavierarceo

This will allow the installed feast version to automatically reflect changes to your local development version of Feast without needing to reinstall everytime you make code changes.

10. Compile the protubufs
make lock-python-dependencies-all

Choose a reason for hiding this comment

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

nice

Signed-off-by: tokoko <togurg14@freeuni.edu.ge>
Signed-off-by: tokoko <togurg14@freeuni.edu.ge>
Signed-off-by: tokoko <togurg14@freeuni.edu.ge>

jeremyary