chore: Change dev workflow to use uv (and pixi) both for lock and install by tokoko · Pull Request #4166 · feast-dev/feast
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
uvfor setting up local development. I changed env install step (step 9) to runmake 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-pythoncommands to use uv instead of pip-tools. dev guide now recommends the usage oflock-python-dependencies-allcommand 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 addfeast (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.
| 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.
|
|
||
| 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
| 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