You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/source/essentials/evolution.mdx
+12-3
Original file line number
Diff line number
Diff line change
@@ -28,26 +28,35 @@ The Apollo Kotlin projects follow [semantic versioning](https://semver.org/):
28
28
*`4.0.0-rc.x` versions are release candidates
29
29
* The API is frozen and if no issue is found, a stable version is made from it.
30
30
*`4.x.y` versions are stable releases
31
-
* Stable releases are supported for 2 years for bug fixes and security patches.
31
+
* Stable versions get bug fixes and new features.
32
+
* No binary breaking change until the next major version.
33
+
* After a new major version is released, a release branch is made to support the older major version with bug fixes and security patches.
32
34
33
35
We interpret minor version bumps liberally. They are used to hint at new functionality or substantial changes, but we are not strict about it. A small new API may be introduced in a patch release. Conversely, a big internal rework might be signaled with a minor release.
34
36
35
37
Reporting issues is welcome on any version.
36
38
37
39
## Breaking changes
38
40
41
+
<Note>
42
+
43
+
See [compatibility types](https://kotlinlang.org/docs/api-guidelines-backward-compatibility.html#compatibility-types) in the Kotlin documentation for more details about the different breaking changes.
44
+
</Note>
45
+
39
46
### Binary breaking changes
40
47
41
48
Binary breaking changes only happen for major versions.
42
49
43
50
### Source breaking changes
44
51
45
-
Source breaking changes may happen for any version. This is because [true 100% source compatibility is often unreachable](https://wiki.eclipse.org/Evolving_Java-based_APIs_3#A_Word_about_Source_Code_Incompatibilities). Also, source breaking changes are easier to mitigate because they can be fixed by the consumer directly. Already compiled transitive libraries are not impacted by source breaking changes.
52
+
We avoid source breaking changes as much as possible in non-major versions. In particular, parameter name changes and deprecations with `Error` level only happen for major versions.
46
53
47
-
That being said, we'll do our best to avoid them as much as possible. In particular, parameter name changes and deprecations with `Error` level only happen for major versions.
54
+
That being said, [true 100% source compatibility is often unreachable](https://wiki.eclipse.org/Evolving_Java-based_APIs_3#A_Word_about_Source_Code_Incompatibilities) and an occasional source breaking change might slip in a non-major version.
48
55
49
56
We’re trying to update to newer Kotlin versions after a few weeks. This is typically a compatible change for JVM-consumers on Kotlin version n-1 because Kotlin JVM [has best effort n+1 forward compatibility](https://kotlinlang.org/docs/kotlin-evolution.html#evolving-the-binary-format). This can be a source breaking for non-JVM consumers. In those cases, you'll need to update your build in those few weeks or keep using older versions of Apollo Kotlin.
50
57
58
+
Already compiled transitive libraries are not impacted by source breaking changes.
59
+
51
60
### Behavior changes
52
61
53
62
Bugfixes happen in any version (patch, minor, major).
0 commit comments