Subject: bug#61684: can't compose 'with-patch' with 'with-source'

From: Maxim Cournoyer <[email-masked]>
Date: Fri, 24 Feb 2023 08:52:39 -0500

Hi Simon,

Simon Tournier <[email-masked]> writes:

> Hi Maxim,
>
> On ven., 24 févr. 2023 at 08:21, Maxim Cournoyer <[email-masked]> wrote:
>
>>> Well, I am not convinced that enforce the ordering is a good thing
>>> because as Ludo said, some HPC user exploits this control of ordering to
>>> generate complex transformations.
>>
>> Could we gather more information about that use case?  It needs to be
>> clear if we are to constrain the design (solution) by it.
>
> Well, I do not have the details.  Just to mention two presentations
> [1,2] exposing how transformations help for them.
>
> 1: <https://10years.guix.gnu.org/static/slides/07-swartvagher.pdf>
> 2: <https://hpc.guix.info/static/doc/atelier-reproductibilit%C3%A9-2021/marek-fel%C5%A1%C3%B6ci-org-guix.pdf>
>
> There they intensively uses transformations.  For instance, p.4 of [2]
> it reads,
>
>         guix environment --pure --with-input=pastix-5=pastix-5-mkl \
>         --with-input=mumps-scotch-openmpi=mumps-mkl-scotch-openmpi \
>         --with-input=openblas=mkl --with-git-url=gcvb=$HOME/src/gcvb \
>         --with-commit=gcvb=40d88ba241db4c71ac3e1fe8024fba4d906f45b1 \
>         --preserve=^SLURM --ad-hoc bash coreutils inetutils findutils \
>         grep sed bc openssh python python-psutil gcvb scab slurm@19 openmpi
>
> For this specific example, the order may or not matter.  The point is
> that HPC folks are intensively using transformations and, since the
> order currently matters, enforcing one specific order could break their
> workflow, and even could make impossible what is currently possible.

I'd argue that in the above case, the order doesn't or shouldn't matter.
The user clearly intended for them to be additive.

> Quoting Ludo,
>
>                                                  (this is crucial for our HPC
>         users, who routinely combine a whole bunch of options; you have no idea
>         how far they go once you give them the tool :-))
>
>         <https://issues.guix.gnu.org/msgid/[email-masked]>
>
> and I agree with « you have no idea how far they go once you give them
> the tool :-)) ».

It seems a bit hypothetical at this point, so I wouldn't want to cripple
the design by it.  Sure, users will find by experimentation how to
accomplish something, perhaps twisting it in odd ways to, but in my
opinion if the API was consistent it'd be much easier for everyone to
accomplish what they are after.  *If* a valid use case of the current
quirky behavior is discovered, we could consider adding a
'--order-sensitive' option or similar to restore that behavior, I just
don't think it should be the default.

> For what my opinion is worth. :-)

Thanks for sharing it!

-- 
Thanks,
Maxim