[Core feature] UX improvement: support local pip-installable packages in ImageSpec
and pyflyte run --remote
#5343
Labels
enhancement
New feature or request
untriaged
This issues has not yet been looked at by the Maintainers
Motivation: Why do you think this is important?
Say I have the following flytekit project folder structure:
Where
src
is a pure python internal library that I can independently run/test. Then I want to import modules fromsrc
into my flytekittasks.py
andworkflows.py
files.When I build my
ImageSpec
, I currently have to role my own solution to installsrc
is a pip package (maybe via github).Then, when I want to quickly iterate on it with
pyflyte run --remote
, I use the--copy-all
flag to make suresrc
is in the PYTHONPATH of the container running my tasks.Goal: What should the final outcome look like, ideally?
flytekit UX improvement: would love to be able to support local pip-installable packages in ImageSpec , something like:
Where I can
pip install -e src
andtasks.py
andworkflows.py
can import stuff from src when developing locally and src is a local package that I want to keep separate from my flytekit tasks and workflows.ImageSpec build time
At image build time, this should understand that I want to copy the
src
package into the image and bake it into the image itself.Iteration time
local_packages
in image spec implies that when Ipyflyte run --remote
with local changes, somehow this should be also be available as a package in the container that’s running on remote as part of fast registration.Describe alternatives you've considered
The current workarounds for this are
--copy-all
at iteration time and pip installing via github at ImageSpec build time (there are probably more workarounds here).Propose: Link/Inline OR Additional context
This is part of a broader pain point of the flyte-maintainer-approved way of building a flytekit project. The tutorials/guides in our docs sort of assume you're working on a single file, or some simpler structure that doesn't include having a python project that's separate from flyte task/workflow modules.
Are you sure this issue hasn't been raised already?
Have you read the Code of Conduct?
The text was updated successfully, but these errors were encountered: