[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 3/3] emacs: Add "Source" field to 'guix-info' buffers.
From: |
Alex Kost |
Subject: |
Re: [PATCH 3/3] emacs: Add "Source" field to 'guix-info' buffers. |
Date: |
Wed, 12 Nov 2014 09:56:51 +0300 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux) |
Ludovic Courtès (2014-11-11 22:57 +0300) wrote:
> Alex Kost <address@hidden> skribis:
>
>> Ludovic Courtès (2014-11-11 02:29 +0300) wrote:
[...]
>>> There’s still the possibility that (1) the source is there, so no
>>> “Download” button, (2) the source is GC’d, and (3) there’s still no
>>> “Download” button and trying to access the source fails gracelessly.
>>>
>>> That’s probably not very common in practice, and easily fixed by hitting
>>> ‘g’, so maybe it’s not worth worrying. WDYT?
>>
>> Do you mean a user deleted the source (with "guix gc") when a “package
>> info” buffer was displayed? Sure such cases are not (and I think cannot
>> be) handled. It's the same as if:
>>
>> 1) a user has a list of installed packages,
>>
>> 2) installs another package somewhere outside (e.g., in a shell with
>> "guix package -i"),
>>
>> 3) and wonders why the list is not up-to-date.
>>
>> Of course it is not up-to-date! He needs to revert a buffer after that.
>
> It’s not really comparable, because GC is always something that can
> happen concurrently (one may choose to run it from cron, for instance.)
> But let’s ignore this possibility for the present case. :-)
OK, thanks
>>>> +(define (package-source-names package)
>>>> + "Return a list of source names (URLs) of the PACKAGE."
>>>> + (let ((source (package-source package)))
>>>> + (and (origin? source)
>>>> + (filter-map (lambda (uri)
>>>> + (cond ((string? uri)
>>>> + uri)
>>>> + ((git-reference? uri)
>>>> + (git-reference-url uri))
>>>> + (else #f)))
>>>> + (list-maybe (origin-uri source))))))
>>>
>>> The #f case above just leads to degraded display, not breakage, right?
>>> (I’m asking because of the other things beyond string? and
>>> git-reference?.)
>>
>> Yes, there _would_ be just "Source: –", but it will not happen because
>> there are no other things beyond a string URL and a git-reference URL.
>
> There’s also ‘svn-reference’ (not currently used), and possibly other
> things.
>
> The point is that this part will have to be updated anytime new origin
> methods are added.
Yes, sure. What about making “(else "Unknown source type")”? And if
some package will use a new origin method, a “Source” field will display
“Unknown source type” string, so we'll not forget to update this thing.
>> From 733c5276bcb9ded008e9c0a4dbe2e5fb6561b5eb Mon Sep 17 00:00:00 2001
>> From: Alex Kost <address@hidden>
>> Date: Sun, 9 Nov 2014 11:03:39 +0300
>> Subject: [PATCH] emacs: Add "Source" field to 'guix-info' buffers.
>> MIME-Version: 1.0
>> Content-Type: text/plain; charset=UTF-8
>> Content-Transfer-Encoding: 8bit
>>
>> Suggested by Ludovic Courtès.
>>
>> * emacs/guix-info.el (guix-info-insert-methods, guix-info-displayed-params):
>> Add 'source' parameter.
>> (guix-package-info-source): New face.
>> (guix-package-source): New button type.
>> (guix-package-info-auto-find-source,
>> guix-package-info-auto-download-source,
>> guix-package-info-download-buffer): New variables.
>> (guix-package-info-show-source, guix-package-info-insert-source-url,
>> guix-package-info-insert-source, guix-package-info-download-source,
>> guix-package-info-redisplay-after-download): New procedures.
>> * emacs/guix-base.el (guix-param-titles): Add 'source' parameter.
>> (guix-operation-prompt): Add 'prompt' argument.
>> (guix-after-source-download-hook): New variable.
>> (guix-package-source-path, guix-package-source-build-derivation): New
>> procedures.
>> * emacs/guix-main.scm (%package-param-alist): Add 'source' parameter.
>> (package-source-names, package-source-derivation->store-path,
>> package-source-path, package-source-build-derivation): New procedures.
>
> I think we’re all set now, no? :-)
I think so. May I commit with the above “Unknown source type” addition?
--
Alex
- [PATCH 3/3] emacs: Add "Source" field to 'guix-info' buffers., Alex Kost, 2014/11/09
- Re: [PATCH 3/3] emacs: Add "Source" field to 'guix-info' buffers., Ludovic Courtès, 2014/11/09
- Re: [PATCH 3/3] emacs: Add "Source" field to 'guix-info' buffers., Alex Kost, 2014/11/09
- Re: [PATCH 3/3] emacs: Add "Source" field to 'guix-info' buffers., Ludovic Courtès, 2014/11/09
- Re: [PATCH 3/3] emacs: Add "Source" field to 'guix-info' buffers., Alex Kost, 2014/11/10
- Re: [PATCH 3/3] emacs: Add "Source" field to 'guix-info' buffers., Ludovic Courtès, 2014/11/10
- Re: [PATCH 3/3] emacs: Add "Source" field to 'guix-info' buffers., Alex Kost, 2014/11/11
- Re: [PATCH 3/3] emacs: Add "Source" field to 'guix-info' buffers., Ludovic Courtès, 2014/11/11
- Re: [PATCH 3/3] emacs: Add "Source" field to 'guix-info' buffers.,
Alex Kost <=
- Re: [PATCH 3/3] emacs: Add "Source" field to 'guix-info' buffers., Ludovic Courtès, 2014/11/12