Skip to content

Commit a45fa0c

Browse files
Version and Lifecycle Annotations
Use of annotations for lifecycle are inspired by Guava: https://github.com/google/guava#important-warnings
1 parent 7b99791 commit a45fa0c

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

README.md

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,24 @@ Learn more about RxJava on the <a href="https://github.com/ReactiveX/RxJava/wiki
2727

2828
## Versioning
2929

30-
As of 1.0.0 RxJava is following semantic versioning.
31-
During the 0.x.y releases, the minor (.x) releases were breaking changes.
30+
Version 1.x is now a stable API and will be supported for several years.
3231

33-
The 0.x releases were published under the `com.netflix.rxjava` GroupId. The 1.x releases are published under `io.reactivex`. All usage of 0.x and `com.netflix.rxjava` should eventually be migrated to 1.x and `io.reactivex`. This was done as part of the migration of the project from `Netflix/RxJava` to `ReactiveX/RxJava`.
32+
Minor 1.x increments (such as 1.1, 1.2, etc) will occur when non-trivial new functionality is added or significant enhancements or bug fixes occur that may have behavioral changes that may affect some edge cases (such as dependence on behavior resulting from a bug). An example of an enhancement that would classify as this is adding reactive pull backpressure support to an operator that previously did not support it. This should be backwards compatible but does behave differently.
3433

35-
During the transition it will be possible for an application to resolve both the `com.netflix.rxjava` and `io.reactivex` artifacts. This is unfortunate but was accepted as a reasonable cost for adopting the new name as we hit version 1.0.
34+
Patch 1.x.y increments (such as 1.0.0 -> 1.0.1, 1.3.1 -> 1.3.2, etc) will occur for bug fixes and trivial functionality (like adding a method overload). New functionality marked with an `@Beta` or `@Experimental` annotation can also be added in patch releases to allow rapid exploration and iteration of unstable new functionality.
35+
36+
#### @Beta
37+
38+
APIs marked with the `@Beta` annotation at the class or method level are subject to change. They can be modified in any way, or even removed, at any time. If your code is a library itself (i.e. it is used on the CLASSPATH of users outside your own control), you should not use beta APIs, unless you repackage them (e.g. using ProGuard, shading, etc).
39+
40+
#### @Experimental
41+
42+
APIs marked with the `@Experimental` annotation at the class or method level will almost certainly change. They can be modified in any way, or even removed, at any time. You should not use or rely on them in any production code. They are purely to allow broad testing and feedback.
43+
44+
#### @Deprecated
45+
46+
APIs marked with the `@Deprecated` annotation at the class or method level will remain supported until the next major release but it is recommended to stop using them.
3647

37-
The 0.20.x branch is being maintained with bug fixes on the `com.netflix.rxjava` GroupId until version 1.0 Final is released to allow time to migrate between the artifacts.
3848

3949
## Full Documentation
4050

0 commit comments

Comments
 (0)