Subject: Status wip-julia-update (was Re: bug#73197: [PATCH] gnu: julia: Update to 1.9.3.)

From: zimoun <[email-masked]>
Date: Fri, 14 Feb 2025 22:10:07 +0100

Hi,

On Fri, 14 Feb 2025 at 16:22, Simon Tournier <[email-masked]> wrote:

> Well, I’ll (force) push shortly a trivial fix to the branch
> wip-julia-upgrade.

I did. \o/

And waiting the rebuild by ci.guix, I’m rebuilding some on my own.  And
I obverse weird behaviour…

For example, on the top of 5f31ce18b3.

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix build --no-grafts      \
     --without-tests=julia-argcheck          \
     --without-tests=julia-documenter        \
     --without-tests=julia-genericschur      \
     --without-tests=julia-static            \
     --without-tests=julia-statsbase         \
     --without-tests=julia-infinity          \
     --without-tests=julia-pycall            \
     --without-tests=julia-http              \
     --without-tests=julia-staticarrays      \
     --without-tests=julia-finitedifferences \
   julia-benchmarktools

/gnu/store/pdj7ilvyh4i96jd5av97vrlghpxc25ni-julia-benchmarktools-1.3.2
--8<---------------cut here---------------end--------------->8---

So far, so good!  Here all ’without-tests’ are packages that need to be
updated or need a fix in their test suite–e.g., one test fails because
hardware or other as it happens time to time with Julia packages.

Now, let do the same but using the ’julia’ package without its own
tests.  It should be pass, no?

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix build --no-grafts      \
     --without-tests=julia-argcheck          \
     --without-tests=julia-documenter        \
     --without-tests=julia-genericschur      \
     --without-tests=julia-static            \
     --without-tests=julia-statsbase         \
     --without-tests=julia-infinity          \
     --without-tests=julia-pycall            \
     --without-tests=julia-http              \
     --without-tests=julia-staticarrays      \
     --without-tests=julia-finitedifferences \
   --without-tests=julia                     \
   julia-benchmarktools 

starting phase `precompile'
ERROR: LoadError: ArgumentError: Package Parsers [69de0a69-1ddd-5017-9359-2bf0b02dc9f0] is required but does not seem to be installed:
 - Run `Pkg.instantiate()` to install all recorded dependencies.
--8<---------------cut here---------------end--------------->8---

Euh, I’m probably doing wrong something somewhere…  But it does not jump
to my eyes what.  Any idea?

For the record, here the path:

    $ guix graph --path julia-benchmarktools julia-parsers
    [email-masked]
    [email-masked]
    [email-masked]

And note that julia-parsers is propagated by julia-json then
julia-benchmarktools propagates julia-json.

Therefore, the full ’julia’ package finds julia-parsers but not all the
same except running the ’check’ phase of julia’.

What do I miss about package transformation?

That’s said, it’s weird behaviour because I also observe the converse:
something that passes using --without-tests=julia but fails with full
’julia’.

Bah… my creativity starts to be lacking…

Cheers,
simon

PS: What about Nix?

1. I don’t clearly understand what they do.
2. So much Julia code… Hum, I’m not convinced that’s the way…

https://github.com/NixOS/nixpkgs/tree/master/pkgs/development/julia-modules
https://github.com/NixOS/nixpkgs/tree/master/pkgs/development/compilers/julia