Subject: [bug#45972] [PATCH] Add julia-json with dependencies

From: Ludovic Courtès <[email-masked]>
Date: Wed, 27 Jan 2021 23:40:28 +0100

Hi,

Nicolò Balzarotti <[email-masked]> skribis:

> Almost all of Julia packages are under MIT (expat), I double checked and
> they are fine.  Also, 3 packages (out of 8) have been updated since my
> submission, so I updated them now and guix lint does not complain anymore.

Great.

> This is the first batch, I finally decided to submit in small batches
> the 100+ packages I have; you have been warned :D

Oh, fun! :-)

So, actually, we have a problem:

> +(define-public julia-orderedcollections
> +  (package
> +    (name "julia-orderedcollections")
> +    (version "1.3.2")
> +    (source
> +     (origin
> +       (method git-fetch)
> +       (uri (git-reference
> +             (url "https://github.com/JuliaCollections/OrderedCollections.jl")
> +             (commit (string-append "v" version))))
> +       (file-name "OrderedCollections")

I was surprised that ‘guix lint’ doesn’t complain about this file name,
I thought it required the file name to match the package name and at
least that’s the spirit (I’ll take a look).

Anyway, I went ahead and replaced all these by (git-file-name name
version) as is done elsewhere.  But now the tests would fail like so:

--8<---------------cut here---------------start------------->8---
starting phase `check'
ERROR: LoadError: ArgumentError: Package Adapt not found in current path:
- Run `import Pkg; Pkg.add("Adapt")` to install the Adapt package.
--8<---------------cut here---------------end--------------->8---

My understanding is that the first patch expects the source file name to
match the Julia package name.  IMO, that shouldn’t be the case.  Can we
either extract the Julia package name from metadata that’s in the
package itself (?), or otherwise pass it to all the phases via
‘julia-build-system’?

Sorry for not noticing earlier!

Thanks,
Ludo’.