[Gtk-sharp-list] 2.4/2.6 roadmap

Mike Kestner mkestner at novell.com
Mon Aug 8 12:50:39 EDT 2005

Thought I'd give a quick status report and roadmap for the near future
of Gtk#.  We are preparing to go into a beta cycle for the 2.4/2.6
bindings currently on svn trunk.  Note that this release planning
information can also be found on the mono wiki at:


The following is a tentative schedule for this cycle:

15Aug2005 - 2.3.90/2.5.90 (Beta1)
13Sep2005 - Beta2
17Oct2005 - Final 2.4.0/2.6.0 release

The above are tarball release dates.  Novell will be packaging the 2.4
releases for our currently supported platforms.  We recommend developers
stick to the 2.4 API for more widespread availability of your
applications, unless there is a really compelling reason to use 2.6
APIs.  Our 2.6.x releases will most likely be "source only" for the
immediate future.

The plan is to "soft freeze" the API as of beta1 in order to encourage
as many developers as possible to start porting to the new release.  Any
API fixing that's required after beta1 will therefore be accompanied by
a corresponding [Obsolete] overload to maintain the 'broken' version of
the API member. We are pleased with the stability of trunk and it is
already being used by some significant applications like MonoDevelop, so
we think it is ready for primetime.  The APIs have seen considerable
review, so most of the warts have been worked out.

If you track mono-patches, you may have noticed a recent commit I made
to add 2.7 bindings via a "bootstrap-for-the-insane" script on trunk.
The parse went pretty well, but I haven't gotten much past that point.
We are _not_ planning to release any 2.8 bindings during this upcoming
beta cycle.  We will however be shifting development to the 2.8 bindings
once we've branched off 2.4/2.6 from trunk in October.  The "plan" is to
kick out an initial 2.7.x release sometime in November if possible, for
those who are just itching to play with cairo in Gtk#.

In preparation for the upcoming beta1 release, I would strongly
encourage all application developers to try compiling your applications
against a current Gtk# trunk installation.  We have made every effort to
maintain source compatibility between 1.0.x and 2.3.x.  I have performed
an audit of the APIs that have been removed/changed and can't see how
they could have successfully been used from 1.0.x.  If I screwed up,
though, it would be nice to have bug reports in the next couple weeks so
we can have as clean a beta1 as possible from an upgrading standpoint.

To use the new versions, you will need to update your application's
pkg-config checks to look for gtk-sharp-2.0.pc instead of gtk-sharp.pc.
This is most likely being accomplished currently via PKG_CONFIG_CHECK in
your configure.in files and -pkg: switches on your mcs cmdlines.

1.0.x will most likely continue to be supported for another year, in a
critical bugfix capacity, but we will be strongly encouraging upgrading
to the 2.4.x release stream.  1.0.x/2.x.y are parallel-installable
release streams.  We are currently experimenting with the .Net publisher
policy assembly mechanism to make the 2.x releases backward compatible
at runtime without recompilation.  This will allow an application
compiled against a 2.4.x installation to run on a 2.6.x installation,
and in the future, a 2.8.x installation. 

However, there is no current plan to make 2.x policy files for 1.0.x
compatibility.  Any applications compiled against 1.0.x with require a
1.0.x installation at runtime.

We could also use some assistance with some "Upgrading to 2.x" documents
that we plan to release on the wiki alongside the betas.  If you think
you can help us with this effort, please contact me.

Mike Kestner <mkestner at novell.com>

More information about the Gtk-sharp-list mailing list