On Feb 8, 2013, at 7:09 PM, Denis Gervalle <[email protected]> wrote:
On Fri, Feb 8, 2013 at 3:58 PM, Vincent Massol <[email protected]> wrote:
On Feb 8, 2013, at 3:42 PM, Denis Gervalle <[email protected]> wrote:
By the way, if we agree on @unstable, I also think having another annotation for marking stable API that are not considered to be stable SPI. Why not something like @onlyAPI or @unstableSPI on an interface ?
I think first we need to define what is an SPI and what is an API first. ATM I don't think I understand clearly the difference in the context of XWiki. Is it clear for you?
I do not really understand your question. The general definition is rather clear: "Service Provider Interface (SPI) is an API intended to be implemented or extended by a third party".
All our component interfaces are meant to be implemented by 3rd parties to override default behaviors. Are they SPI?
What I would like to be annotated is API that we do not consider stable SPI at the moment. It is less restrictive than @unstable, but more than not saying anything. Is that answering your question ?
That seems complex. Why not use @unstable on "SPI" classes/methods? Thanks -Vincent
Thanks -Vincent
On Fri, Feb 8, 2013 at 3:30 PM, Thomas Mortagne <[email protected]>wrote:
Yes it's more clear than "beta".
On Fri, Feb 8, 2013 at 3:28 PM, Denis Gervalle <[email protected]> wrote:
+1, but I have the impression that @unstable would be more meaningful
On Fri, Feb 8, 2013 at 2:49 PM, Thomas Mortagne <[email protected]>wrote:
On Fri, Feb 8, 2013 at 2:40 PM, Vincent Massol <[email protected]> wrote: > Hi Paul, > > On Feb 8, 2013, at 1:22 PM, Paul Libbrecht <[email protected]> wrote: > >> Doesn't the @deprecated annotation actually does exactly the job? >> (except it has to be interpreted as meaning something else than "old code", but "do not use code"). > > @Deprecated means something different. It's about some code that you shouldn't use because we no longer think it's good to use and it's going to be removed in the future. > > This is not what a @beta or @experimental annotation would mean. They would mean "this is a new api that you can use but it's not stable yet and may change in the future so be prepared to update your code if that happens".
Plus @deprecated is technically pretty stable API while @beta can be broken anytime.
> > Thanks > -Vincent > >> paul >> >> >> On 8 févr. 2013, at 12:45, Thomas Mortagne wrote: >> >>>> * Proposal 1 (internal package): >>>> - Vincent >>>> - Marius >>>> >>>> * Proposal 2 (experimental package) >>>> - Caleb >>>> >>>> * Proposal 3 (@Beta/@Experimental annotation) >>>> - Thomas >>>> - Edy >>>> >>>> * Other proposal >>>> - Denis (use 1) for small changes and only use RN to mark new module as experimental)