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

Smarter dependency-aware evaluator than Hydra #39

Open
copumpkin opened this issue Mar 23, 2017 · 4 comments
Open

Smarter dependency-aware evaluator than Hydra #39

copumpkin opened this issue Mar 23, 2017 · 4 comments
Labels

Comments

@copumpkin
Copy link

As far as I've been able to tell, Hydra does the following to figure out what to build:

  1. Evaluate your jobsets
  2. Pick a job, anywhere
  3. Build it
  4. Farm out its subtasks across remote builders

This leads to sometimes me starting a branch in it and seeing haskellPackages.foo being the first job being built. If I check the Steps tab for that job, I see that it's downloading the bootstrap tools, bootstrapping the stdenv, and so on. Given that the bootstrap steps aren't explicitly named jobs, it can be hard to track them down.

More intuitive to me would be:

  1. Evaluate jobsets
  2. Understand the dependency graph
  3. [Optional] Let me explore it somehow
  4. Start evaluating based on the graph
  5. [Optional] Prioritize builds based on how many downstream builds they enable

Or some variation of that.

@Ericson2314
Copy link

I think I agree, but I also think Nix itself is also to blame here.

@expipiplus1
Copy link
Contributor

Hopefully the work I've started on a haskell interface to nix-build can go part of the way to solving this.

@copumpkin
Copy link
Author

@Ericson2314 how do you mean? We can easily graph out the build dependencies, so it's not as if the information isn't there

@expipiplus1
Copy link
Contributor

I'm planning to do it by setting up a build hook with NIX_BUILD_HOOK which captures the requirements and forwards them to a smarter builder.

The story is complicated somewhat by IFD (see NixOS/nix/#666)

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

No branches or pull requests

4 participants