[bug#47392,0/2] Add Laminar.

Message ID 87v99f9s15.fsf@cbaines.net
Headers show
Series Add Laminar. | expand

Message

Christopher Baines March 25, 2021, 3:23 p.m. UTC
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

Comments

Ludovic Courtès April 5, 2021, 9:56 a.m. UTC | #1
Hi Chris,

Christopher Baines <mail@cbaines.net> 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 ‘uglify-js’, as is done in ‘hpcguix-web’.
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 service.  It

Maybe s/Continuous Integration/continuous integration/.

The rest LGTM!

Thanks,
Ludo’.
Lars-Dominik Braun April 7, 2021, 6:35 a.m. UTC | #2
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
Christopher Baines April 9, 2021, 11:06 a.m. UTC | #3
Ludovic Courtès <ludo@gnu.org> writes:

> Hi Chris,
>
> Christopher Baines <mail@cbaines.net> 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
>> +                   "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 ‘uglify-js’, as is done in ‘hpcguix-web’.
> 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 service.  It
>
> Maybe s/Continuous Integration/continuous integration/.

Updated.

> The rest LGTM!

Great, I've pushed this as eda4bb4f16f74436b0caf1c584888c89b3c4c69b.
Christopher Baines April 9, 2021, 11:09 a.m. UTC | #4
Lars-Dominik Braun <lars@6xq.net> writes:

> 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).

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.