Re: GNOME 3.0 in March 2011



On Fri, 2010-07-30 at 01:00 +0200, Steve Frécinaux wrote:
> On 07/30/2010 12:39 AM, John Stowers wrote:
> > On Fri, 2010-07-30 at 00:32 +0200, Steve Frécinaux wrote:
> >> On 07/30/2010 12:28 AM, John Stowers wrote:
> >>> On Fri, 2010-07-30 at 00:23 +0200, Steve Frécinaux wrote:
> >>>> It's not as simple: you can't use pygtk and pygi at the same time in the
> >>>> same program.
> >>>
> >>> Is that still true if PyGtk+friends is built against Gtk-3.0 etc? That
> >>> is not my understanding.
> >>
> >> This has nothing to do with the Gtk version. It's merely that you can't
> >> have several C wrappers for the same gtype, so the first imported one
> >> wins. And they don't have exactly the same API. So if you use gtk.Window
> >> and Gtk.Frame, both will use the same GtkWidget wrapper, and it could be
> >> Gtk.Widget or gtk.Widget...
> >
> > I'm not suggesting mixing the bindings. No way.
> >
> > If a Python plugin only does "import pygtk,gedit (which pulls in the old
> > defs generated bindings [1])" then how does it clash with the gtypes
> > registered from gi (as AFAIK those are connected dynamically in the
> > 'from gi.repository import' hook)?
> 
> It's simple: plugins are in-process, and the limitation stands at the 
> interpretor level, so basically it's that a single process has to choose 
> between both wrappers.
> 
> If you do "import gtk" from plugin 1, the wrappers will be registered 
> and used when plugin 2 is loaded...

Ahh right, I forgot the per-process part. You are correct.

Can someone from Release Team or someone else suitable please write a
public service announcement to planet gnome, or gnome news or something
to explain this?

Something like "If you wrote a python plugin for GEdit/Rhythmbox/Totem
then you need to rewrite/fix it to use pygobject gobject-introspection
if you want it to work on GNOME 2.32 and GNOME 3.0"?

I would post something myself on pgo but I fear it would be interpreted
as a passive-agressive whine (because I don't maintain any of the
modules in question). Nevertheless I think it is something that needs to
be said publicly and loudly. Managing expectations is important if we
don't want a backlash against GNOME 3.0.

Furthermore, does the RT have a policy on API (and ABI where applicable)
guarantees for bindings/plugin APIs? I suspect with javascript seeing
more use in GNOME we might hit this sort of issue again (Seed vs. GJS
for example).

Regards,

John

p.s. How does this story work for nautilus (which will be built against
Gtk-3.0 I presume, but still only has defs generated bindings for
python. In that case they will need a pygtk built against 3.0, correct?)



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