Subject: bug#54393: closed (Re: bug#54393: [PATCH 0/2] Add 'guix manifest' to "translate" commands to manifests)

From: [email-masked] (GNU bug Tracking System)
Date: Mon, 04 Apr 2022 21:17:02 +0000

Your bug report

#54393: [PATCH 0/2] Add 'guix manifest' to "translate" commands to manifests

which was filed against the guix-patches package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
54393: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=54393
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#54393: [PATCH 0/2] Add 'guix manifest' to "translate" commands to manifests
From: Ludovic Courtès <[email-masked]>
To: Maxim Cournoyer <[email-masked]>
Cc: [email-masked]
Date: Mon, 04 Apr 2022 23:16:13 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi!

Maxim Cournoyer <[email-masked]> skribis:

[...]

>> +(define (manifest->code* manifest extra-manifests)
>> +  "Like 'manifest->code', but insert a 'concatenate-manifests' call that
>> +concatenates MANIFESTS, a list of expressions."
>> +  (if (null? (manifest-entries manifest))
>> +      (match extra-manifests
>> +        ((one) one)
>> +        (lst   `(concatenate-manifests ,@extra-manifests)))
>> +      (match (manifest->code manifest
>> +                             #:entry-package-version
>> +                             manifest-entry-version-prefix)
>> +        (('begin exp ... last)
>> +         `(begin
>> +            ,@exp
>> +            ,(match extra-manifests
>> +               (() last)
>> +               (_  `(concatenate-manifests
>> +                     (list ,last ,@extra-manifests)))))))))
>
> Should an "else" clause be added here with a more useful error message
> that the default 'no match for x' or similar?  If that'd be totally
> unexpected and a bug, then it's fine as-is.

Yes, it would be a bug.

>> +  (define (validated-spec spec)
>> +    ;; Return SPEC if it's validate package spec.
>
> As this is an action (proc), perhaps it should be named "validate-spec".
> The comment doc should also be worded as "if SPEC is a valid package
> spec" or similar.

I fixed the comment but kept the name ‘validated-spec’, which is an
attempt at suggesting that it’s returns a meaningful value (whereas
‘validate-spec’ sounds like it’s called for effect and returns
*unspecified*).

> Thank you for addressing the suggestion to reuse an existing sub-command
> to try to keep things neatly organized instead of extending the already
> large set of them :-).

Heheh, thanks!

Pushed as b1e7e64f351fa03a66ce1f9776f9ba84cf2c6294 together with a news
entry.

Ludo’.

Subject: [PATCH 0/2] Add 'guix manifest' to "translate" commands to manifests
From: Ludovic Courtès <[email-masked]>
To: [email-masked]
Cc: Ludovic Courtès <[email-masked]>
Date: Mon, 14 Mar 2022 22:50:15 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello Guix!

Writing manifests can be intimidating: in part because it’s not
well documented, and in part because it’s always hard to start from
a blank page.

We have ‘guix package --export-manifest’ to help with that, but I
realized that colleagues of mine often use ‘guix shell’ more than
‘guix package’, and ‘--export-manifest’ is awkward to use:

  $ guix shell a b c d --transform=whatever=else
  [env]$ guix package --export-manifest -p $GUIX_ENVIRONMENT

I figured that instead of documenting this, we might as well provide
a command that does it in one go:

  guix manifest a b c d --transform=whatever=else > manifest.scm

Voilà!

Thoughts?

Next up: adding a “Writing Manifests” section.

Ludo’.

Ludovic Courtès (2):
  packages: Add 'package-unique-version-prefix'.
  Add 'guix manifest'.

 Makefile.am               |   2 +
 doc/guix.texi             | 146 +++++++++++++++++++++++++++++++-
 gnu/packages.scm          |  21 +++++
 guix/scripts/manifest.scm | 174 ++++++++++++++++++++++++++++++++++++++
 guix/scripts/package.scm  |  20 +----
 po/guix/POTFILES.in       |   1 +
 tests/guix-manifest.sh    |  76 +++++++++++++++++
 tests/packages.scm        |  13 +++
 8 files changed, 434 insertions(+), 19 deletions(-)
 create mode 100644 guix/scripts/manifest.scm
 create mode 100644 tests/guix-manifest.sh

base-commit: 857e5ab22292fe7c2ba5b9855c0829a2ef942d38
-- 
2.34.0