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.