-
Notifications
You must be signed in to change notification settings - Fork 338
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
Improve python dependency management for our examples #5862
Comments
We should consider doing this first in order to check we don't break things: |
My proposal would be to add one task per python (and C++? and C? and whichever comes next?) example in the root pixi.toml file, using pixi's various task/environment related features to deal with conflicting dependencies, should any arise. The supported way to run these examples would be For python users that don't want to go through this for whatever reason, we could have a simple automated task that extracts the pypi dependencies from pixi.toml and dumps them as a requirements.txt/pyproject.toml for each example. This means a single tool, a single lock-file, and the ability to easily cache everything on CI. |
So, for "normal" Python user:
This is a significant regression on the workflow, on the altar of:
|
for some reason, pixi refuses to install mediapipe:
The error is clearly wrong as the package exist in that version on pypi (albeit in unversal2, not aarch64). Edit: I sorted it out, required weird work-arounds. |
No, we would just commit those requirement files. The path is either: cd examples/python/urdf_thing
poetry main.py # uses autogenerated requirements or: pip install pixi
pixi run urdf_thing |
That is just not how it works 🤔 Anyway, very hard to discuss these thing without actually prototyping the thing and getting our priorities straight. |
Managing dependencies for our growing list of example is increasingly painful, eg. #5859
One way about it would be to pin everything in the requirements.txt. This is some drawbacks:
When/how do/should examples run?
Some things to consider
Who do we optimize for? Use developers or potential users that may want to run an example?
High-level wants:
Less important wants:
Support conflicting dependencies per example?
Splitting examples python from rest of dev process?
I think it makes sense to treat our
scripts/*.py
helpers differently from ourexamples/python
. That is, they can use different tooling if it makes sense.Other
Easy for external users to run and write examples
Handle well at least the following two configuration:
rerun-sdk
should be installed from the workplacepipx
, etc.)Plays nice with
pixi
(I can call pixi commands and python stuff from the same shell without changing venv)pixi run all-examples
should work (maybere_build_examples
handles it?)The text was updated successfully, but these errors were encountered: