new module proposal: gobject-introspection



GObject Introspection in the bindings set
---

I know this is slightly past the deadline, hopefully we can work
through the issues.  I'd like to propose GObject Introspection as part
of the bindings release set.  Introspection is an infrastructure tool
for both applications and language bindings.
For more background, there's a longer description of what
introspection does here:
http://live.gnome.org/GObjectIntrospection

External Dependencies: Introspection currently depends on Python 2.5 or later.

Adoption: We have several binding consumers of introspection
(seed/gjs, pybank, sbank, jgir) in various stages.  We've made a good
amount of progress in allowing Vala to be rebased on introspection as
well.  Gnome-shell currently depends on introspection as a way to bind
metacity core.

GNOME-ness:  We feel we're fairly thoroughly GNOMEy =)

3.0 readiness: Relevant in the sense that introspection is a
dependency of gnome-shell which we would like to brand as GNOME 3.

License: LGPL 2.1+, a bit of BSD code here and there

Now, on to concerns/issues.

1) gir-repository is kind of like a "build-dependency black hole".
We've made some progress on getting introspection build put into a few
modules, but then some core modules like GTK+ gain an (optional)
dependency on a desktop module, not in a way critical to the operation
of GTK+ itself.  We can probably do some more of the key ones for this
release and just leave gir-repository aside.
2) API/ABI stability.  The point of going in the bindings release is
that we can set our own policy, which in this case is likely to be
"not guaranteed".
3) Will this conflict with the eventual goal of getting introspection
into GLib?  My feeling here is that it should generally be fine to
have a "flag day" where consumers are converted for any changes.

Overall the primary issue to work through is 1).  A sort of middle
ground option might be to move more of the "dependency black hole"
into the gobject-introspection module, specifically GTK+ and deps,
Clutter and deps.

The main goal is to enable distribution of seed/gjs/gnome-shell and
other bindings, while allowing introspection to continue to evolve
more under real-world use from projects like gnome-shell.


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