You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ivy-dev@incubator.apache.org by Steve Loughran <st...@apache.org> on 2007/06/04 12:24:00 UTC
Re: Published API (was Extending IvyBuildList)
Gilles Scokart wrote:
> My preference is also to have the published API as small as possible.
>
> So, I would prefer to say, everything is subject to change except .... for
> which we maintain backward compatibility [as much as possible]?
>
> Gilles
+1: right now, say 'everything is unstable, get under gump to track
changes'.
At the same time, your entire class hierarchy becomes an API unless you
do something about it, and it is very hard to stop people getting at
your internals if they want.
If you want to stop people extending your code you have to be like Xom
and lock down the app: mark stuff as final, package scoped, etc. Even
then, in OSS, people can defeat you by forking (which is what has
effectively happened for Xom).
The JIRA we run for SmartFrog has a compatiblity field for every entry,
compatiblity can be:
none
unknown
backwards compatible
may break existing deployment descriptors
may be incompatible at the java source level
With this list you can separate changes that should break nothing from
those that change the API/source and those that are visible at the
deployment descriptor level. As with ant, the Java source level is much
more brittle.