Skip to content
Snippets Groups Projects
This project is mirrored from https://git.savannah.gnu.org/git/guix/guix-cuirass.git/. Pull mirroring updated .
  1. Apr 08, 2018
  2. Apr 06, 2018
    • Ludovic Courtès's avatar
      evaluate: Really pass arguments like Hydra. · 38d367d7
      Ludovic Courtès authored
      * bin/evaluate.in (main): Use SPEC's #:name as a key in ARGS.
      * examples/random-jobs.scm (make-random-jobs): Adjust accordingly.
      38d367d7
    • Ludovic Courtès's avatar
      base: Let sqlite handle deduplication of the list of pending derivations. · 074b9d02
      Ludovic Courtès authored
      Previously we would make a SQL query that would return many build jobs,
      and then call 'delete-duplicates' on that.  This was extremely wasteful
      because the list of returned by the query was huge leading to a heap of
      several tens of GiB on a big database, and 'delete-duplicates' would
      lead to more GC and it would take ages.
      
      Furthermore, since 'delete-duplicates' is written in C as of Guile
      2.2.3, it is uninterruptible from Fiber's viewpoint.  Consequently, the
      kernel thread running the 'restart-builds' fiber would never schedule
      other fibers, which could lead to deadlocks--e.g., since fibers are
      scheduled on a circular shuffled list of kernel threads, once every N
      times, a web server fiber would be sent to that kernel thread and not be
      serviced.
      
      * src/cuirass/base.scm (shuffle-jobs): Remove.
      (shuffle-derivations): New procedure.
      (spawn-builds): Take a list of derivations instead of a list of jobs.
      (restart-builds): Remove 'builds' parameter.  Remove 'delete-duplicates'
      call.  Remove done/remaining partitioning.
      (build-packages): Adjust to pass 'spawn-builds' a list of derivations.
      * bin/cuirass.in (main): Remove computation of PENDING.  Remove second
      parameter in call to 'restart-builds'.
      074b9d02
  3. Apr 05, 2018
  4. Apr 02, 2018
    • Ludovic Courtès's avatar
      base: Make a writable copy of the checkout only when #:no-compile? is false. · 2fe7ff87
      Ludovic Courtès authored
      This avoids copying things back and forth.
      
      * src/cuirass/base.scm (fetch-repository): Add #:writable-copy?
      parameter.  Call 'make-writable-copy' when it's true.
      (copy-repository-cache): Remove.
      (make-writable-copy): New procedure.
      (evaluate): Add 'source' parameter and pass it to the 'evaluate' program.
      (process-specs): Define 'compile?'.  Pass #:writable-copy? to
      'fetch-repository'.  Remove call to 'copy-repository-cache'.  Remove
      computation of the checkout directory name.  Pass CHECKOUT to 'evaluate'.
      * bin/evaluate.in (main): Replace 'cachedir' with 'source'.  Remove
      computation of the checkout directory name.
      2fe7ff87
  5. Mar 28, 2018
  6. Mar 25, 2018
  7. Mar 02, 2018
  8. Feb 15, 2018
  9. Feb 06, 2018
  10. Jan 30, 2018
  11. Jan 28, 2018
  12. Jan 27, 2018
  13. Jan 26, 2018
  14. Jan 24, 2018
    • Ludovic Courtès's avatar
      cuirass: Fix scope mismatch. · d544f3e6
      Ludovic Courtès authored
      Previously STORE would be closed on the first context switch, before
      'restart-builds' has completed, leading to an error (writing to a closed
      port).
      
      * src/cuirass/base.scm (restart-builds): Remove 'store' parameter.  Wrap
      body in 'with-store'.
      * bin/cuirass.in (main): Adjust accordingly.
      d544f3e6
    • Ludovic Courtès's avatar
      cuirass: Add missing import. · c1edfe88
      Ludovic Courtès authored
      * bin/cuirass.in: Import (guix store).
      c1edfe88
    • Ludovic Courtès's avatar
      base: Restart pending builds upfront. · dd30a1a2
      Ludovic Courtès authored
      * src/cuirass/database.scm (db-get-builds)[format-where-clause]:
      Honor (status pending) filter.
      * src/cuirass/base.scm (restart-builds): New procedure.
      * bin/cuirass.in (main): Fetch pending builds.  Start fiber that invokes
      'restart-builds' on them.
      dd30a1a2
    • Ludovic Courtès's avatar
      Call 'run-cuirass-server' outside of a fiber. · 6822b473
      Ludovic Courtès authored
      This seems to fix a bug whereby the server would never process the FD
      returned by 'accept'.
      
      * bin/cuirass.in (main): Move 'run-cuirass-server' outside of
      'spawn-fiber'.
      6822b473
  15. Jan 23, 2018
    • Ludovic Courtès's avatar
      Introduce concurrency with Fibers. · ee11ba1d
      Ludovic Courtès authored
      * README: Mark Fibers as required.
      * configure.ac: Check for Guile 2.2 only.  Check for (fibers).
      * bin/cuirass.in (main): Use (fibers).  Run 'process-specs' and web
      server in separate fibers.
      * src/cuirass/base.scm (with-store): New macro.
      (non-blocking-port): New procedure.
      (evaluate): Use 'non-blocking-port'.  Use 'read-string' followed by 'read'.
      (process-specs): Move 'db-add-stamp' right after 'string=?' comparison.
      Run evaluation and subsequent builds in a separate fiber.
      * src/cuirass/http.scm (run-cuirass-server): Pass 'fibers as the second
      argument to 'run-server'.  Use 'log-message' instead of 'format'.
      * src/cuirass/database.scm (with-database): Remove 'dynamic-wind'.
      ee11ba1d
  16. Jan 22, 2018
  17. Sep 19, 2017
    • Jan Nieuwenhuizen's avatar
      cuirass: Add --listen command line option. · 2a4d493e
      Jan Nieuwenhuizen authored
      * bin/cuirass.in (show-help): Add help for --listen option.
      (%options): Add listen option.
      (main): Pass host to run-cuirass-server.
      * doc/cuirass.texi (Invocation): Add --listen option.
      * src/cuirass/http.scm (run-cuirass-server): Add named #:host parameter.
      Unverified
      2a4d493e
  18. Sep 09, 2017
    • Mathieu Othacehe's avatar
      cuirass: Store new information in database to prepare new HTTP API · e550cb6a
      Mathieu Othacehe authored
      integration.
      
      * bin/evaluate.in (fill-job): New procedure.
      (main): Use it to fill informations (nix-name, system) that will later be
      added to database.
      * doc/cuirass.texi (Database)[Derivation]: Add system and nix_name fields.
      (Database)[Builds]: Add id, status, timestamp, starttime and stoptime
      fields. Remove output field.
      (Database)[Outputs]: New table describing the build outputs.
      * src/cuirass/base.scm (build-packages): Add new fields to build object before
      adding it to database.
      * src/cuirass/database.scm (db-get-build, db-get-builds): New procedures to get
      a build by id from database and a list of builds using filter parameters
      respectively.
      * src/schema.sql (Outputs) : New table.
      (Derivations): Add system and nix_name columns.
      (Builds): Remove output column and add id, status, timestamp, starttime and
      stoptime columns.
      Unverified
      e550cb6a
  19. Jul 12, 2017
    • Mathieu Othacehe's avatar
      cuirass: Add fallback parameter. · efcef528
      Mathieu Othacehe authored
      * src/cuirass/base.scm (%fallback?): New exported parameter.
      (process-specs)[set-build-options]: Pass fallback parameter.
      * bin/cuirass.in (%options): Add fallback.
      (main): Set %fallback? parameter.
      (show-help): Update.
      Unverified
      efcef528
  20. Jul 06, 2017
    • Mathieu Othacehe's avatar
      cuirass: Stop λ/lambda mixing. · d7dc7cb9
      Mathieu Othacehe authored
      * bin/cuirass.in: Replace λ by lambda.
      * bin/evaluate.in: Ditto.
      * build-aux/guix.scm: Ditto.
      * examples/gnu-system.scm: Ditto.
      * examples/guix-track-git.scm: Ditto.
      * src/cuirass.scm: Ditto.
      * src/cuirass/base.scm: Ditto.
      * src/cuirass/database.scm: Ditto.
      * src/cuirass/ui.scm: Ditto.
      * src/cuirass/utils.scm: Remove λ* macro.
      Unverified
      d7dc7cb9
  21. Jul 02, 2017
    • Mathieu Othacehe's avatar
      utils: Remove useless procedures. · f301378d
      Mathieu Othacehe authored
      * src/cuirass/utils.scm (mkdir-p, make-user-module,
        call-with-temporary-directory, with-directory-excursion): Remove because
        already defined in guix.
      * tests/utils (with-directory-excursion): Remove associated test.
      * src/cuirass/base.scm: Use (guix build utils) to provide procedure removed
        from (cuirass utils).
      * bin/evaluate.in: Ditto.
      * bin/cuirass.in: Use "make-user-module" provided by (guix ui).
      Unverified
      f301378d
  22. Feb 25, 2017
  23. Jan 30, 2017
    • Mathieu Othacehe's avatar
      cuirass: Add "--load-path" option. · 5127c679
      Mathieu Othacehe authored
      
      * bin/cuirass.in (%options): Add "--load-path" and "-L" command line options.
      (show-help): Adapt.
      * src/cuirass/base.scm (%guix-package-path): New parameter.
      (set-guix-package-path!): New procedure.
      (evaluate): Call "evaluate" script with '%guix-package-path'.
      * bin/evaluate.in (main): Match 'guix-package-path' command line argument and
      handle it.
      
      Signed-off-by: default avatarMathieu Lirzin <mthl@gnu.org>
      Unverified
      5127c679
  24. Dec 29, 2016
    • Mathieu Lirzin's avatar
      cuirass: Add "--port" command line option. · 8a782b3e
      Mathieu Lirzin authored
      * bin/cuirass.in (%options): Add "--port" and "-p" command line options.
      (show-help): Adapt.
      (main): Set default to 8080.  Call 'run-cuirass-server' with this.
      * src/cuirass/http.scm (run-cuirass-server): Display the port number.
      * doc/cuirass.texi (Invocation): Document new option.
      Unverified
      8a782b3e
    • Mathieu Lirzin's avatar
      build: Set Guile load paths in 'pre-inst-env'. · 57e10c60
      Mathieu Lirzin authored
      This reverts most of 4f0d6657.  The load paths
      are still hard coded after installation, however 'pre-inst-env' wrapper is
      used for defining them in the local build environment.  This is more
      convenient for running the tests manually or launching a Guile REPL with all
      the Cuirass modules accessible.
      
      * build-aux/pre-inst-env.in (GUILE_LOAD_PATH, GUILE_LOAD_COMPILED_PATH): New
      variables.
      * bin/cuirass.in: Comment Guile load paths.
      * Makefile.am (local_load_path, local_load_compiled_path): Delete.
      (AM_TESTS_ENVIRONMENT): Don't set Guile load paths.
      (do_subst): Use install directories for Guile load paths.
      (install-exec-hook): Uncomment 'cuirass' hard coded load paths.
      Unverified
      57e10c60
  25. Nov 13, 2016
    • Mathieu Lirzin's avatar
      cuirass: Hard code Guile load paths. · 4f0d6657
      Mathieu Lirzin authored
      * configure.ac (bin/cuirass, bin/evaluate): Let 'make' generate them.
      * bin/cuirass.in: Hard code load paths to find Cuirass modules.
      * Makefile.am (do_subst): Update substitution.
      (bin/cuirass, bin/evaluate): New rules.
      (EXTRA_DIST): Distribute 'bin/cuirass.in' and 'bin/evaluate.in'.
      (MOSTLYCLEANFILES): Add '$(bin_SCRIPTS)'.
      (install-exec-hook): New target.
      (local_load_path, local_load_compiled_path): New variables.
      (AM_TESTS_ENVIRONMENT): Set Guile load paths.
      * build-aux/pre-inst-env.in: Don't modify Guile load paths.
      Unverified
      4f0d6657
  26. Nov 03, 2016
  27. Sep 23, 2016
  28. Aug 03, 2016
  29. Jul 31, 2016
Loading