guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Cuirass news


From: Ludovic Courtès
Subject: Cuirass news
Date: Wed, 24 Jan 2018 23:12:08 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)

Hello Guix!

Over the last few days, out of frustration ;-), I hacked Cuirass to
improve several things:

  • Logging is improved: useful events are logged, including build
    started/succeeded/failed (using a variant of what I proposed in the
    Guix ‘wip-ui’ branch).  This makes it much easier to understand
    what’s going on!

  • Concurrency: the evaluate/build cycle would previously happen
    sequentially.  This was bad for latency (it could take a while
    before we would pull from the repo) and for resource usage (while
    evaluating all the build machines would be idle).  Now there’s some
    concurrency, with a switch to Fibers (yay!), which means that these
    activities can be interleaved, as well as HTTP request processing.

  • Build status: the starttime/stoptime of a ‘Build’ entry in the
    database is now accurate since we set them once the build has
    actually started/stopped.  This means the database is updated as
    soon as a build finishes, rather than when the whole
    ‘build-derivations’ RPC has returned.  We can also distinguish
    between started and scheduled builds now.

  • HTTP API: as a corollary, /api/latestbuilds now really returns the
    latest builds.  There’s a new /api/queue that returns pending
    builds—builds that have a database entry with ‘status’ < 0.

  • Restarting unfinished builds: it’s common, especially when testing,
    to interrupt Cuirass, leaving a number of builds unfinished or not
    even started.  Now Cuirass restarts those upon startup.

And!  This brings a whole set of new bugs that I’m hunting notably on
berlin (which may thus lag behind…).  Overall I think it’ll make Cuirass
easier to work with and more “introspectable”.

Feedback welcome!

Ludo’.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]