Re: New ‘guix graph’ command

2015-09-11 Thread Ludovic Courtès
Cyril Roelandt  skribis:

> On 08/27/2015 12:53 AM, Ludovic Courtès wrote:
>> Here’s a long overdue ‘guix graph’ command (documentation below.)
>> Comments welcome!
>
> Would it be hard to do the opposite of what guix graph does ? I'd like
> to be able to find the list of packages which depend on a given package.
> This would be useful when updating a package, to make sure that the
> update does not break anything.

It shouldn’t be too hard, using something akin to the code of ‘guix
refresh --list-dependent’.

Ludo’.



Re: New ‘guix graph’ command

2015-09-11 Thread Leo Famulari
I think that is what `guix gc --referrers /gnu/store/...package` does.

http://www.gnu.org/software/guix/manual/html_node/Invoking-guix-gc.html

On Thu, Sep 10, 2015, at 20:02, Cyril Roelandt wrote:
> On 08/27/2015 12:53 AM, Ludovic Courtès wrote:
> > Here’s a long overdue ‘guix graph’ command (documentation below.)
> > Comments welcome!
> 
> Would it be hard to do the opposite of what guix graph does ? I'd like
> to be able to find the list of packages which depend on a given package.
> This would be useful when updating a package, to make sure that the
> update does not break anything.
> 
> WDYT?
> 
> 
> Cyril.
> 



Re: New ‘guix graph’ command

2015-09-10 Thread Cyril Roelandt
On 08/27/2015 12:53 AM, Ludovic Courtès wrote:
> Here’s a long overdue ‘guix graph’ command (documentation below.)
> Comments welcome!

Would it be hard to do the opposite of what guix graph does ? I'd like
to be able to find the list of packages which depend on a given package.
This would be useful when updating a package, to make sure that the
update does not break anything.

WDYT?


Cyril.



Re: New ‘guix graph’ command

2015-09-04 Thread Andreas Enge
On Fri, Sep 04, 2015 at 10:13:01AM +0200, Pjotr Prins wrote:
> Maybe we should have both.

Well, there is no real need for two versions; if most people like things
as they are, they should stay as they are.

Andreas




Re: New ‘guix graph’ command

2015-09-04 Thread Pjotr Prins
Maybe we should have both. I like the current version because it reads
logically from a *users* perspective. E.g.

  http://dthompson.us/images/guix/ruby-pg-graph.png

ruby-pg depends on postgresql 9.3.8, depends on zlib 1.2.7. Logical.

Pj.

On Thu, Sep 03, 2015 at 08:55:46PM +, Cook, Malcolm wrote:
> Hi,
> 
> I like the request.
> 
> I think the dependent packages should be pointed to.
> 
> In this way, each node in the graph and its outgoing arrows reflect the 
> contents of a single package.
> 
> ~Malco
> 
>  > -Original Message-
>  > From: guix-devel-bounces+mec=stowers@gnu.org [mailto:guix-devel-
>  > bounces+mec=stowers@gnu.org] On Behalf Of Ludovic Courtès
>  > Sent: Thursday, September 03, 2015 3:47 PM
>  > To: Andreas Enge 
>  > Cc: Guix-devel 
>  > Subject: Re: New ‘guix graph’ command
>  > 
>  > Hey!
>  > 
>  > Andreas Enge  skribis:
>  > 
>  > > Very neat indeed! A tiny bit of nitpicking: Would it not be preferable
>  > > if the arrows were reversed, from the inputs to the dependent packages?
>  > 
>  > Dunno, maybe the graph people would choose the other direction but I like 
> it
>  > this way, looks more “intuitive” to me.  What do people think?
>  > 
>  > Ludo’.
> 

-- 



RE: New ‘guix graph’ command

2015-09-03 Thread Cook, Malcolm
Hi,

I like the request.

I think the dependent packages should be pointed to.

In this way, each node in the graph and its outgoing arrows reflect the 
contents of a single package.

~Malco

 > -Original Message-
 > From: guix-devel-bounces+mec=stowers@gnu.org [mailto:guix-devel-
 > bounces+mec=stowers@gnu.org] On Behalf Of Ludovic Courtès
 > Sent: Thursday, September 03, 2015 3:47 PM
 > To: Andreas Enge 
 > Cc: Guix-devel 
 > Subject: Re: New ‘guix graph’ command
 > 
 > Hey!
 > 
 > Andreas Enge  skribis:
 > 
 > > Very neat indeed! A tiny bit of nitpicking: Would it not be preferable
 > > if the arrows were reversed, from the inputs to the dependent packages?
 > 
 > Dunno, maybe the graph people would choose the other direction but I like it
 > this way, looks more “intuitive” to me.  What do people think?
 > 
 > Ludo’.



Re: New ‘guix graph’ command

2015-09-03 Thread Thompson, David
On Thu, Sep 3, 2015 at 4:46 PM, Ludovic Courtès  wrote:
> Hey!
>
> Andreas Enge  skribis:
>
>> Very neat indeed! A tiny bit of nitpicking: Would it not be preferable if
>> the arrows were reversed, from the inputs to the dependent packages?
>
> Dunno, maybe the graph people would choose the other direction but I
> like it this way, looks more “intuitive” to me.  What do people think?

I prefer it the way that it is because it reflects the actual data
structure.  It's intuitive because I often ask "what does this
software depend on?", not "what depends on this software?"

- Dave



Re: New ‘guix graph’ command

2015-09-03 Thread Ludovic Courtès
Hey!

Andreas Enge  skribis:

> Very neat indeed! A tiny bit of nitpicking: Would it not be preferable if
> the arrows were reversed, from the inputs to the dependent packages?

Dunno, maybe the graph people would choose the other direction but I
like it this way, looks more “intuitive” to me.  What do people think?

