Subject: [bug#55316] [PATCH] scripts: package: Transform before creating manifest entries.

From: Ludovic Courtès <[email-masked]>
Date: Mon, 09 May 2022 11:51:58 +0200

Hello!

Josselin Poiret <[email-masked]> skribis:

> * guix/scripts/package.scm (options->installable): Add TRANSFORM
> argument, to be able to directly transform the new packages before
> creating their manifest entries.
> (process-actions): Remove transform-entry, and step3.
> ---
> Hello everyone,
>
> Someone on IRC [1] reported that they couldn't run
>
> guix install emacs-avy emacs-embark --with-branch=emacs-avy=master --with-branch=emacs-embark=master
>
> without guix complaining about conflicting entries of emacs-avy and
> the propagated one from emacs-embark, even in a profile without either
> of them.  The issue was that package transformations were applied to
> the contents of the generated manifest entries, but weren't applied to
> any of their dependencies.

Interesting.

> To solve this, I figured it would be simpler to just apply the
> transformation from the start, only creating the manifest entries
> after they have been applied.  Also, the default
> `package->manifest-entry` preserves transformations properties by
> default, so this doesn't lose any info either.

As discussed on IRC, could you make sure transformation properties are
preserved in the manifest?

I only see one test that explicitly checks that,
"transaction-upgrade-entry, transformation options preserved" in
tests/packages.scm, and then there’s "options->transformation +
package->manifest-entry" in tests/transformations.scm.

Also, could you add a test that reproduces the problem being fixed?

Thanks!

Ludo’.