Subject: Re: bug#26264: [PATCH 0/1] Use '@' to separate name, version in package-full-name

From: Alex Sassmannshausen <[email-masked]>
Date: Sun, 26 Mar 2017 20:41:40 +0200

Hey Tobias,

Tobias Geerinckx-Rice writes:

> Alex,
>
> (I'm tempted to CC bug #26239 to mirror this discussion there, but I'm
> not sure if debbugs would DTRT.)

Right — sorry, not sure what the best approach is for that!
>
> On 26/03/17 14:25, Alex Sassmannshausen wrote:
>> There are several other approaches that could be taken:
>> 
>> * change the behaviour of package-full-name by default to use '@'.
>
> This is the tabula-rasa (well, ʕノ•ᴥ•ʔノ ︵ ┻━┻) approach I took myself.
>
>> This would result in significant semantic changes in different places
>> in Guix, where '-' is expected.
>
> Could you expand on what these are?

The example I encountered which caused me to bail (after having adapted
a few unit tests, e.g. in tests/profiles.scm, to expect the new name
format), is at `gnu/packages/commencement.scm`, line 234 ff (in
`gcc-boot0`):
-----------------8<------------------>8----------------
                   ,@(map (lambda (lib)
                            ;; Drop trailing letters, as gmp-6.0.0a unpacks
                            ;; into gmp-6.0.0.
                            `(symlink ,(string-trim-right
                                        (package-full-name lib)
                                        char-set:letter)
                                      ,(package-name lib)))
                          (list gmp-6.0 mpfr mpc))))
-----------------8<------------------>8----------------

It seems `package-full-name` is here used to write symlinks.  I'm afraid
I don't understand the context well enough to ascertain what effect
changing this to '@' based writing would have.

> My assumptions were:
>
>   - This touches mainly (only? but then I don't use fancy things
>     like emacs-guix) UI messages, or I missed it.

Right, that's what I had hoped too.

>   - If someone's scripts do rely on parsing this kind of output, they're
>     living on borrowed time, and will need to fix their scripts anyway.

Well… I guess it all depends on whether the function is intended for
file-system or UI name generation, and whether file-system filenames
should have a different format from UI names…

>   - ‘-’'s been deprecated for quite a long while, and the next
>     core-updates cycle is a good time to purge the last remnants of it.
>     Of course, this patch is about 2 cycles old by now...

Right, agreed, in the UI context; don't know about filename schemes.

>   - If we're rebuilding the whole world for this we should get it right.

Agreed.

HTH,

Alex