api stability (was is_ignored improvements...)
Martin Pool
mbp at canonical.com
Thu May 18 09:05:21 BST 2006
On 17 May 2006, Aaron Bentley <aaron.bentley at utoronto.ca> wrote:
> Jan Hudec wrote:
> > It splits the WorkingTree.is_ignored method to ignored, which returns just
> > a boolean and ignored_by, which returns the pattern. is_ignored is deprecated
> > forwarder to ignored_by (to remain compatible).
>
> That raises an interesting question: 0.8 was supposed to be our API
> stability release. That would mean we can't deprecate anything until
> post 1.0, or at least not anything important. So what should we do in
> cases like this?
API stability doesn't mean not deprecating functions; it mostly means
not removing them, and in particular not changing the meaning of
existing interfaces.
I think we should relax API stability from what was discussed prior to
0.8 -- freezing it too solidly now would be too soon. Although many
features are in place we still have work to do, particularly in
performance, to get to a nice 1.0. In any case, in Python it is rather
hard to determine exactly what behaviour a bzrlib client may be relying
on.
I would prefer to focus on
* don't change existing apis gratuitously
* use deprecations to warn when something is going away and how
calling code should be updated
* improve api documentation and test coverage (so people know what apis
they're supposed to use)
* not letting any of these excessively impede actually improving bzr
--
Martin
More information about the bazaar
mailing list