Netflix / metaflow-nflx-extensions

Apache License 2.0
22 stars 11 forks source link

Dependency resolution fails with multiple architectures #47

Open chadaeschliman opened 2 months ago

chadaeschliman commented 2 months ago

I have a conda environment (specified in a yaml file) that I'm attempting to resolve for linux-64 and osx-arm64. It works fine with each individually but fails when passing both architectures to the command.

I tracked down the error to line 785 of environment_cmd.py. The deps dictionary is (currently) shared across the environments, so this line clears the required sys dependency for the linux-64 architecture when it processes the osx-arm64 architecture. I believe a simple deps = deps.copy() at the start of the loop (so each environment has a separate copy of deps) will fix the issue (it fixes it for me).

romain-intel commented 2 months ago

Excellent feedback and you are absolutely right. I will update it.

Thanks a lot.

romain-intel commented 2 months ago

This may take me just a tad more time. I realized that by just doing that, we would be breaking the ability to go from one environment to another (ie: both environments should be "equivalent" but they wouldn't be given the differences in hashes). I just have to think a tiny bit more about this to fix it properly. If the fix works for you for now, great -- you just won't be able to easily know that both environments are equivalent.