Description
In a major version lifecycle (such as 1.x) there will still be a desire to add things over time and often this requires experimentation and feedback. I'd like to explore the idea of having experimental or beta features shipped in the released code.
Guava does this with an @Beta
annotation. Perhaps we should also adopt @Beta
or @Experimental
to mark signatures that have not stabilized and may change?
It would be the opposite of @Deprecated
which will be used for things we determine to be mistakes, which I'm sure we will still have made despite the long road to 1.0 and effort to stabilize the API.
Large experimental ideas should be done in separate projects such as https://github.com/ReactiveX/RxJavaParallel, but others are either too small for that or it is too difficult to do without being in core, such as exploring an rx.Future
type that integrates with Observable
.
I'd appreciate feedback on how to handle experiemental/beta work in a production released library.