On 4 Feb 2014 at 16:14:41, vincent(a)massol.net
(vincent@massol.net(mailto:vincent@massol.net)) wrote:
Note: be careful that you might have added new APIs in
a class already having an @Unstable annotation at the class level and thus when you remove
that class level annotation you might have to add new @Unstable annotations at the method
level if those methods were added/modified in 5.x or later.
Actually this is not correct!
The @Unstable marks the first time an API is introduced. All API changes that happen after
are stabilization of the first version of the API and this what counts is the first time
the API was introduced and after 1 full cycle, we need to remove the @Unstable
annotation.
For example:
- Git module API was first introduced in 4.2M1 (@Unstable was thus added at the time)
- Then in 5.3M1 the package was modified
- And in 5.3M2 3 new methods were added
Consequence: in 6.0 we now consider the Git module API as stable since it’s been more than
1 full cycle since it was first introduced. This means that from now on, if we wish to
modify this API we need to ensure we don’t break the backward compatibility or we’ll need
to send a VOTE if we want to break it and explain why we wish to break it and why there’s
no other solution, to try to convince the other committers.
Thanks
-Vincent
Thanks
-Vincent
On 4 Feb 2014 at 16:11:04, vincent(a)massol.net
(vincent@massol.net(mailto:vincent@massol.net)) wrote:
> ok I’ve done a full review and here’s the results of unstable annotations to
remove:
>
> * commons-job module. Owner: Thomas
> * platform-git mpdule (GitScriptService). Owner: Vincent
> * platform-legacy-url. Owner: Vincent
> * platform-localization. Owner: Thomas
> * platform-solr (SolrConfiguration, SolrInstance, SolrIndexScriptService). Owner:
Marius
> * platform-url. Owner: Vincent
>
> Could each “owner" please remove the @Unstable annotations found inside classes
in the above-mentioned modules when the @since is before 5.0M1?
>
> Thanks
> -Vincent
>
> On 31 Jan 2014 at 08:51:58, Thomas Mortagne
(thomas.mortagne@xwiki.com(mailto:thomas.mortagne@xwiki.com)) wrote:
>
> > It's not a threat :)
> >
> > It's actually the opposite here: the point is to indicate that an API
> > is not unstable anymore and cannot be broken (this kind of annotation
> > did not exist in 3.x).
> >
> > On Fri, Jan 31, 2014 at 8:48 AM, Paul Libbrecht wrote:
> > > Vincent,
> > > is there a clickable list?
> > > A way for a project that links to an older xwiki (e.g. we link to xwiki
3.5) to know that things are threatened?
> > >
> > > thanks
> > >
> > > paul
> > >
> > >
> > > Le 31 janv. 2014 à 08:44, "vincent(a)massol.net" a écrit :
> > >> According to your rules since we're starting a new cycle we need
to review all existing @Unstable annotations and remove ones that have been there for at
least one cycle (i.e. prior to the 5.x cycle).
> > >>
> > >> See
http://dev.xwiki.org/xwiki/bin/view/Community/DevelopmentPractices#H40Unsta…
> > >>
> > >> It's also the occasion to check @Unstable APIs that we can
consider stable now.