[Gtk-sharp-list] API Freeze Policy Adjustment
Jonathan Pryor
jonpryor@vt.edu
Thu, 01 Jul 2004 22:46:32 -0400
On Thu, 2004-07-01 at 20:02, Murray Cumming wrote:
You touch on one important detail, which also highlights a difference
between Gtk# and GNOME:
> You need to make unstable releases to test large new API. APIs are not
> born perfect, and people don't test them enough when they are just
> sitting in CVS. In fact, the need to have them tested in CVS can make
> you too scared to release a tarball to provide other unrelated
> improvements. This unstable/stable release schedule is a major reason
> for GNOME's quality success since GNOME 2.0, compared to the chaos and
> awful APIs of before that. That's not a controversial opinion.
The important difference is this: most of Gtk# is a very low level, thin
wrapper of the actual GNOME libraries. The Gnome libraries benefit from
the stable/unstable release cycle because they're releasing libraries
which haven't been used before, so getting feedback is important before
ensuring API/ABI stability.
Much of Gtk# is different: new API, completely untested, isn't being
written. Wrappers for existing code are being written, as well as
helper overloads for existing code. This is a significantly simpler
operation, with fewer concerns about "screwing the API up".
For more "enthusiastic" API additions -- code which isn't just a thin
wrapper over existing libraries, but is instead a substantial change in
their own right, such as Data Binding and similar functionality,
*should* fall under the traditional stable/unstable release. This makes
more sense, as it can benefit from the increased testing and feedback
cycle, contributing to a higher quality API.
- Jon