[bitbake-devel] [PATCH 6/7] bitbake: event: adding events to allow bbclasses to push custom info
Damian, Alexandru
alexandru.damian at intel.com
Mon Sep 16 13:56:32 UTC 2013
On Mon, Sep 16, 2013 at 2:46 PM, Richard Purdie <
richard.purdie at linuxfoundation.org> wrote:
> On Mon, 2013-09-16 at 14:33 +0100, Alex DAMIAN wrote:
> > From: Alexandru DAMIAN <alexandru.damian at intel.com>
> >
> > We add a new event that will be triggered by the
> > package-building class, containing the information
> > about the currently built package.
> >
> > Adding an event that will passi information about the
> > content of each package file that gets built.
> >
> > Knotty UI will ignore these events by default.
> >
> > Maybe a mechanism for using a single generic event is in order ?
> >
> > Signed-off-by: Alexandru DAMIAN <alexandru.damian at intel.com>
> > ---
> > bitbake/lib/bb/event.py | 16 ++++++++++++++++
> > bitbake/lib/bb/ui/knotty.py | 2 ++
> > 2 files changed, 18 insertions(+)
> >
> > diff --git a/bitbake/lib/bb/event.py b/bitbake/lib/bb/event.py
> > index 67cfcea..7dd9236 100644
> > --- a/bitbake/lib/bb/event.py
> > +++ b/bitbake/lib/bb/event.py
> > @@ -589,6 +589,22 @@ class PackageInfo(Event):
> > Event.__init__(self)
> > self._pkginfolist = pkginfolist
> >
> > +class SinglePackageInfo(Event):
> > + """
> > + Single Package Information sent on emit_pkgdata
> > + """
> > + def __init__(self, data):
> > + Event.__init__(self)
> > + self._data = data
> > +
> > +class PackageFileSizes(Event):
> > + """
> > + Event that contains information about the file sizes contained in a
> package.
> > + """
> > + def __init__(self, data):
> > + Event.__init__(self)
> > + self._data = data
> > +
> > class SanityCheck(Event):
> > """
>
> Your explanation in the commit message isn't as detailed as it could
> be.
>
> I'm guessing but I suspect the problem we have is that the event cannot
> be rebuilt on the other side of an XMLRPC connection without having the
> event class in a common namespace?
>
> This is therefore a hack to allow the event to exist in all the client
> side namespaces.
>
[Alex] Yep, this is an ugly hack.
>
> Ideally we should really have an API which allows the classes themselves
> to declare their event formats and not require adding to event.py every
> time a new piece of code/event is added.
>
[Alex] I would favor a single "GenericEvent" that will take a set of
defined parameters,
that would allow "subclassing" at runtime - sort of introspection if you
will.
Something like this:
class GenericInfo(Event):
def __init__(self, type, data):
Event.__init__(self)
self._type = type
self._data = data
with a call like
bb.event.fire(bb.event.GenericInfo("PackageInfo", pkginfolist), e.data)
the UI handlers / anybody would subscribe to GenericInfo events,
and the processing code would look like:
if isinstance(event, bb.event.GenericInfo):
if event._type == "PackageInfo":
savePackageInfo(event)
elif event._type == "PackageFileSizes":
....
What do you think ?
>
> Presumably there is some change required to OE-Core in order for this
> get used to?
>
The code using the e
>
> Is the PackageFileSizes not contained in the other event data?
>
[Alex] Not that I could find.
>
> I appreciate we allowed PackageInfo in but I didn't like it at the time,
> I like it even less now I see we're just going to keep doing this :(.
>
> > Event to issue sanity check
> > diff --git a/bitbake/lib/bb/ui/knotty.py b/bitbake/lib/bb/ui/knotty.py
> > index 0211b50..03baa75 100644
> > --- a/bitbake/lib/bb/ui/knotty.py
> > +++ b/bitbake/lib/bb/ui/knotty.py
> > @@ -477,6 +477,8 @@ def main(server, eventHandler, params, tf =
> TerminalFilter):
> >
> > # ignore
> > if isinstance(event, (bb.event.BuildBase,
> > + bb.event.PackageFileSizes,
> > + bb.event.SinglePackageInfo,
> > bb.event.StampUpdate,
> > bb.event.ConfigParsed,
> > bb.event.RecipeParsed,
>
>
> Given the event masking that is now in knotty, do we need to do this?
> Can't we remove this block?
>
[Alex] Yep, it should get removed. I refrained from doing so since it
wasn't deleted
when the subscription code got merged in.
> Cheers,
>
> Richard
>
>
>
--
Alex Damian
Yocto Project
SSG / OTC
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/bitbake-devel/attachments/20130916/eef9ff65/attachment-0002.html>
More information about the bitbake-devel
mailing list