Patchwork [bitbake-devel] v2 [PATCH 0/2] data_smart.py: Track inclusions and assignments

login
register
mail settings
Submitter Peter Seebach
Date May 21, 2012, 3:10 p.m.
Message ID <cover.1337612802.git.peter.seebach@windriver.com>
Download mbox
Permalink /patch/28225/
State New
Headers show

Pull-request

git://git.yoctoproject.org/poky-contrib seebs/tracking

Comments

Peter Seebach - May 21, 2012, 3:10 p.m.
This revised patch now uses Python's traceback facility to assign
meaningful locations (file and function, rather than line) to operations
which weren't specified, and correspondingly does not specify file and
line when the file name would have been the python code making the
assignment; this makes the patch smaller and the output more meaningful.

As before, this is a patch to add tracking showing when and how variables
got their values, and which configuration files were included from which
other configuration files.

The following changes since commit 39adb5741d9eee0879d3181be505400dffc60804:
  Andrei Gherzan (1):
        bb/fetch2/__init__.py: Don't try to compute checksums for directories

are available in the git repository at:

  git://git.yoctoproject.org/poky-contrib seebs/tracking
  http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=seebs/tracking

Peter Seebach (2):
  data_smart.py: Provide (optional) logging of variable modifications
  data_smart.py: Track configuration file inclusions

 lib/bb/cooker.py         |    2 +
 lib/bb/data.py           |   65 +++++++++++++++++-----
 lib/bb/data_smart.py     |  140 +++++++++++++++++++++++++++++++++++++--------
 lib/bb/parse/__init__.py |    6 ++-
 lib/bb/parse/ast.py      |   65 ++++++++++++----------
 5 files changed, 209 insertions(+), 69 deletions(-)
Chris Larson - May 21, 2012, 7:54 p.m.
On Mon, May 21, 2012 at 8:10 AM, Peter Seebach
<peter.seebach@windriver.com> wrote:
> This revised patch now uses Python's traceback facility to assign
> meaningful locations (file and function, rather than line) to operations
> which weren't specified, and correspondingly does not specify file and
> line when the file name would have been the python code making the
> assignment; this makes the patch smaller and the output more meaningful.
>
> As before, this is a patch to add tracking showing when and how variables
> got their values, and which configuration files were included from which
> other configuration files.
>
> The following changes since commit 39adb5741d9eee0879d3181be505400dffc60804:
>  Andrei Gherzan (1):
>        bb/fetch2/__init__.py: Don't try to compute checksums for directories

While these still aren't the prettiest, I think they're a lot cleaner
than they were, and given the obvious value, I think we should
consider merging them. Richard, thoughts?
Peter Seebach - May 21, 2012, 8:26 p.m.
On Mon, 21 May 2012 12:54:10 -0700
Chris Larson <clarson@kergoth.com> wrote:

> While these still aren't the prettiest, I think they're a lot cleaner
> than they were, and given the obvious value, I think we should
> consider merging them.

The only other thing that sort of occurred to me was that it might be
useful in such a case to break out the parts of finalize so the
tracking of assignments and changes which occur there to be more
obvious.  (Say, move the _append and _override logics to their own
functions.)

Not sure it's worth it, though.  I suppose I could just make those
setVars be (var, value, None, None, 'append') or whatever.

-s
Richard Purdie - May 22, 2012, 1:43 p.m.
On Mon, 2012-05-21 at 12:54 -0700, Chris Larson wrote:
> On Mon, May 21, 2012 at 8:10 AM, Peter Seebach
> <peter.seebach@windriver.com> wrote:
> > This revised patch now uses Python's traceback facility to assign
> > meaningful locations (file and function, rather than line) to operations
> > which weren't specified, and correspondingly does not specify file and
> > line when the file name would have been the python code making the
> > assignment; this makes the patch smaller and the output more meaningful.
> >
> > As before, this is a patch to add tracking showing when and how variables
> > got their values, and which configuration files were included from which
> > other configuration files.
> >
> > The following changes since commit 39adb5741d9eee0879d3181be505400dffc60804:
> >  Andrei Gherzan (1):
> >        bb/fetch2/__init__.py: Don't try to compute checksums for directories
> 
> While these still aren't the prettiest, I think they're a lot cleaner
> than they were, and given the obvious value, I think we should
> consider merging them. Richard, thoughts?

I agree, I'd prefer we could find a neater way to do this but our
current structure doesn't lend itself to this and this is not looking
too bad.

My main concerns would be related to performance and since this defaults
to disabled, it shouldn't be too bad. It also does answer an important
question we do keep getting asked, namely, "how did variable X get set
or Y" or "which files did Bitbake actually look at". These changes allow
us to give people a way to answer those questions.

So I want to take a closer look through the patches but I'm leaning
toward merging them. If we find ways to make things neater, great but
this is probably as good a start as we can hope for.

Cheers,

Richard
Peter Seebach - May 22, 2012, 4:13 p.m.
On Tue, 22 May 2012 14:43:39 +0100
Richard Purdie <richard.purdie@linuxfoundation.org> wrote:

> So I want to take a closer look through the patches but I'm leaning
> toward merging them. If we find ways to make things neater, great but
> this is probably as good a start as we can hope for.

They need one small bug fixed (there's a missing [1] in the mods to
createCopy), but apart from that I'm using them without noticeable
trouble.

If these get added to bitbake, there's a related change to oe-core
that might be handy, to suppress sanity checks when using this feature
so you can get an explanation of what went wrong.

-s
Richard Purdie - May 25, 2012, 6:56 a.m.
On Tue, 2012-05-22 at 11:13 -0500, Peter Seebach wrote:
> On Tue, 22 May 2012 14:43:39 +0100
> Richard Purdie <richard.purdie@linuxfoundation.org> wrote:
> 
> > So I want to take a closer look through the patches but I'm leaning
> > toward merging them. If we find ways to make things neater, great but
> > this is probably as good a start as we can hope for.
> 
> They need one small bug fixed (there's a missing [1] in the mods to
> createCopy), but apart from that I'm using them without noticeable
> trouble.

FWIW, I'm planning to look at this next week, am not likely to get there
today.

> If these get added to bitbake, there's a related change to oe-core
> that might be handy, to suppress sanity checks when using this feature
> so you can get an explanation of what went wrong.

I suspect a recent change to sanity.bbclass has made that obsolete...

Cheers,

Richard