[Gtk-sharp-list] Gtk# 2.x release status and thoughts on 3.0

Mike Kestner mkestner at gmail.com
Wed May 27 12:36:10 EDT 2009

In the interest of keeping everyone informed about the direction of
gtk-sharp development, I wanted to share some thoughts on where we are,
and where we plan to go in the near future.

Our current stable release, 2.12, is pretty much available at this point
everywhere that most people would be interested in.  We will be
releasing a 2.12.9 version in the next couple days which plugs a couple
of holes detected while porting MonoDevelop to windows on .Net, and is
very solid on linux and windows, and fairly solid on OSX.  Some issues
remain in the underlying gtk+ port to OSX which impact some of the
toolkit functionality there.

We think the current capabilities of 2.12 are strong, and its wide
availability is also an asset that would be diminished by further
fragmenting the user base with 2.14/2.16/2.xxx releases.  It is also a
substantial amount of effort to maintain additional API versions and
backport fixes and manage the packaging and release overhead.  Given the
relatively small additions in gtk+ subsequent to 2.12, the value of
adding the APIs to gtk-sharp probably does not offset the cost of having
the additional versions.

With the gtk+ 3.0 release planned in the next year, we have therefore
decided to hold the 2.x release series of Gtk# at the 2.12 API version,
and we plan to switch trunk from its current 2.14 target over to 3.0
when the gtk+ team gets closer to releasing.

We will continue to do the sorts of internal performance enhancements
and API corrections for 2.12 that have been integral to the improvement
of Gtk# stable releases in the past.  We also may make some small API
additions in Atk#, which is not widely used yet and still needs some
love.  The GLib object model will be extended to make it more conducive
to media library bindings like gstreamer.

For those who have been chomping at the bit to use 2.14+ APIs like gio,
it should be possible in the interim until 3.0 to develop some extension
libraries on top of gtk-sharp to facilitate using those APIs. gio itself
was being "integrated" as a standalone library, and is therefore easily
maintained outside of the gtk-sharp package itself.  

Miguel refers to these extension libraries as "API packs".  I believe
that Stephane has already begun work on such an external library for
some of the 2.14 libraries he was interested in from trunk.  He will
probably share some links as to how to obtain it when ready.  Perhaps
others will be willing to share their extensions as well.

I'm sure some of you will be disappointed that we don't plan to
integrate these new APIs directly into gtk-sharp until 3.0.  For a while
there, gtk+ was on a manageable 12 to 18 month release cycle.  Lately
they seem to be pushing a new release every 6 months alongside the GNOME
releases.  The cost of maintaining such a release cycle is more than we
can really handle right now.  The team is stretched pretty thin.  It
also damages our "build once run everywhere" story for Gtk# when
applications written against the current version often aren't even
compilable let alone executable on a platform that's only 6 months old.

All of the above is of course subject to change.  If 3.0 were to
languish unreleased, for example, it's possible we might pick a more
recent version like 2.18 for a future release target.  We will of course
communicate any changes as they develop.

Thanks to everyone for your support and use of gtk-sharp.

Mike Kestner <mkestner at gmail.com>

More information about the Gtk-sharp-list mailing list