Hello I'm curious what approach others are taking...
# ask-metaflow
m
Hello I'm curious what approach others are taking with regards where to place flows in package hierarchy. I've seen here that the suggestion is to put them at the top of the hierarchy. This issue is pretty old though (2.5 years) so I wonder if it is still the main suggested approach? Also saw this open PR, which I found interesting. Do you think something like this could be an option moving forward?
👀 1
h
Solution we stumbled upon was something like
Copy code
my_src/
- cool_stuff.py
flows/
- my_src/ (symlink)
- my_flow.py
- other_flow.py
This way you have flows and source code cleanly organized in folders, but metaflow can still package your src code when running remote tasks
symlinks make people uncomfortable so maybe it would be nice to have a feature for this upstream 😄 Also would be nice to be able to tell metaflow to NOT package the code explicitly. For example we were thinking our production runs would have the code packaged and versioned via docker, and we only need to package the src during development
m
Hey, Thanks for the response.
Copy code
Also would be nice to be able to tell metaflow to NOT package the code explicitly. For example we were thinking our production runs would have the code packaged and versioned via docker, and we only need to package the src during development
This indeed would be good. 🙂 Is there an open issue for it?
I was also wondering about symlinks, but yeah I did wonder how people would feel about them in my company. It's definitely an option though.
h
I'm not aware of one, I think we were going to manually remove the symlink in our CI pipeline but seems hacky 😄
m
It is not possible to do it through the dockerignore file?
h
Well we want the code in the docker image but NOT in the S3 tarball that metaflow creates when you run
python flow.py argo-workflows create
for example
But maybe using dockerignore and then running argo from docker could also get there 😄
m
Sorry, I misunderstood. I thought you were talking about removing the symlink when building the docker image.