-
Notifications
You must be signed in to change notification settings - Fork 7.6k
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.