Skip to content
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

ENH: bubble up deps during orch sub builds #10

Open
CJ-Wright opened this issue Jun 1, 2018 · 3 comments
Open

ENH: bubble up deps during orch sub builds #10

CJ-Wright opened this issue Jun 1, 2018 · 3 comments

Comments

@CJ-Wright
Copy link
Member

Many times orch sub builds have similar requirements to the parent build. It would be nice to run the (non-orch) installers once per section. This essentially requires the orch sub build to know it is a sub build and propagate the requirements up. This might not work for build requirements, since the build may require one of its deps to be installed and running (which requires the runtime deps to be installed). But this should be ok for runtime requirements.

@CJ-Wright
Copy link
Member Author

This might be ok for build if we run things in order (eg conda set(deps), pip install set(deps), then install all the sources from scratch)

@CJ-Wright
Copy link
Member Author

ping @mwaddellcolumbia

@CJ-Wright
Copy link
Member Author

So this got rather complex fast. I think I understand what has to be done better now.

  1. Create a node which represents the code to be installed with its install command
  2. Create parent nodes which represent the direct deps
  3. Repeat 1 and 2 for all orch nodes recursively until no orch nodes remain
  4. Handle any clashes by order of precedence (default vs bleeding (bleeding wins)) then by preference (orch then conda then pip)
  5. If safe merge all pip and conda installs for the build requirements and install the packages specified
  6. If aggro merge all pip and conda installs for all the requirements
  7. Run orch installs in topo order, maybe I can get away with sorting by path length to the first node

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant