Dima,

I'm not suggesting doing this, they are already not stable. For example,
take a look at IgniteCacheObjectProcessor. This is a component which can be
injected through plugins, thus it is "semi-public". However, it is under
heavy changes and if some unlucky guy is to implement a plugin using this
processor, he will face compilation errors with each new Ignite release.

My suggestion is to define policies for things like that. One of possible
solutions - is to annotate APIs so that developers are aware of potential
problems.

One more example from Hadoop:
1) org.apache.hadoop.fs.FileSystem: @Public, @Stable
2) org.apache.hadoop.fs.AbstractFileSystem: @Public, *@Evolving*

Vladimir.

On Fri, Aug 28, 2015 at 4:20 PM, Dmitriy Setrakyan <dsetrak...@apache.org>
wrote:

> Vladimir,
>
> Are you suggesting making semi-private APIs not stable? In that case, what
> is the recourse for the current users?
>
> D.
>
> On Fri, Aug 28, 2015 at 2:55 PM, Vladimir Ozerov <voze...@gridgain.com>
> wrote:
>
> > Igniters,
> >
> > We have several types of APIs:
> > 1) Public - intended for Ignite users. E.g.: IgniteCache.
> > 2) Private - used only by Ignite developers. E.g.: almost everything
> inside
> > "org.apache.ignite.internal".
> > 3) Semi-private - is not expected to be used by users, but can be used by
> > 3rd-party developers. E.g.: PluginProvider.
> >
> > I'd like to propose defining "stability" for p.3 type of APIs. That is.
> if
> > someone develops Ignite extensions, he might need to know what is the
> > probability of breaking change of that API. Nice example of such approach
> > is Hadoop APIs.
> >
> > The reason why I started thinking about it is "platforms" migration from
> > GridGain to Ignite. Currently our platforms API are far from ideal from
> > external developer's point of view. This was not a problem in GridGain
> > since the code was private, but it can become a problem in open-sourced
> > Ignite.
> > And instead of spending time on making APIs nice and clean I'd like to
> make
> > platforms work first. During this transition time it would be nice to
> mark
> > relevant APIs as "unstable" so that potential 3rd-party devs will be
> aware
> > of a risk when using them.
> >
> > Thoughts?
> >
> > Vladimir.
> >
>

Reply via email to