A Discussion on RabbitMQ Versioning #3191
Replies: 2 comments
-
|
Beta Was this translation helpful? Give feedback.
-
@adamncasey Thank you for taking up this discussion. I also contacted @gerhard for similar reasons. Trigger for that discussionIf a customer upgrades to a 3.8 version and therefore also comes across the consumer_timout behavior change that was introduced with the 3.8.15 release. I have to admit that coming across a breaking change advertised as an enhancement in a minor release wasn’t a pleasant surprise. My personal interpretation from the posts in the issue was that other customers didn't favor introducing a breaking change in a minor release and would also like to avoid that in the future. VersioningAs @michaelklishin answered above there are responsibilities of maintenance that come with the release of a minor version. It is true that as a customer I favor to have the version supported for a longer amount of time. Especially in an enterprise environment upgrades tended to be slow due to the restrictions, amount of integrations, size, etc ... However, putting breaking changes into smallest decimal point releases has some downsides that for both RabbitMQ and it's customers:
And yes I'm aware that not every customer is slower, eager to keep their system consistent etc. Communicating breaking changesIf the versioning would not be changed the way breaking changes are shipped could still be improved. And if versioning would be changed even more important to reliably identify breaking changes. I was surprised there wasn't any word in the release notes that a breaking changes was shipped. I saw that the concept of marking breaking changes were used before in 3.6.16 and that also PRs get reviewed on that basis. So how can we make sure that they are getting identified and communicated? I'm glad there are other people interested in that topic and hope we can agree on improvements so all participants can benefit from the changes. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
At the moment, as an observer, RabbitMQ versions seem to be numbered like this:
3.8.1 -> 3.8.2
. These are released quite regularly.At times the smallest decimal point releases (I'm avoiding using semver terms like patch or minor) introduce new features and make (typically small, sometimes breaking) behaviour changes, which is surprising compared to other versioning systems.
I had an interesting chat with @gerhard about this, and he said @dumbbell might also be interested in this topic
I have two actual questions on this below, but I'm also interested in a wider discussion 🙂
Are there any conversations going on at the moment within the RabbitMQ core team on this topic? Anything public/anything which could be public that can we see?
Is there any appetite for moving towards maintaining exact backwards compatibility (e.g. migration-free rolling upgrades, and no breaking changes) for patch releases. Then release more frequent major versions, and minor versions of RabbitMQ.
Beta Was this translation helpful? Give feedback.
All reactions