guix-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]