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: README.adoc
+16-6Lines changed: 16 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,18 +17,14 @@ to find out more.
17
17
18
18
== Project Maturity
19
19
20
-
The project is in early stages of development and is considered experimental.
21
-
It is not ready for production use. Features and API are subject to change.
20
+
The project is in development and stabilization phase.
21
+
Features and API are subject to change, but https://rabbitmq.github.io/rabbitmq-stream-java-client/snapshot/htmlsingle/#stability-of-programming-interfaces[breaking changes] will be kept to a minimum.
22
22
23
23
== Support
24
24
25
25
* For questions: https://groups.google.com/forum/#!forum/rabbitmq-users[RabbitMQ Users]
26
26
* For bugs and feature requests: https://github.com/rabbitmq/rabbitmq-stream-java-client/issues[GitHub Issues]
27
27
28
-
The project is currently under development, there is no guarantee yet that it will be maintained and supported
29
-
in the future (read: you are welcome to experiment with it and give feedback, but please do not base
30
-
your whole business on it).
31
-
32
28
== How to Use
33
29
34
30
=== Pre-requisites
@@ -40,6 +36,20 @@ The library requires Java 8 or more.
The RabbitMQ Stream Java Client is in development and stabilization phase.
42
+
When the stabilization phase ends, a 1.0.0 version will be cut, and
43
+
https://semver.org/[semantic versioning] is likely to be enforced.
44
+
45
+
Before reaching the stable phase, the client will use a versioning scheme of `[0.MINOR.PATCH]` where:
46
+
47
+
* `0` indicates the project is still in a stabilization phase.
48
+
* `MINOR` is a 0-based number incrementing with each new release cycle. It generally reflects significant changes like new features and potentially some programming interfaces changes.
49
+
* `PATCH` is a 0-based number incrementing with each service release, that is bux fixes.
50
+
51
+
Breaking changes between releases can happen but will be kept to a minimum.
Copy file name to clipboardExpand all lines: src/docs/asciidoc/overview.adoc
+27Lines changed: 27 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -74,3 +74,30 @@ connections depending on the number of publishers and consumers.
74
74
* _let the client handle network failure_ thanks to automatic connection
75
75
recovery and automatic re-subscription for consumers.
76
76
77
+
== Versioning
78
+
79
+
The RabbitMQ Stream Java Client is in development and stabilization phase.
80
+
When the stabilization phase ends, a 1.0.0 version will be cut, and
81
+
https://semver.org/[semantic versioning] is likely to be enforced.
82
+
83
+
Before reaching the stable phase, the client will use a versioning scheme of `[0.MINOR.PATCH]` where:
84
+
85
+
* `0` indicates the project is still in a stabilization phase.
86
+
* `MINOR` is a 0-based number incrementing with each new release cycle. It generally reflects significant changes like new features and potentially some programming interfaces changes.
87
+
* `PATCH` is a 0-based number incrementing with each service release, that is bux fixes.
88
+
89
+
Breaking changes between releases can happen but will be kept to a minimum.
90
+
The next section provides more details about the evolution of programming interfaces.
91
+
92
+
[[stability-of-programming-interfaces]]
93
+
== Stability of Programming Interfaces
94
+
95
+
The RabbitMQ Stream Java Client is in active development but its programming interfaces will remain as stable as possible. There is no guarantee though that they will remain completely stable, at least until it reaches version 1.0.0.
96
+
97
+
The client contains 2 sets of programming interfaces whose stability are of interest for application developers:
98
+
99
+
* Application Programming Interfaces (API): those are the ones used to write application logic. They include the interfaces and classes in the `com.rabbitmq.stream` package (e.g. `Producer`, `Consumer`, `Message`). These API constitute the main programming model of the client and will be kept as stable as possible.
100
+
* Service Provider Interfaces (SPI): those are interfaces to implement mainly technical behavior in the client. They are not meant to be used to implement application logic. Application developers may have to refer to them in the configuration phase and if they want to custom some internal behavior in the client. SPI include interfaces and classes in the `com.rabbitmq.stream.codec`, `com.rabbitmq.stream.compression`, `com.rabbitmq.stream.metrics` packages, among others. _These SPI are susceptible to change, but this should not impact the majority of applications_, as the changes would typically stay intern to the client.
0 commit comments