guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Outreachy - Guix Data Service: implementing basic json output for de


From: Luciana Lima Brito
Subject: Re: Outreachy - Guix Data Service: implementing basic json output for derivation comparison page
Date: Fri, 16 Apr 2021 15:07:40 +0000

On Fri, 16 Apr 2021 00:19:46 +0100
Christopher Baines <mail@cbaines.net> wrote:

Hi,
 
> Ok, I looked at the overall diff, and it looks to me like these
> changes should probably be one commit.

I don't actually understand what you mean saying it should be one
commit. Do I have to make my seven commits become a single one? How do
I do that?
 
> On the get-derivation-data function, I wouldn't use the same function
> to process the inputs, outputs and sources. The data for each is
> different, so I would separate the code as well.

I understand that, but the logic to map the values for these three
bindings is the same, wouldn't it generate redundancies implementing
the same logic separately? 
> 
> To avoid having to call a procedure three times, on the base, target
> and common items, I'd consider following the same pattern in the HTML
> generating code, map over a list of the lists, so something like:
> 
>   (map (lambda (name data)
>          (cons name
>                (match data
>                  ((name path hash-alg hash recursive)
>                   ...))))
>        '(base target common)
>        (list (assq-ref outputs 'base)
>              (assq-ref outputs 'target)
>              (assq-ref outputs 'common)))
> 
> Does that make sense?

Actually I did it in a similar way before, but it resulted in a list
with all the values for base, target and common together, in which
I had to have another way to separate them and render on json, for
example, I tried appending "base", "target" or "common" names to each
list (similar to your function?), but them I had to convert this list to
a vector. Calling the function for each separately gave me a cleaner
output. Also, I think that sometimes you might have more than one output
for base, target like it does for common, and I fail to see how your
example function addresses this. In short, I couldn't see the benefit
of this over calling the function three times. Is it for organizational
purpose or am I simply wrong? This time I'm just not understanding.

:)

-- 
Best Regards,

Luciana Lima Brito
MSc. in Computer Science



reply via email to

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