A little bit more formalism. The thread subject is about API
deprecation in general. But it looks like that discussion boils down
to a replacement of old API with a new one. I suppose there should be
a possibility to deprecate API for removal if the Community decided to
do so.

> @IgniteExperimental [3] which marks APIs which are yet not stable, dangerous, 
> partially implemented or are allowed to be changed in a future.

"Dangerous" part is not clearly stated in javadocs [1]. But I tend to
think about "experimental" features as not-production-ready so
possibly with dangerous bugs. I suppose that there can be another
flavor of API annotations like "UntableAPI" (or non finalized or some
better term) which can be used when an underlying feature is
production-ready but an API can be changed without preserving
backwards compatibility. We might continue discussion in the thread
about experimental API annotations.

[1] 
https://github.com/apache/ignite/blob/master/modules/core/src/main/java/org/apache/ignite/lang/IgniteExperimental.java

Best regards,
Ivan Pavlukhin

чт, 6 февр. 2020 г. в 14:50, Alexey Goncharuk <alexey.goncha...@gmail.com>:
>
> Thanks, updated the justification:
>
> The vote we are going to have is reduced to two choices so far:
>  * Never deprecate the old APIs unless the new APIs are stable and released
> without @IgniteExperimental. The old APIs javadoc may be updated with a
> reference to new APIs to encourage users to evaluate new APIs. The
> deprecation and new API release may happen simultaneously if the new API is
> not marked with @IgniteExperimental or the annotation is removed in the
> same release.
>  * Allow to deprecate the old APIs even when new APIs are marked with
> @IgniteExperimental to explicitly notify users that old APIs will be
> removed in the next major release AND new APIs are available
>
> As for the @IgniteExperimental precise meaning - I do not agree that the
> experimental essence is related to the API only. As you suggested in the
> separate email, we are going to mark MVCC as experimental because it is in
> beta meaning that there are currently known scenarios when the new feature
> breaks or simply is not implemented. Yet the API for MVCC cache is quite
> stable and adds nothing more than a separate cache mode. Not sure if this
> changes the vote, though.

Reply via email to