Git Product home page Git Product logo

Comments (4)

Mic92 avatar Mic92 commented on July 2, 2024

Back when I started buildbot-nix, there was no inputDerivations in nix-eval-jobs so this analysis would have been harder. I guess I didn't needed this feature as much because my main concern was to have a fast CI for NixOS machines and inter-dependencies was that much of a factor. How do you connect different projects? Buildbot actually support multiple source triggers the same hydra does it, but with flakes everything is kind of pinned.

So here is my constraints:

  • building all derivations individually will be likely too slow so we probably need to keep it as coarse grained as only building flake attributes -> but this is what you do as well.
  • if we group flake attributes, we should probably still maintain separate build logs because otherwise it becomes quite hard to see errors in long logs. Buildbot actually support many text outputs per build step.

Buildbot also allows some control regarding scheduling in python code, so even if it's displayed as separated build step it could still internally following the ordering that you propose.

All in all it would be probably to discuss this more in detail in our matrix channel:

https://matrix.to/#/#buildbot-nix:thalheim.io

from buildbot-nix.

lorenzleutgeb avatar lorenzleutgeb commented on July 2, 2024

Just had a chat with @Mic92 and we agreed on not mapping multiple derivations to one build, but keep the 1:1 mapping that exists currently. Instead, model the dependency graph of derivations in buildbot scheduling directly. Essentially we inform buildbot with the dependency information that Nix already has, and let builds wait for their dependencies to build.

In order for this to work nicely, all actual builders (in the Nix sense, the machines that do nix build, might be the worker, or might be a remote builder) would have to have access to a shared Nix store or binary cache for this to make sense. This could be resolved by using the grouping I sketched above to map builds to workers (or builders in the Nix sense). We decided to postpone this, and first get dependency-based scheduling to work on its own.

from buildbot-nix.

lorenzleutgeb avatar lorenzleutgeb commented on July 2, 2024

There's are two interesting scheduling concepts in buildbot:

At a first glance, Triggerable Scheduler seems to be strictly better (?!). I'll look at this into more detail soon, but wanted to share as early as possible.

from buildbot-nix.

Mic92 avatar Mic92 commented on July 2, 2024

We are currently using the Triggerable Scheduler because it allows to create dynamic pipelines.

from buildbot-nix.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.