From unknown Fri Jun 20 07:16:55 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#47392 <47392@debbugs.gnu.org> To: bug#47392 <47392@debbugs.gnu.org> Subject: Status: [PATCH 0/2] Add Laminar. Reply-To: bug#47392 <47392@debbugs.gnu.org> Date: Fri, 20 Jun 2025 14:16:55 +0000 retitle 47392 [PATCH 0/2] Add Laminar. reassign 47392 guix-patches submitter 47392 Christopher Baines severity 47392 normal tag 47392 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Thu Mar 25 11:23:12 2021 Received: (at submit) by debbugs.gnu.org; 25 Mar 2021 15:23:12 +0000 Received: from localhost ([127.0.0.1]:39259 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lPRpH-0002VY-PV for submit@debbugs.gnu.org; Thu, 25 Mar 2021 11:23:12 -0400 Received: from lists.gnu.org ([209.51.188.17]:47180) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lPRpG-0002VO-7L for submit@debbugs.gnu.org; Thu, 25 Mar 2021 11:23:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39370) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lPRpF-0006t7-TT for guix-patches@gnu.org; Thu, 25 Mar 2021 11:23:09 -0400 Received: from mira.cbaines.net ([2a01:7e00:e000:2f8:fd4d:b5c7:13fb:3d27]:38941) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lPRpD-0007e4-UV for guix-patches@gnu.org; Thu, 25 Mar 2021 11:23:09 -0400 Received: from localhost (unknown [IPv6:2a02:8010:68c1:0:8ac0:b4c7:f5c8:7caa]) by mira.cbaines.net (Postfix) with ESMTPSA id 49BFD27BC5C for ; Thu, 25 Mar 2021 15:23:06 +0000 (GMT) Received: from capella (localhost [127.0.0.1]) by localhost (OpenSMTPD) with ESMTP id 6cd20512 for ; Thu, 25 Mar 2021 15:23:05 +0000 (UTC) User-agent: mu4e 1.4.15; emacs 27.1 From: Christopher Baines To: guix-patches@gnu.org Subject: [PATCH 0/2] Add Laminar. Date: Thu, 25 Mar 2021 15:23:02 +0000 Message-ID: <87v99f9s15.fsf@cbaines.net> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" Received-SPF: pass client-ip=2a01:7e00:e000:2f8:fd4d:b5c7:13fb:3d27; envelope-from=mail@cbaines.net; helo=mira.cbaines.net X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.4 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.4 (--) --=-=-= Content-Type: text/plain I've wrote these patches a long while ago, and I've been using Laminar too, since Laminar fills a role in the patches testing setup I've been working on. I was holding off on submitting them until more could be done about the JavaScript Laminar uses, but merging these patches would be useful, and I think the line of including non-source JavaScript in packages has already been crossed. Christopher Baines (2): gnu: Add laminar. services: Add Laminar. doc/guix.texi | 54 ++++++++++++++++++- gnu/packages/ci.scm | 104 +++++++++++++++++++++++++++++++++++ gnu/services/ci.scm | 128 +++++++++++++++++++++++++++++++++++++++++++ gnu/tests/ci.scm | 129 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 413 insertions(+), 2 deletions(-) create mode 100644 gnu/services/ci.scm create mode 100644 gnu/tests/ci.scm --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQKlBAEBCgCPFiEEPonu50WOcg2XVOCyXiijOwuE9XcFAmBcqtZfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcRHG1haWxAY2Jh aW5lcy5uZXQACgkQXiijOwuE9XcCWxAAptu0VxQMuTwgy9oxdmdSS0uCIByoQL6d a1LjwJ3Ip9cFCPFtoEck7BYTWeMGjh00KOGob+xTw1jn6Cihh/s88ztXo+l0JEbs Hep95fD5ZAij/IQVTSSF/BBBXYRgduU1exjhHHNhkNU+or2K2AS5Zp93LXIITwi2 ppEcrRrwNRmET2EgvPlxTnUqXsVwcrQY4xfVCl7lIsWeqfZ7MSvC4iqpVaoVLhlX NLJGQEFfIiArqIE+yO91FBAnyjU9FeImVOlUrckc+5iiJb9H/VcCQ3+AGDTuNMLk fg8X//JhgWf3mI8mq0U0sOV6cA5TRC8UY/m/n7vu9NIB1Y0Lw8hNcQTj5GqJ1cl3 BLBFS7v2oWa67WzVACRardLoKBBTsHX8XQcleAJAnPeN3Y0d35+XdX4cVapGcvC8 jXfpIDcCbs6KV4XuY7B8M5QIc5FF6y+pNs4Ea9l3wW/a0zbf9BdeG+Hdufec5cx4 hoSXc+uMAbVYGQeX9SkWfZrUV0wuhjy/jypyHBQlZLTm3Uzi5rW1d357qJ+elIXq jjX09dkapBTQyMVzYn9QlDZ1vQE+JubfAhQWUoGi4lI8yHD+oe+IUfVl0pr4aGxe jHVeTk1g57aCc7WljU3r2S6vnzje00dkgG+l1P+/l6fsZ+DPJJ1Xl1+brWqJZtz3 l7igeUIQt+c= =hX4b -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Thu Mar 25 11:26:19 2021 Received: (at 47392) by debbugs.gnu.org; 25 Mar 2021 15:26:19 +0000 Received: from localhost ([127.0.0.1]:39268 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lPRsF-0002b8-MN for submit@debbugs.gnu.org; Thu, 25 Mar 2021 11:26:19 -0400 Received: from mira.cbaines.net ([212.71.252.8]:44022) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lPRsD-0002ar-VI for 47392@debbugs.gnu.org; Thu, 25 Mar 2021 11:26:14 -0400 Received: from localhost (unknown [IPv6:2a02:8010:68c1:0:8ac0:b4c7:f5c8:7caa]) by mira.cbaines.net (Postfix) with ESMTPSA id F179327BC5C for <47392@debbugs.gnu.org>; Thu, 25 Mar 2021 15:26:12 +0000 (GMT) Received: from localhost (localhost [local]) by localhost (OpenSMTPD) with ESMTPA id e59d93a6 for <47392@debbugs.gnu.org>; Thu, 25 Mar 2021 15:26:12 +0000 (UTC) From: Christopher Baines To: 47392@debbugs.gnu.org Subject: [PATCH 1/2] gnu: Add laminar. Date: Thu, 25 Mar 2021 15:26:11 +0000 Message-Id: <20210325152612.15321-1-mail@cbaines.net> X-Mailer: git-send-email 2.30.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 47392 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/ci.scm (laminar): New variable. --- gnu/packages/ci.scm | 104 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm index bafe997c82..4e13d01715 100644 --- a/gnu/packages/ci.scm +++ b/gnu/packages/ci.scm @@ -25,10 +25,13 @@ #:use-module ((guix licenses) #:prefix l:) #:use-module (gnu packages) #:use-module (guix packages) + #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix download) #:use-module (gnu packages autotools) #:use-module (gnu packages base) + #:use-module (gnu packages boost) + #:use-module (gnu packages check) #:use-module (gnu packages docbook) #:use-module (gnu packages compression) #:use-module (gnu packages databases) @@ -40,11 +43,14 @@ #:use-module (gnu packages perl) #:use-module (gnu packages perl-compression) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages serialization) + #:use-module (gnu packages sqlite) #:use-module (gnu packages tls) #:use-module (gnu packages texinfo) #:use-module (gnu packages version-control) #:use-module (gnu packages web) #:use-module (gnu packages xml) + #:use-module (guix build-system cmake) #:use-module (guix build-system gnu)) (define-public cuirass @@ -170,3 +176,101 @@ intended as a replacement for Hydra.") (home-page "https://www.gnu.org/software/guix/") (license l:gpl3+)))) + +(define-public laminar + (package + (name "laminar") + (version "1.0") + (source + (origin (method url-fetch) + (uri (string-append "https://github.com/ohwgiles/laminar/archive/" + version + ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "11m6h3rdmj2rsmsryy7r40gqccj4gg1cnqwy6blscs87gx4s423g")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; TODO Can't build tests + #:configure-flags + (list "-DCMAKE_CXX_STANDARD=17" + ;; "-DBUILD_TESTS=true" TODO: objcopy: js/stPskyUS: can't add + ;; section '.note.GNU-stack': file format not recognized + (string-append "-DLAMINAR_VERSION=" ,version)) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-CMakeLists.txt + (lambda _ + (substitute* "CMakeLists.txt" + (("file\\(DOWNLOAD.*\n$") + "# file download removed by Guix --") + (("install\\(FILES etc/laminar.service DESTINATION \\$\\{SYSTEMD\\_UNITDIR\\}\\)") + "") + (("install\\(FILES \\$\\{CMAKE\\_CURRENT\\_BINARY\\_DIR\\}\\/laminar\\.service DESTINATION \\$\\{SYSTEMD\\_UNITDIR\\}\\)") + "") + (("install\\(FILES etc/laminar\\.conf DESTINATION \\/etc\\)") "") + (("\\/usr\\/") "")) + #t)) + (add-after 'configure 'copy-in-javascript-and-css + (lambda* (#:key inputs outputs #:allow-other-keys) + (mkdir-p "../build/js") + (for-each (lambda (file) + (copy-file + file + (string-append + "../build/js/" (strip-store-file-name file)))) + (map (lambda (input) + (assoc-ref inputs input)) + '("vue.min.js" + "vue-router.min.js" + "ansi_up.js" + "Chart.min.js"))) + #t))))) + (inputs + `(("capnproto" ,capnproto) + ("rapidjson" ,rapidjson) + ("sqlite" ,sqlite) + ("boost" ,boost) + ("zlib" ,zlib))) + (native-inputs + `(("googletest" ,googletest) + + ("vue.min.js" + ,(origin (method url-fetch) + (uri (string-append "https://cdnjs.cloudflare.com/ajax/libs/" + "vue/2.6.12/vue.min.js")) + (sha256 + (base32 + "01zklp5cyik65dfn64m8h2y2dxzgbyzgmbf99y7fwgnf0155r7pq")))) + ("vue-router.min.js" + ,(origin (method url-fetch) + (uri (string-append "https://cdnjs.cloudflare.com/ajax/libs/" + "vue-router/3.4.8/vue-router.min.js")) + (sha256 + (base32 + "07gx7znb30rk1z7w6ca7dlfjp44q12bbq6jghwfm27mf6psa80as")))) + ("ansi_up.js" + ,(origin (method url-fetch) + (uri (string-append "https://raw.githubusercontent.com/" + "drudru/ansi_up/v1.3.0/ansi_up.js")) + (sha256 + (base32 + "1993dywxqi2ylnxybwk7m0s0bg2bq7kfllpyr0s8ck6chd0p8i6r")))) + ("Chart.min.js" + ,(origin (method url-fetch) + (uri (string-append "https://cdnjs.cloudflare.com/ajax/libs/" + "Chart.js/2.7.2/Chart.min.js")) + (sha256 + (base32 + "1jh4h12qchsba03dx03mrvs4r8g9qfjn56xm56jqzgqf7r209xq9")))))) + (synopsis "Lightweight Continuous Integration service") + (description + "Laminar is a lightweight and modular Continuous Integration service. It +doesn't have a configuration web UI instead uses version-controllable +configuration files and scripts. + +Laminar encourages the use of existing GNU/Linux tools such as bash and cron +instead of reinventing them.") + (home-page "https://laminar.ohwg.net/") + (license l:gpl3+))) -- 2.30.1 From debbugs-submit-bounces@debbugs.gnu.org Thu Mar 25 11:26:20 2021 Received: (at 47392) by debbugs.gnu.org; 25 Mar 2021 15:26:20 +0000 Received: from localhost ([127.0.0.1]:39270 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lPRsK-0002bN-2m for submit@debbugs.gnu.org; Thu, 25 Mar 2021 11:26:20 -0400 Received: from mira.cbaines.net ([212.71.252.8]:44024) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lPRsD-0002as-VL for 47392@debbugs.gnu.org; Thu, 25 Mar 2021 11:26:15 -0400 Received: from localhost (unknown [IPv6:2a02:8010:68c1:0:8ac0:b4c7:f5c8:7caa]) by mira.cbaines.net (Postfix) with ESMTPSA id 0F29E27BC5D for <47392@debbugs.gnu.org>; Thu, 25 Mar 2021 15:26:13 +0000 (GMT) Received: from localhost (localhost [local]) by localhost (OpenSMTPD) with ESMTPA id 67645d16 for <47392@debbugs.gnu.org>; Thu, 25 Mar 2021 15:26:12 +0000 (UTC) From: Christopher Baines To: 47392@debbugs.gnu.org Subject: [PATCH 2/2] services: Add Laminar. Date: Thu, 25 Mar 2021 15:26:12 +0000 Message-Id: <20210325152612.15321-2-mail@cbaines.net> X-Mailer: git-send-email 2.30.1 In-Reply-To: <20210325152612.15321-1-mail@cbaines.net> References: <20210325152612.15321-1-mail@cbaines.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 47392 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/services/ci.scm: New file. * gnu/tests/ci.scm: New file. * doc/guix.texi (Laminar): Document the Laminar service. --- doc/guix.texi | 54 ++++++++++++++++++- gnu/services/ci.scm | 128 +++++++++++++++++++++++++++++++++++++++++++ gnu/tests/ci.scm | 129 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 309 insertions(+), 2 deletions(-) create mode 100644 gnu/services/ci.scm create mode 100644 gnu/tests/ci.scm diff --git a/doc/guix.texi b/doc/guix.texi index 74f3fbd299..bd087dae05 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -342,7 +342,7 @@ Services * DNS Services:: DNS daemons. * VPN Services:: VPN daemons. * Network File System:: NFS related services. -* Continuous Integration:: The Cuirass service. +* Continuous Integration:: Cuirass and Laminar services. * Power Management Services:: Extending battery life. * Audio Services:: The MPD. * Virtualization Services:: Virtualization services. @@ -14798,7 +14798,7 @@ declaration. * DNS Services:: DNS daemons. * VPN Services:: VPN daemons. * Network File System:: NFS related services. -* Continuous Integration:: The Cuirass service. +* Continuous Integration:: Cuirass and Laminar services. * Power Management Services:: Extending battery life. * Audio Services:: The MPD. * Virtualization Services:: Virtualization services. @@ -27301,6 +27301,56 @@ the store items being published. @end table @end deftp +@subsubheading Laminar + +@uref{https://laminar.ohwg.net/, Laminar} is a lightweight and modular +Continuous Integration service. It doesn't have a configuration web UI +instead uses version-controllable configuration files and scripts. + +Laminar encourages the use of existing GNU/Linux tools such as bash and +cron instead of reinventing them. + +@defvr {Scheme Procedure} laminar-service-type +The type of the Laminar service. Its value must be a +@code{laminar-configuration} object, as described below. +@end defvr + +@deftp {Data Type} laminar-configuration +Data type representing the configuration of Laminar. + +@table @asis +@item @code{laminar} (default: @code{laminar}) +The Laminar package to use. + +@item @code{home-directory} (default: @code{"/var/lib/laminar"}) +The directory for job configurations and run directories. + +@item @code{bind-http} (default: @code{"*:8080"}) +The interface/port or unix socket on which laminard should listen for +incoming connections to the web frontend. + +@item @code{bind-rpc} (default: @code{"unix-abstract:laminar"}) +The interface/port or unix socket on which laminard should listen for +incoming commands such as build triggers. + +@item @code{title} (default: @code{"Laminar"}) +The page title to show in the web frontend. + +@item @code{keep-rundirs} (default: @code{0}) +Set to an integer defining how many rundirs to keep per job. The +lowest-numbered ones will be deleted. The default is 0, meaning all run +dirs will be immediately deleted. + +@item @code{archive-url} (default: @code{#f}) +The web frontend served by laminard will use this URL to form links to +artefacts archived jobs. + +@item @code{base-url} (default: @code{#f}) +Base URL to use for links to laminar itself. + +@end table +@end deftp + @node Power Management Services @subsection Power Management Services diff --git a/gnu/services/ci.scm b/gnu/services/ci.scm new file mode 100644 index 0000000000..400980dcd4 --- /dev/null +++ b/gnu/services/ci.scm @@ -0,0 +1,128 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Christopher Baines +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify +;;; it under the terms of the GNU General Public License as published by +;;; the Free Software Foundation, either version 3 of the License, or +;;; (at your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, +;;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu services ci) + #:use-module (guix gexp) + #:use-module (guix records) + #:use-module (gnu packages admin) + #:use-module (gnu packages ci) + #:use-module (gnu services) + #:use-module (gnu services base) + #:use-module (gnu services shepherd) + #:use-module (gnu services admin) + #:use-module (gnu system shadow) + #:use-module (ice-9 match) + #:export ( + laminar-configuration + laminar-configuration? + laminar-configuration-home-directory + laminar-configuration-bind-http + laminar-configuration-bind-rpc + laminar-configuration-title + laminar-configuration-keep-rundirs + laminar-configuration-archive-url + laminar-configuration-base-url + + laminar-service-type)) + +;;;; Commentary: +;;; +;;; This module implements a service that to run instances of Laminar, a +;;; continuous integration tool. +;;; +;;;; Code: + +(define-record-type* + laminar-configuration make-laminar-configuration + laminar-configuration? + (laminar laminars-configuration-laminar + (default laminar)) + (home-directory laminar-configuration-home-directory + (default "/var/lib/laminar")) + (bind-http laminar-configuration-bind-http + (default "*:8080")) + (bind-rpc laminar-configuration-bind-rpc + (default "unix-abstract:laminar")) + (title laminar-configuration-title + (default "Laminar")) + (keep-rundirs laminar-keep-rundirs + (default 0)) + (archive-url laminar-archive-url + (default #f)) + (base-url laminar-base-url + (default #f))) + +(define laminar-shepherd-service + (match-lambda + (($ laminar home-directory + bind-http bind-rpc + title keep-rundirs archive-url + base-url) + (list (shepherd-service + (documentation "Run Laminar.") + (provision '(laminar)) + (requirement '(networking)) + (start #~(make-forkexec-constructor + (list #$(file-append laminar "/sbin/laminard")) + #:environment-variables + `(,(string-append "LAMINAR_HOME=" + #$home-directory) + ,(string-append "LAMINAR_BIND_HTTP=" + #$bind-http) + ,(string-append "LAMINAR_TITLE=" + #$title) + ,(string-append "LAMINAR_KEEP_RUNDIRS=" + #$(number->string + keep-rundirs)) + ,@(if #$archive-url + (list + (string-append "LAMINAR_ARCHIVE_URL=" + #$archive-url)) + '()) + ,@(if #$base-url + (list + (string-append "LAMINAR_BASE_URL=" + #$base-url)) + '())) + #:user "laminar" + #:group "laminar")) + (stop #~(make-kill-destructor))))))) + +(define (laminar-account config) + "Return the user accounts and user groups for CONFIG." + (list (user-group + (name "laminar") + (system? #t)) + (user-account + (name "laminar") + (group "laminar") + (system? #t) + (comment "Laminar privilege separation user") + (home-directory (laminar-configuration-home-directory config)) + (shell #~(string-append #$shadow "/sbin/nologin"))))) + +(define laminar-service-type + (service-type + (name 'laminar) + (extensions + (list + (service-extension shepherd-root-service-type laminar-shepherd-service) + (service-extension account-service-type laminar-account))) + (default-value (laminar-configuration)) + (description + "Run the Laminar continuous integration service."))) diff --git a/gnu/tests/ci.scm b/gnu/tests/ci.scm new file mode 100644 index 0000000000..fe74e73e74 --- /dev/null +++ b/gnu/tests/ci.scm @@ -0,0 +1,129 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Ludovic Courtès +;;; Copyright © 2017 Christopher Baines +;;; Copyright © 2017, 2018 Clément Lassieur +;;; Copyright © 2018 Pierre-Antoine Rouby +;;; Copyright © 2018 Marius Bakke +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu tests ci) + #:use-module (gnu tests) + #:use-module (gnu system) + #:use-module (gnu system file-systems) + #:use-module (gnu system shadow) + #:use-module (gnu system vm) + #:use-module (gnu services) + #:use-module (gnu services ci) + #:use-module (gnu services web) + #:use-module (gnu services networking) + #:use-module (guix gexp) + #:use-module (guix store) + #:export (%test-laminar)) + + + +(define %laminar-os + ;; Operating system under test. + (simple-operating-system + (service dhcp-client-service-type) + (service laminar-service-type))) + +(define* (run-laminar-test #:optional (http-port 8080)) + "Run tests in %LAMINAR-OS, which has laminar running and listening on +HTTP-PORT." + (define os + (marionette-operating-system + %laminar-os + #:imported-modules '((gnu services herd) + (guix combinators)))) + + (define vm + (virtual-machine + (operating-system os) + (port-forwardings `((,http-port . 8080))))) + + (define test + (with-imported-modules '((gnu build marionette)) + #~(begin + (use-modules (srfi srfi-11) (srfi srfi-64) + (ice-9 match) + (gnu build marionette) + (web uri) + (web client) + (web response)) + + (define marionette + ;; Forward the guest's HTTP-PORT, where laminar is listening, to + ;; port 8080 in the host. + (make-marionette (list #$vm))) + + (mkdir #$output) + (chdir #$output) + + (test-begin "laminar") + + (test-assert "service running" + (marionette-eval + '(begin + (use-modules (gnu services herd)) + (start-service 'laminar)) + marionette)) + + (define* (retry-on-error f #:key times delay) + (let loop ((attempt 1)) + (match (catch + #t + (lambda () + (cons #t + (f))) + (lambda args + (cons #f + args))) + ((#t . return-value) + return-value) + ((#f . error-args) + (if (>= attempt times) + error-args + (begin + (sleep delay) + (loop (+ 1 attempt)))))))) + + (test-equal "http-get" + 200 + (retry-on-error + (lambda () + (let-values (((response text) + (http-get #$(format + #f + "http://localhost:~A/" + http-port) + ;; TODO: Why does decoding fail? + #:decode-body? #f))) + (response-code response))) + #:times 10 + #:delay 5)) + + (test-end) + (exit (= (test-runner-fail-count (test-runner-current)) 0))))) + + (gexp->derivation "laminar-test" test)) + +(define %test-laminar + (system-test + (name "laminar") + (description "Connect to a running Laminar server.") + (value (run-laminar-test)))) -- 2.30.1 From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 05 05:56:25 2021 Received: (at 47392) by debbugs.gnu.org; 5 Apr 2021 09:56:26 +0000 Received: from localhost ([127.0.0.1]:36978 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lTLy5-0004dC-Hy for submit@debbugs.gnu.org; Mon, 05 Apr 2021 05:56:25 -0400 Received: from eggs.gnu.org ([209.51.188.92]:33440) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lTLy3-0004d0-Cq for 47392@debbugs.gnu.org; Mon, 05 Apr 2021 05:56:24 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:55731) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lTLxy-0006T7-11; Mon, 05 Apr 2021 05:56:18 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=45738 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1lTLxx-0003rl-71; Mon, 05 Apr 2021 05:56:17 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Christopher Baines Subject: Re: bug#47392: [PATCH 0/2] Add Laminar. References: <87v99f9s15.fsf@cbaines.net> Date: Mon, 05 Apr 2021 11:56:12 +0200 In-Reply-To: <87v99f9s15.fsf@cbaines.net> (Christopher Baines's message of "Thu, 25 Mar 2021 15:23:02 +0000") Message-ID: <87sg45ukar.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 47392 Cc: 47392@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hi Chris, Christopher Baines skribis: > I've wrote these patches a long while ago, and I've been using Laminar > too, since Laminar fills a role in the patches testing setup I've been > working on. Neat. > I was holding off on submitting them until more could be done about the > JavaScript Laminar uses, but merging these patches would be useful, and > I think the line of including non-source JavaScript in packages has > already been crossed. Heheh. > + ("vue.min.js" > + ,(origin (method url-fetch) > + (uri (string-append "https://cdnjs.cloudflare.com/ajax/= libs/" > + "vue/2.6.12/vue.min.js")) > + (sha256 > + (base32 > + "01zklp5cyik65dfn64m8h2y2dxzgbyzgmbf99y7fwgnf0155r7pq= ")))) > + ("vue-router.min.js" > + ,(origin (method url-fetch) > + (uri (string-append "https://cdnjs.cloudflare.com/ajax/= libs/" > + "vue-router/3.4.8/vue-router.min.js= ")) > + (sha256 > + (base32 > + "07gx7znb30rk1z7w6ca7dlfjp44q12bbq6jghwfm27mf6psa80as= ")))) > + ("ansi_up.js" > + ,(origin (method url-fetch) > + (uri (string-append "https://raw.githubusercontent.com/" > + "drudru/ansi_up/v1.3.0/ansi_up.js")) > + (sha256 > + (base32 > + "1993dywxqi2ylnxybwk7m0s0bg2bq7kfllpyr0s8ck6chd0p8i6r= ")))) > + ("Chart.min.js" > + ,(origin (method url-fetch) > + (uri (string-append "https://cdnjs.cloudflare.com/ajax/= libs/" > + "Chart.js/2.7.2/Chart.min.js")) > + (sha256 > + (base32 > + "1jh4h12qchsba03dx03mrvs4r8g9qfjn56xm56jqzgqf7r209xq9= ")))))) I wonder if it would be possible to, instead, get the non-minified files upstream, and minify them with =E2=80=98uglify-js=E2=80=99, as is done in = =E2=80=98hpcguix-web=E2=80=99. WDYT? That might also give more stable URLs that those above. > + (synopsis "Lightweight Continuous Integration service") > + (description > + "Laminar is a lightweight and modular Continuous Integration servic= e. It Maybe s/Continuous Integration/continuous integration/. The rest LGTM! Thanks, Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 05 05:58:28 2021 Received: (at 47392) by debbugs.gnu.org; 5 Apr 2021 09:58:28 +0000 Received: from localhost ([127.0.0.1]:36982 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lTM04-0004gl-34 for submit@debbugs.gnu.org; Mon, 05 Apr 2021 05:58:28 -0400 Received: from eggs.gnu.org ([209.51.188.92]:33792) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lTM02-0004gX-33 for 47392@debbugs.gnu.org; Mon, 05 Apr 2021 05:58:26 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:55740) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lTLzw-0007Zz-RM; Mon, 05 Apr 2021 05:58:20 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=45740 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1lTLzv-0006x6-N0; Mon, 05 Apr 2021 05:58:20 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Christopher Baines Subject: Re: bug#47392: [PATCH 0/2] Add Laminar. References: <20210325152612.15321-1-mail@cbaines.net> <20210325152612.15321-2-mail@cbaines.net> Date: Mon, 05 Apr 2021 11:58:18 +0200 In-Reply-To: <20210325152612.15321-2-mail@cbaines.net> (Christopher Baines's message of "Thu, 25 Mar 2021 15:26:12 +0000") Message-ID: <87mtuduk79.fsf_-_@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 47392 Cc: 47392@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Christopher Baines skribis: > * gnu/services/ci.scm: New file. > * gnu/tests/ci.scm: New file. > * doc/guix.texi (Laminar): Document the Laminar service. [...] > +@defvr {Scheme Procedure} laminar-service-type > +The type of the Laminar service. Its value must be a > +@code{laminar-configuration} object, as described below. > +@end defvr It would be nice to add a config example with one or two sentences explaining what it does. > + #:export ( Please don=E2=80=99t export the record type descriptor. Otherwise LGTM, thanks! Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 07 02:35:34 2021 Received: (at 47392) by debbugs.gnu.org; 7 Apr 2021 06:35:34 +0000 Received: from localhost ([127.0.0.1]:42872 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lU1mo-0006c6-17 for submit@debbugs.gnu.org; Wed, 07 Apr 2021 02:35:34 -0400 Received: from mout-p-102.mailbox.org ([80.241.56.152]:9718) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lU1mm-0006bq-0A for 47392@debbugs.gnu.org; Wed, 07 Apr 2021 02:35:32 -0400 Received: from smtp2.mailbox.org (smtp2.mailbox.org [80.241.60.241]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-102.mailbox.org (Postfix) with ESMTPS id 4FFZQP5MbhzQjmr; Wed, 7 Apr 2021 08:35:25 +0200 (CEST) X-Virus-Scanned: amavisd-new at heinlein-support.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6xq.net; s=MBO0001; t=1617777323; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=wsbVWTfncmGHRqXZ8rJj88LTFW5SNDeDCdhCDNrH4pI=; b=yA5p8hH+QXEkvlUWVSh1EzOSiJH5yPOcbI0Jq5Jvm5fUie/cMRiDqSGWhe8dIiH6kJW9O5 hA7xUNEZzw2aY2Bw+/oaXdRWwvPyWnuF1kzjUskFSs6uWt1K1z4pcbiGaghslnkZQBL/TC ld7ZQ1Zr0Vi5MuZyK05CoAGY9sqP2LXE0CwcDDq33cMpfKGhbAJ3EMUsqz80/3w5cBINFM 6tN320z16HrRcfp++ag2A4/XMzCt/mEa8Y9iDU6CXXAnIfR98HfBMWXbCy1FV++a15tz88 kGT6L+x1E8Oynp//srNEe8dd7UzoYYwmIfSrFiVj/57osGtDmokEVJFUHWZSgw== Received: from smtp2.mailbox.org ([80.241.60.241]) by spamfilter04.heinlein-hosting.de (spamfilter04.heinlein-hosting.de [80.241.56.122]) (amavisd-new, port 10030) with ESMTP id 12lSmOopHBOq; Wed, 7 Apr 2021 08:35:21 +0200 (CEST) Date: Wed, 7 Apr 2021 08:35:19 +0200 From: Lars-Dominik Braun To: Christopher Baines Subject: Re: [bug#47392] [PATCH 0/2] Add Laminar. Message-ID: References: <87v99f9s15.fsf@cbaines.net> <87sg45ukar.fsf@gnu.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="//8kEogq2Xu0Qvew" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <87sg45ukar.fsf@gnu.org> X-MBO-SPAM-Probability: *** X-Rspamd-Score: 3.18 / 15.00 / 15.00 X-Rspamd-Queue-Id: 371FF17BD X-Rspamd-UID: 6ae176 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 47392 Cc: 47392@debbugs.gnu.org, Ludovic =?iso-8859-1?Q?Court=E8s?= X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) --//8kEogq2Xu0Qvew Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit Hi Chris, > I wonder if it would be possible to, instead, get the non-minified files > upstream, and minify them with ‘uglify-js’, as is done in ‘hpcguix-web’. > WDYT? you could also use the new node-build-system in combination with Jelle’s WIP node importer in the branch wip-node-importer. Use something like: guix environment guix --ad-hoc guile-semver ./pre-inst-env guix import npm-binary -r chart.js '^2.7' I’ve run the imports for Laminar and attached a file with packages. Usually there’s a dist/ directory in the output that contains minified JavaScript. Obviously that isn’t a full source build (yet). Cheers, Lars --//8kEogq2Xu0Qvew Content-Type: application/vnd.lotus-screencam Content-Disposition: attachment; filename="node.scm" Content-Transfer-Encoding: quoted-printable (define-module (node)=0A #:use-module ((guix licenses) #:prefix license:)= =0A #:use-module (guix packages)=0A #:use-module (guix git-download)=0A = #:use-module (guix download)=0A #:use-module (guix build-system node))=0A= =0A(define-public node-vue-2.6.12=0A (package=0A (name "node-vue")=0A = (version "2.6.12")=0A (source=0A (origin=0A (method url-fe= tch)=0A (uri "https://registry.npmjs.org/vue/-/vue-2.6.12.tgz")=0A = (sha256=0A (base32=0A "1yapmw9cagsa7kc2nxadkmr8qw= x7myil26yqqly6s8frg6s30piv"))))=0A (build-system node-build-system)=0A = (arguments=0A `(#:tests?=0A #f=0A #:phases=0A (= modify-phases=0A %standard-phases=0A (delete 'configure)= =0A (delete 'build))))=0A (home-page "https://github.com/vuejs/= vue#readme")=0A (synopsis=0A "Reactive, component-oriented view lay= er for modern web interfaces.")=0A (description=0A "Reactive, compo= nent-oriented view layer for modern web interfaces.")=0A (license licens= e:expat)))=0A=0A(define-public node-ansi-up-5.0.1=0A (package=0A (name = "node-ansi-up")=0A (version "5.0.1")=0A (source=0A (origin=0A = (method url-fetch)=0A (uri "https://registry.npmjs.org/ansi_up/= -/ansi_up-5.0.1.tgz")=0A (sha256=0A (base32=0A "= 1kjfz58n38d0cbgpfrqp3wlxbfk35p31mvgr6n7j9fq95zq8w57j"))))=0A (build-syst= em node-build-system)=0A (arguments=0A `(#:tests?=0A #f=0A = #:phases=0A (modify-phases=0A %standard-phases=0A = (delete 'configure)=0A (delete 'build))))=0A (home-page= =0A "https://github.com/drudru/ansi_up#readme")=0A (synopsis=0A = "Convert ansi sequences in strings to colorful HTML")=0A (description= =0A "Convert ansi sequences in strings to colorful HTML")=0A (licen= se license:expat)))=0A=0A(define-public node-vue-router-3.5.1=0A (package= =0A (name "node-vue-router")=0A (version "3.5.1")=0A (source=0A = (origin=0A (method url-fetch)=0A (uri "https://registry.np= mjs.org/vue-router/-/vue-router-3.5.1.tgz")=0A (sha256=0A (= base32=0A "1k2icicd5as9yv0q14j6lvy026jzsdywziffwxvyxdii973349l3"= ))))=0A (build-system node-build-system)=0A (arguments=0A `(#:te= sts?=0A #f=0A #:phases=0A (modify-phases=0A %= standard-phases=0A (delete 'configure)=0A (delete 'build)= )))=0A (home-page=0A "https://github.com/vuejs/vue-router#readme")= =0A (synopsis "Official router for Vue.js 2")=0A (description "Offici= al router for Vue.js 2")=0A (license license:expat)))=0A=0A(define-publi= c node-color-convert-1.9.3=0A (package=0A (name "node-color-convert")= =0A (version "1.9.3")=0A (source=0A (origin=0A (method ur= l-fetch)=0A (uri "https://registry.npmjs.org/color-convert/-/color-c= onvert-1.9.3.tgz")=0A (sha256=0A (base32=0A "1ah= bdssv1qgwlzvhv7731hpfgz8wny0619x97b7n5x9lckj17i0j"))))=0A (build-system = node-build-system)=0A (arguments=0A `(#:tests?=0A #f=0A = #:phases=0A (modify-phases=0A %standard-phases=0A = (delete 'configure)=0A (delete 'build))))=0A (inputs=0A = `(("node-color-name" ,node-color-name-1.1.4)))=0A (home-page=0A "h= ttps://github.com/Qix-/color-convert#readme")=0A (synopsis "Plain color = conversion functions")=0A (description "Plain color conversion functions= ")=0A (license license:expat)))=0A=0A(define-public node-color-name-1.1.= 4=0A (package=0A (name "node-color-name")=0A (version "1.1.4")=0A = (source=0A (origin=0A (method url-fetch)=0A (uri "https= ://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz")=0A (sha256= =0A (base32=0A "020p7x7k8rlph38lhsqpqvkx0b70lzlmk6mgal9= r9sz8c527qysh"))))=0A (build-system node-build-system)=0A (arguments= =0A `(#:tests?=0A #f=0A #:phases=0A (modify-phase= s=0A %standard-phases=0A (delete 'configure)=0A = (delete 'build))))=0A (home-page=0A "https://github.com/colorjs/col= or-name")=0A (synopsis "A list of color names and its values")=0A (de= scription=0A "A list of color names and its values")=0A (license li= cense:expat)))=0A=0A(define-public node-chartjs-color-string-0.6.0=0A (pac= kage=0A (name "node-chartjs-color-string")=0A (version "0.6.0")=0A = (source=0A (origin=0A (method url-fetch)=0A (uri "https= ://registry.npmjs.org/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz= ")=0A (sha256=0A (base32=0A "1wcrcg7p0n9qzmf98hl= gp5kcm8v0qyh34n6676lgcnh0xrcaij62"))))=0A (build-system node-build-syste= m)=0A (arguments=0A `(#:tests?=0A #f=0A #:phases=0A = (modify-phases=0A %standard-phases=0A (delete 'conf= igure)=0A (delete 'build))))=0A (inputs=0A `(("node-color-= name" ,node-color-name-1.1.4)))=0A (home-page=0A "https://github.co= m/chartjs/chartjs-color-string#readme")=0A (synopsis=0A "Parser and= generator for CSS color strings")=0A (description=0A "Parser and g= enerator for CSS color strings")=0A (license license:expat)))=0A=0A(defi= ne-public node-chartjs-color-2.4.1=0A (package=0A (name "node-chartjs-c= olor")=0A (version "2.4.1")=0A (source=0A (origin=0A (met= hod url-fetch)=0A (uri "https://registry.npmjs.org/chartjs-color/-/c= hartjs-color-2.4.1.tgz")=0A (sha256=0A (base32=0A = "09w1kj0nnlnz5p13c3624zjj822nijaxgrrvvwxhs9pqcqp788w0"))))=0A (build-s= ystem node-build-system)=0A (arguments=0A `(#:tests?=0A #f= =0A #:phases=0A (modify-phases=0A %standard-phases= =0A (delete 'configure)=0A (delete 'build))))=0A (inpu= ts=0A `(("node-chartjs-color-string"=0A ,node-chartjs-color-st= ring-0.6.0)=0A ("node-color-convert" ,node-color-convert-1.9.3)))=0A= (home-page=0A "https://github.com/chartjs/chartjs-color#readme")= =0A (synopsis=0A "Color conversion and manipulation with CSS string= support")=0A (description=0A "Color conversion and manipulation wi= th CSS string support")=0A (license license:expat)))=0A=0A(define-public= node-moment-2.29.1=0A (package=0A (name "node-moment")=0A (version = "2.29.1")=0A (source=0A (origin=0A (method url-fetch)=0A = (uri "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz")=0A = (sha256=0A (base32=0A "0m9c1i494f6yxmb1md5s7idrhqwqbk3= 5zz5fv539hzh2cjd0y622"))))=0A (build-system node-build-system)=0A (ar= guments=0A `(#:tests?=0A #f=0A #:phases=0A (modif= y-phases=0A %standard-phases=0A (delete 'configure)=0A = (delete 'build))))=0A (home-page "https://momentjs.com")=0A (s= ynopsis=0A "Parse, validate, manipulate, and display dates")=0A (de= scription=0A "Parse, validate, manipulate, and display dates")=0A (= license license:expat)))=0A=0A(define-public node-chart-js-2.9.4=0A (packa= ge=0A (name "node-chart-js")=0A (version "2.9.4")=0A (source=0A = (origin=0A (method url-fetch)=0A (uri "https://registry.np= mjs.org/chart.js/-/chart.js-2.9.4.tgz")=0A (sha256=0A (base= 32=0A "0jhnfr3kisnp6w5rc71px7h41wk0ah5ly2n59rx1fw0344xc1isi"))))= =0A (build-system node-build-system)=0A (arguments=0A `(#:tests?= =0A #f=0A #:phases=0A (modify-phases=0A %stan= dard-phases=0A (delete 'configure)=0A (delete 'build))))= =0A (inputs=0A `(("node-moment" ,node-moment-2.29.1)=0A ("no= de-chartjs-color" ,node-chartjs-color-2.4.1)))=0A (home-page "https://ww= w.chartjs.org")=0A (synopsis=0A "Simple HTML5 charts using the canv= as element.")=0A (description=0A "Simple HTML5 charts using the can= vas element.")=0A (license license:expat)))=0A=0A --//8kEogq2Xu0Qvew-- From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 09 07:06:06 2021 Received: (at 47392) by debbugs.gnu.org; 9 Apr 2021 11:06:07 +0000 Received: from localhost ([127.0.0.1]:49167 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lUoxi-0000n9-GJ for submit@debbugs.gnu.org; Fri, 09 Apr 2021 07:06:06 -0400 Received: from mira.cbaines.net ([212.71.252.8]:37534) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lUoxg-0000n0-Gx for 47392@debbugs.gnu.org; Fri, 09 Apr 2021 07:06:05 -0400 Received: from localhost (unknown [IPv6:2a02:8010:68c1:0:8ac0:b4c7:f5c8:7caa]) by mira.cbaines.net (Postfix) with ESMTPSA id 7650827BC6E; Fri, 9 Apr 2021 12:06:03 +0100 (BST) Received: from capella (localhost [127.0.0.1]) by localhost (OpenSMTPD) with ESMTP id 79a25b17; Fri, 9 Apr 2021 11:06:02 +0000 (UTC) References: <20210325152612.15321-1-mail@cbaines.net> <20210325152612.15321-2-mail@cbaines.net> <87mtuduk79.fsf_-_@gnu.org> User-agent: mu4e 1.4.15; emacs 27.1 From: Christopher Baines To: Ludovic =?utf-8?Q?Court=C3=A8s?= Subject: Re: bug#47392: [PATCH 0/2] Add Laminar. In-reply-to: <87mtuduk79.fsf_-_@gnu.org> Date: Fri, 09 Apr 2021 12:06:02 +0100 Message-ID: <875z0v3eg5.fsf@cbaines.net> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 47392 Cc: 47392@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Ludovic Court=C3=A8s writes: > Christopher Baines skribis: > >> * gnu/services/ci.scm: New file. >> * gnu/tests/ci.scm: New file. >> * doc/guix.texi (Laminar): Document the Laminar service. > > [...] > >> +@defvr {Scheme Procedure} laminar-service-type >> +The type of the Laminar service. Its value must be a >> +@code{laminar-configuration} object, as described below. >> +@end defvr > > It would be nice to add a config example with one or two sentences > explaining what it does. Sure, I've added an example now, albeit the simplest one. >> + #:export ( > > Please don=E2=80=99t export the record type descriptor. I removed this. > Otherwise LGTM, thanks! Cool, I've pushed this as eda4bb4f16f74436b0caf1c584888c89b3c4c69b now. --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQKlBAEBCgCPFiEEPonu50WOcg2XVOCyXiijOwuE9XcFAmBwNRpfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcRHG1haWxAY2Jh aW5lcy5uZXQACgkQXiijOwuE9XeufBAAg7+2V46xyLtNIXunn7ecQT+7O0p6QuUk 7jmdvKM6kftmvKkxB7uy7KrobLXwswZNaZaf6I4/C9162slJZvvZ6gSqNe2X0jkr /PqRz6B3X9UfuHcMK9WaFKEhPr52m7ChwdvOeeYFiKQ66b0F9qaQuysd0T9xBaPx Ly/TepOrBodCPeBL2lhZR9o+MK2URlVe/Dfx7ofJ4vLMs4sPXSwXIjI6WUorwYbZ wMHwAPpWlVs3wvx2fwOH78mJLY+xv1hSyWd4kz/V/NjajJw2USmH2lUQPRtqR3qu ImYoEr0D5+Vi/SVKdBe84FTg61eslzrPx9Jn4/y3qE4obwd4xJ1W3IgKnmiiHVqO 9YRXGD5zVl1IH0ET0yEs3+IurLpa0FuZpZnCLMX5rlp1xheh3HpFZHrbcgn+h0sW h0Jy7cHNa/B7/EM7DJlJ2fmSNZqdQ4cVqrH1hucg2g5mbJP+sa5JSLsWz7xC5FjS JCdI87fgpBHds2AfB5tGhFhKJdF9V7G+PzZSBtvHbr477tUgo86OoXXv4Pxq59x5 5AqUZUz7FB+xBl6Pnsa8zkvLdKOHel1ukootMnR702j5lS2de9XJExfriGBctfbx vrD2xHKlnPL3RUZT2PJxE98iRo+pCmJCeyh64rY0oFPN7bBYm8Ih7+gabhJtpm83 YM3zyznhjA0= =4e32 -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 09 07:06:51 2021 Received: (at 47392-done) by debbugs.gnu.org; 9 Apr 2021 11:06:51 +0000 Received: from localhost ([127.0.0.1]:49170 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lUoyR-0000oE-0h for submit@debbugs.gnu.org; Fri, 09 Apr 2021 07:06:51 -0400 Received: from mira.cbaines.net ([212.71.252.8]:37538) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lUoyO-0000o6-Vi for 47392-done@debbugs.gnu.org; Fri, 09 Apr 2021 07:06:49 -0400 Received: from localhost (unknown [IPv6:2a02:8010:68c1:0:8ac0:b4c7:f5c8:7caa]) by mira.cbaines.net (Postfix) with ESMTPSA id 9049427BC6E; Fri, 9 Apr 2021 12:06:48 +0100 (BST) Received: from capella (localhost [127.0.0.1]) by localhost (OpenSMTPD) with ESMTP id fbdfecf7; Fri, 9 Apr 2021 11:06:48 +0000 (UTC) References: <87v99f9s15.fsf@cbaines.net> <87sg45ukar.fsf@gnu.org> User-agent: mu4e 1.4.15; emacs 27.1 From: Christopher Baines To: Ludovic =?utf-8?Q?Court=C3=A8s?= Subject: Re: bug#47392: [PATCH 0/2] Add Laminar. In-reply-to: <87sg45ukar.fsf@gnu.org> Date: Fri, 09 Apr 2021 12:06:47 +0100 Message-ID: <8735vz3eew.fsf@cbaines.net> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 47392-done Cc: 47392-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Ludovic Court=C3=A8s writes: > Hi Chris, > > Christopher Baines skribis: > >> + ("vue.min.js" >> + ,(origin (method url-fetch) >> + (uri (string-append "https://cdnjs.cloudflare.com/ajax= /libs/" >> + "vue/2.6.12/vue.min.js")) >> + (sha256 >> + (base32 >> + "01zklp5cyik65dfn64m8h2y2dxzgbyzgmbf99y7fwgnf0155r7p= q")))) >> + ("vue-router.min.js" >> + ,(origin (method url-fetch) >> + (uri (string-append "https://cdnjs.cloudflare.com/ajax= /libs/" >> + "vue-router/3.4.8/vue-router.min.j= s")) >> + (sha256 >> + (base32 >> + "07gx7znb30rk1z7w6ca7dlfjp44q12bbq6jghwfm27mf6psa80a= s")))) >> + ("ansi_up.js" >> + ,(origin (method url-fetch) >> + (uri (string-append "https://raw.githubusercontent.com= /" >> + "drudru/ansi_up/v1.3.0/ansi_up.js"= )) >> + (sha256 >> + (base32 >> + "1993dywxqi2ylnxybwk7m0s0bg2bq7kfllpyr0s8ck6chd0p8i6= r")))) >> + ("Chart.min.js" >> + ,(origin (method url-fetch) >> + (uri (string-append "https://cdnjs.cloudflare.com/ajax= /libs/" >> + "Chart.js/2.7.2/Chart.min.js")) >> + (sha256 >> + (base32 >> + "1jh4h12qchsba03dx03mrvs4r8g9qfjn56xm56jqzgqf7r209xq= 9")))))) > > I wonder if it would be possible to, instead, get the non-minified files > upstream, and minify them with =E2=80=98uglify-js=E2=80=99, as is done in= =E2=80=98hpcguix-web=E2=80=99. > WDYT? > > That might also give more stable URLs that those above. Sure, I've adjusted the package definition to do this. >> + (synopsis "Lightweight Continuous Integration service") >> + (description >> + "Laminar is a lightweight and modular Continuous Integration servi= ce. It > > Maybe s/Continuous Integration/continuous integration/. Updated. > The rest LGTM! Great, I've pushed this as eda4bb4f16f74436b0caf1c584888c89b3c4c69b. --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQKlBAEBCgCPFiEEPonu50WOcg2XVOCyXiijOwuE9XcFAmBwNUhfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcRHG1haWxAY2Jh aW5lcy5uZXQACgkQXiijOwuE9Xcx8Q//RIWHlXm6jpwJ9xA7GIJQnQqL2xoopX52 LnuVmvtU8zywK6yMr5azW7KGzmfC+gkJg56CF8yI1lhWqi4GnFmy09c2bq0ANGcZ l99iZilTOyqYq7Lv4nqEljzOD+86HeFEBglssRPbvNy00/ziBwpbrPNVL4klrpBc v6cEEEanfbp4qa8baRWMmY0wKs3egbUsmFuUogbPt3nwlHnSpSeU/bnjYhI5c+D6 q1v569yqSJj6xvY2tir4kIBDZfQRr8VbtdPiqgAghr94wmqG2F+YKvh30Y6XNZGk QYCiGcYsTRUKkepvGQqR+ZiBH6CbtV5UMOfevvqhWndf6AsqSj1RxgVO+1WjNcWY IZlaHUT1AGWFi8CQMX8OTbHxHAK/LLQ4sGJUBbF3p9vKqZOq6EG6AoS98UQQxN4A nZo1ZqY8rNCmcrnNpXSQpfyWc1zOWqTyMA0SjGZr6FM4X1vvVoUvREKO8O32QUGX 8c3QGN66uOQiaQ7wLWWNDj073lQCckJ+ghR2Pay7Czl9qm4fVEiTakV9UbAwpZ0/ Ue9dQRDQET9eFuzqNclDErW0eaAqyLOBHIgpOsqBx5fN9vaR/xotN4cedsEz8LjO SuINTFl81MIhsr5deXxPR9HIuQirwXw+VXIWV9I6lQpSDGXK7J+eOM+0ep8hkfI0 SSYY2wbmoo0= =iBsx -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 09 07:09:20 2021 Received: (at 47392) by debbugs.gnu.org; 9 Apr 2021 11:09:20 +0000 Received: from localhost ([127.0.0.1]:49182 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lUp0p-0000tO-Nx for submit@debbugs.gnu.org; Fri, 09 Apr 2021 07:09:19 -0400 Received: from mira.cbaines.net ([212.71.252.8]:37558) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lUp0n-0000tF-8s for 47392@debbugs.gnu.org; Fri, 09 Apr 2021 07:09:17 -0400 Received: from localhost (unknown [IPv6:2a02:8010:68c1:0:8ac0:b4c7:f5c8:7caa]) by mira.cbaines.net (Postfix) with ESMTPSA id D2AB227BC6E; Fri, 9 Apr 2021 12:09:16 +0100 (BST) Received: from capella (localhost [127.0.0.1]) by localhost (OpenSMTPD) with ESMTP id 704ba82e; Fri, 9 Apr 2021 11:09:16 +0000 (UTC) References: <87v99f9s15.fsf@cbaines.net> <87sg45ukar.fsf@gnu.org> User-agent: mu4e 1.4.15; emacs 27.1 From: Christopher Baines To: Lars-Dominik Braun Subject: Re: [bug#47392] [PATCH 0/2] Add Laminar. In-reply-to: Date: Fri, 09 Apr 2021 12:09:16 +0100 Message-ID: <87zgy71zqb.fsf@cbaines.net> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 47392 Cc: 47392@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Lars-Dominik Braun writes: > Hi Chris, > >> I wonder if it would be possible to, instead, get the non-minified files >> upstream, and minify them with =E2=80=98uglify-js=E2=80=99, as is done i= n =E2=80=98hpcguix-web=E2=80=99. >> WDYT? > you could also use the new node-build-system in combination with Jelle=E2= =80=99s > WIP node importer in the branch wip-node-importer. Use something like: > > guix environment guix --ad-hoc guile-semver > ./pre-inst-env guix import npm-binary -r chart.js '^2.7' > > I=E2=80=99ve run the imports for Laminar and attached a file with package= s. > Usually there=E2=80=99s a dist/ directory in the output that contains min= ified > JavaScript. Obviously that isn=E2=80=99t a full source build (yet). Thanks Lars, I did try a while back, but I think there are some hard parts (babel) to address. I'd also prefer to keep the number of packages tainted by Javascript blobs to a minimum, so I view what's going on in the laminar package as a lesser evil. I do really want to see proper packages for these things at some point though, and I hope to be able to spend more time working on it at some point. --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQKlBAEBCgCPFiEEPonu50WOcg2XVOCyXiijOwuE9XcFAmBwNdxfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcRHG1haWxAY2Jh aW5lcy5uZXQACgkQXiijOwuE9Xe/OxAAm4to2iz0Op3fAiUkFTSpwDucxiSix8mj NEqKp7ez8Wpsl30CNMhNxmJ7nQeu+4xyPNdu8tr6u63K/yH1Ukx0sU2eY6o09Mai JLSntCoT5FF4JBi74KGMfEBZswSL07aNHZ80e8JSZbbkeJq2G16maddDOfYotAJC tW9XsoUGjH7H2ux7PRJQ1e3NBg/VfTMlHi3vUnCGCU92B+28iOUfopf7RhldtxO3 vhpgYRS+ebV1HwZcvSS/I+9eppS6aSRBzyEK9p8KHDaEt/IMrCj3FxQy2M3k0rqm T0KbiY56v0ufYZT1Hx5/TTOw6JokN08CqvKjTpqOnCU3lovCLBTxcHaa2WziCe07 /1/Ry8EKyXiVBlaOonXC3rktOh0GPC0ykHaGT59FGQytd+W+k5nXeLuaoWnzqctj 2uLL7XplobHrQhBPHszd+YAD8Ow6CKh2iahGCVoK6l3s7LzfVcsg/YypGFkWcr1x xGz47wqVzhQ8HZV/DgjDOKUdmXFzwBcgVhbY3tSY66WcM4CFk9yxEhFhNQYCzWJd r6C1E02uWghUOKl6Ea3KFcNyxqQZWMs+LT0txk3qMclCmkyQwqbFvsrjFP+3Q6x5 2gGwvsyLwf0YhWlFe3u/9yHL5j/5mocvhoQRShm0sajuf/oPn3fZPhYXgAtLWZrz su98pxX6/HI= =0S+/ -----END PGP SIGNATURE----- --=-=-=-- From unknown Fri Jun 20 07:16:55 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Fri, 07 May 2021 11:24:06 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator