Bug 1666

Summary: display module for missing dependency
Product: bake Reporter: Tom Henderson <tomh>
Component: bakeAssignee: Daniel Camara <daniel.camara>
Status: REOPENED ---    
Severity: normal CC: ns-bugs
Priority: P5    
Version: unspecified   
Hardware: All   
OS: All   

Description Tom Henderson 2013-05-02 22:58:06 EDT
Here is 'bake.py download' for Ubuntu 13.04 machine without the python prerequisites to build bindings and pyviz:

-./bake.py download
 >> Searching for system dependency python-dev - Problem
 > Problem: Optional dependency, module "python-dev" failed.
   This may reduce the  functionalities of the final build. 
   However, bake will continue since "python-dev" is not an essential dependency.
   For more information call bake with -v or -vvv, for full verbose mode.

 >> Searching for system dependency pygraphviz - Problem
 > Problem: Optional dependency, module "pygraphviz" failed.
   This may reduce the  functionalities of the final build. 
   However, bake will continue since "pygraphviz" is not an essential dependency.
   For more information call bake with -v or -vvv, for full verbose mode.

 >> Searching for system dependency pygoocanvas - Problem
 > Problem: Optional dependency, module "pygoocanvas" failed.
   This may reduce the  functionalities of the final build. 
   However, bake will continue since "pygoocanvas" is not an essential dependency.
   For more information call bake with -v or -vvv, for full verbose mode.


it might be nice to show what is the impact of the missing dependency; i.e. which module will fail to build as a result.

Also, this could be improved a bit.

- > Problem: Optional dependency, module "pygoocanvas" failed.
-   This may reduce the  functionalities of the final build. 
+ > Problem: Optional dependency, module "pygoocanvas" not found.
+   This may reduce the functionality of the final build. 


   >> The python-dev, needed for python is not installed, try to install it.
Comment 1 Daniel Camara 2013-05-03 09:18:39 EDT
The comment improvement showing what is going on is a good idea and who depends on it is a good idea, but given that methods are reused by different parts of the code, not so evident to do. I perform some small changes but to do it properly a refactoring of some specific parts of the code will be needed. I will let the bug open so that I will not forget to do it in the future. 

 Knowing who depends on this module is even more complex since this information is not stored after the list of dependencies is made. Again, it is possible but I will need to rebuild some parts of the code. As an option the user can just call the --enabledTree in the bake show, that will give this information in a visual way.
Comment 2 Tom Henderson 2013-05-03 10:02:47 EDT
(In reply to comment #1)
> The comment improvement showing what is going on is a good idea and who depends
> on it is a good idea, but given that methods are reused by different parts of
> the code, not so evident to do. I perform some small changes but to do it
> properly a refactoring of some specific parts of the code will be needed. I
> will let the bug open so that I will not forget to do it in the future. 

I recognize this, small improvements are OK.

> 
>  Knowing who depends on this module is even more complex since this information
> is not stored after the list of dependencies is made. Again, it is possible but
> I will need to rebuild some parts of the code. As an option the user can just
> call the --enabledTree in the bake show, that will give this information in a
> visual way.

I was thinking that, perhaps upon a module build failure, there can be a conf check to alert the user something like:

>> build failed, perhaps it is because you miss dependencies X, Y, and Z

it might not be hard to correlate this at the point of module build time.

Anyway, this kind of refinement can be left for future work.