Ludo’.



Re: New ‘guix graph’ command

2015-09-03 Thread Andreas Enge
Hello!

On Thu, Aug 27, 2015 at 12:53:03AM +0200, Ludovic Courtès wrote:
> Here’s a long overdue ‘guix graph’ command (documentation below.)
> Comments welcome!

Very neat indeed! A tiny bit of nitpicking: Would it not be preferable if
the arrows were reversed, from the inputs to the dependent packages?

Andreas




Re: New ‘guix graph’ command

2015-08-27 Thread Thompson, David
On Thu, Aug 27, 2015 at 4:55 PM, Ludovic Courtès  wrote:
> "Thompson, David"  skribis:
>
>> Just one question: I see that when using the 'references' type, each
>> node in the graph has an arrow pointing to itself.  Is that
>> intentional?
>
> It’s not really “each node” but rather “most nodes.”  :-)
>
> The daemon keeps track of all the references of each item, including
> self-references.  And it turns out that most packages record their
> $prefix in their binaries, for instance, hence the self-reference.  This
> can be seen with ‘guix gc --references’ as well.

That makes sense. Thanks for the explanation!

- Dave



Re: New ‘guix graph’ command

2015-08-27 Thread Ludovic Courtès
"Thompson, David"  skribis:

> Just one question: I see that when using the 'references' type, each
> node in the graph has an arrow pointing to itself.  Is that
> intentional?

It’s not really “each node” but rather “most nodes.”  :-)

The daemon keeps track of all the references of each item, including
self-references.  And it turns out that most packages record their
$prefix in their binaries, for instance, hence the self-reference.  This
can be seen with ‘guix gc --references’ as well.

Ludo’.



Re: New ‘guix graph’ command

2015-08-27 Thread Thompson, David
On Wed, Aug 26, 2015 at 6:53 PM, Ludovic Courtès  wrote:
> Hi!
>
> Here’s a long overdue ‘guix graph’ command (documentation below.)
> Comments welcome!

This is awesome!  I think it will prove to be a really helpful tool
for understanding the relationships between packages and discovering
issues like packages that have references to build-time dependencies.

Just one question: I see that when using the 'references' type, each
node in the graph has an arrow pointing to itself.  Is that
intentional?

Thanks for the awesome new tool!

- Dave



Re: New ‘guix graph’ command

2015-08-27 Thread Alex Kost
Ludovic Courtès (2015-08-27 01:53 +0300) wrote:

> Here’s a long overdue ‘guix graph’ command (documentation below.)
> Comments welcome!

This is really cool!  Thank you!

-- 
Alex



Re: New ‘guix graph’ command

2015-08-27 Thread Ludovic Courtès
Mathieu Lirzin  skribis:

> Nice job, It is really convenient to have such utility.
>
> Does it sound feasible to produce different edge colors depending of the type
> of inputs?

Of course!  But this is left as an exercise to the reader.  :-)

Similarly, I thought we could use different color boxes based on the
size of a store item, for the ‘references’ DAGs.

It “just needs” adding an attribute argument to the ‘emit-node’ and
‘emit-edges’ hooks of .  I don’t plan to work on it in
the near future but would definitely welcome patches.

> Not really important, but IMO it would be clearer to define bag-emerged
> in terms of what bag is doing with something like this.
>
> ‘bag’   
>  This is the package DAG, _including_ implicit inputs.  
> 
> ‘bag-emerged’ 
>   
>  Similar to ‘bag’, but this time without all the bootstrap
>  dependencies.
>
>  For instance, the following command:   
> 
>   guix graph --type=bag-emerged coreutils | dot -Tpdf > dag.pdf 
> 
>  [...]
>
> What do you think?

Perhaps this isn’t very clear but I wanted to list the graph types in
order of increasing complexity, which is why ‘bag’ comes after
‘bag-emerged’.  Dunno if something needs to be changed; thoughts?

Thanks,
Ludo’.



Re: New ‘guix graph’ command

2015-08-27 Thread Mathieu Lirzin
Nice job, It is really convenient to have such utility.

Does it sound feasible to produce different edge colors depending of the type
of inputs?

l...@gnu.org (Ludovic Courtès) writes:

> ‘bag-emerged’
>  This is the package DAG, _including_ implicit inputs.
>
>  For instance, the following command:
>
>   guix graph --type=bag-emerged coreutils | dot -Tpdf > dag.pdf
>
>  ...  yields this bigger graph:
>
>
>
>  At the bottom of the graph, we see all the implicit inputs of
>  GNU-BUILD-SYSTEM (*note ‘gnu-build-system’: Build Systems.).
>
>  Now, note that the dependencies of those implicit inputs—that is,
>  the “bootstrap dependencies” (*note Bootstrapping::)—are not shown
>  here, for conciseness.
>
> ‘bag’
>  Similar to ‘bag-emerged’, but this time including all the bootstrap
>  dependencies.

Not really important, but IMO it would be clearer to define bag-emerged
in terms of what bag is doing with something like this.

--8<---cut here---start->8---
‘bag’   
 This is the package DAG, _including_ implicit inputs.  

‘bag-emerged’   
 Similar to ‘bag’, but this time without all the bootstrap
 dependencies.

 For instance, the following command:   

  guix graph --type=bag-emerged coreutils | dot -Tpdf > dag.pdf 

 [...]
--8<---cut here---end--->8---

What do you think?

--
Mathieu Lirzin



Re: New ‘guix graph’ command

2015-08-27 Thread Pjotr Prins
Very useful!

On Thu, Aug 27, 2015 at 12:53:03AM +0200, Ludovic Courtès wrote:
> Hi!
> 
> Here’s a long overdue ‘guix graph’ command (documentation below.)
> Comments welcome!
> 
> Ludo’.