unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: ludo@gnu.org (Ludovic Courtès)
To: Mathieu Lirzin <mthl@gnu.org>
Cc: guix-devel@gnu.org, Alex Kost <alezost@gmail.com>
Subject: Re: [PATCH 04/13] utils: Use '@' for separating package names and version numbers.
Date: Tue, 26 Jan 2016 22:08:50 +0100	[thread overview]
Message-ID: <878u3c121p.fsf@gnu.org> (raw)
In-Reply-To: <87y4bc2hcm.fsf@gnu.org> (Mathieu Lirzin's message of "Tue, 26 Jan 2016 21:52:57 +0100")

Mathieu Lirzin <mthl@gnu.org> skribis:

> ludo@gnu.org (Ludovic Courtès) writes:
>
>> Mathieu Lirzin <mthl@gnu.org> skribis:
>>
>>> +++ b/guix/build/utils.scm
>>>
>>>  (define (package-name->name+version name)
>>> -  "Given NAME, a package name like \"foo-0.9.1b\", return two values:
>>> -\"foo\" and \"0.9.1b\".  When the version part is unavailable, NAME and
>>> -#f are returned.  The first hyphen followed by a digit is considered to
>>> -introduce the version part."
>>> +  "Given NAME, a package name like \"foo@0.9.1b\", return two values: \"foo\"
>>> +and \"0.9.1b\".  When the version part is unavailable, NAME and #f are
>>> +returned.  Both parts must not contain any '@'."
>>
>> I think this one should remain unchanged, first because it triggers a
>> full rebuild ;-), and second because it has uses in
>> {emacs,gnu}-build-system that expect exactly these semantics.
>
> Actually It seems not used in gnu-build-system, instead there is this:
>
>       ;; XXX: We'd rather use `package-name->name+version' or similar.
>       (string-drop (if dash
>                        (substring base 0 dash)
>                        base)
>                    (+ 1 (string-index base #\-)))))

It’s almost used, then.  ;-)

>> So I think we have to simply provide a different version of that in
>> (guix utils) or so.
>>
>> Also, I think that at least for some time, the new
>> ‘package-name->name+version’ (maybe we could call it
>> ‘package-specification->name+version’ for consistency) should fall back
>> to the old method when:
>>
>>   1. The spec has no @ sign, and
>>
>>   2. The specified package name was not found.
>>
>> It could print a warning when the old method has been used *and* a
>> matching package was found, explaining that this is deprecated syntax.
>
> OK. I will give a try.

Awesome!

>>> +(define* (package-full-name package #:optional (separator "@"))
>>> +  "Return a string which is the concatenation of PACKAGE name, SEPARATOR, and
>>> +PACKAGE version.  SEPARATOR is a optional argument defaulting to \"@\".
>>> +PACKAGE must be a <package> record."
>>> +  (string-append (package-name package) separator (package-version package)))
>>
>> I wonder what will break by changing the default to ‘@’.  :-)
>>
>> ‘package-full-name’ is used in a bunch of different places, including
>> user interfaces and for anchors in the generated HTML pages (is ‘@’
>> allowed in HTML anchor names?).
>
> According to <https://www.w3.org/TR/html401/types.html#type-name>, using
> ‘@’ in ids is not compatible with HTML4.  But according to
> <https://www.w3.org/TR/2014/REC-html5-20141028/dom.html#the-id-attribute>
> and from what I have successfully tested in Icecat 38.5.2, it works in
> HTML5.

OK, thanks for researching it.  I guess we can conservatively keep using
hyphens for anchors.

Ludo’.

  reply	other threads:[~2016-01-26 21:09 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-24 20:19 [PATCH 00/13] New syntax 'package@version' and compilation improvements Mathieu Lirzin
2016-01-24 20:19 ` [PATCH 01/13] tests: Use 'dummy-origin' for lint tests when possible Mathieu Lirzin
2016-01-26 15:58   ` Ludovic Courtès
2016-01-24 20:19 ` [PATCH 02/13] lint: Remove an unneeded clause in 'check-patch-file-names' Mathieu Lirzin
2016-01-26 16:00   ` Ludovic Courtès
2016-01-24 20:19 ` [PATCH 03/13] lint: Rewrite 'check-patch-file-names' Mathieu Lirzin
2016-01-26 16:01   ` Ludovic Courtès
2016-01-24 20:19 ` [PATCH 04/13] utils: Use '@' for separating package names and version numbers Mathieu Lirzin
2016-01-25 11:37   ` Alex Kost
2016-01-25 20:56     ` Mathieu Lirzin
2016-01-26 16:22       ` Ludovic Courtès
2016-01-26 20:52         ` Mathieu Lirzin
2016-01-26 21:08           ` Ludovic Courtès [this message]
2016-02-19 20:49         ` Mathieu Lirzin
2016-02-23 11:11           ` Ludovic Courtès
2016-02-29  0:28             ` Mathieu Lirzin
2016-02-29 16:00               ` Ludovic Courtès
2016-03-02 21:35                 ` Mathieu Lirzin
2016-03-05  1:28                 ` Nils Gillmann
2016-03-05  9:24                   ` Alex Kost
2016-03-05  9:36                   ` Mathieu Lirzin
2016-03-03 10:29               ` Alex Kost
2016-03-03 16:55                 ` Ludovic Courtès
2016-03-04 10:19                   ` Alex Kost
2016-03-04 23:03                 ` Mathieu Lirzin
2016-03-04 23:25                   ` Ludovic Courtès
2016-03-05  1:08                     ` Mathieu Lirzin
2016-03-05  9:16                   ` Alex Kost
2016-01-25 14:04   ` Thompson, David
2016-01-25 21:41     ` Mathieu Lirzin
2016-01-25 23:33       ` Alex Kost
2016-01-26 17:57         ` Mathieu Lirzin
2016-01-24 20:19 ` [PATCH 05/13] packages: Use '@' in package record printers Mathieu Lirzin
2016-01-26 16:22   ` Ludovic Courtès
2016-01-24 20:19 ` [PATCH 06/13] build: Generate man pages after compiling guile objects Mathieu Lirzin
2016-01-26 16:52   ` Ludovic Courtès
2016-01-26 20:08     ` Mathieu Lirzin
2016-01-28  2:37       ` Eric Bavier
2016-01-28 15:44         ` Mathieu Lirzin
2016-01-28 15:59           ` Eric Bavier
2016-01-28 17:00             ` Mathieu Lirzin
2016-01-29  0:27               ` Eric Bavier
2016-01-29 16:17                 ` Mathieu Lirzin
2016-01-29 16:46                   ` Eric Bavier
2016-01-29 22:56                     ` Mathieu Lirzin
2016-01-31  9:17                       ` Ludovic Courtès
2016-01-24 20:19 ` [PATCH 07/13] build: Add 'DL' silent rule Mathieu Lirzin
2016-01-26 16:28   ` Ludovic Courtès
2016-01-26 17:44     ` Mathieu Lirzin
2016-01-26 19:22       ` Taylan Ulrich Bayırlı/Kammer
2016-01-26 21:06       ` Ludovic Courtès
2016-01-26 21:14         ` Mathieu Lirzin
2016-01-24 20:19 ` [PATCH 08/13] build: Add 'DOT' " Mathieu Lirzin
2016-01-26 16:28   ` Ludovic Courtès
2016-01-24 20:19 ` [PATCH 09/13] build: Add 'EMACS' " Mathieu Lirzin
2016-01-26 16:28   ` Ludovic Courtès
2016-01-24 20:19 ` [PATCH 10/13] build: Add 'HELP2MAN' " Mathieu Lirzin
2016-01-26 16:29   ` Ludovic Courtès
2016-01-24 20:19 ` [PATCH 11/13] build: Delete emacs/guix-autoloads.el when 'make clean' Mathieu Lirzin
2016-01-26 16:33   ` Ludovic Courtès
2016-01-26 22:55     ` Mathieu Lirzin
2016-01-24 20:19 ` [PATCH 12/13] build: Use 'GEN' and 'at' silent rules Mathieu Lirzin
2016-01-26 16:34   ` Ludovic Courtès
2016-01-24 20:19 ` [PATCH 13/13] Update .gitignore Mathieu Lirzin
2016-01-26 16:34   ` Ludovic Courtès

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=878u3c121p.fsf@gnu.org \
    --to=ludo@gnu.org \
    --cc=alezost@gmail.com \
    --cc=guix-devel@gnu.org \
    --cc=mthl@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).