The discussion came up on
https://issues.apache.org/jira/browse/CASSANDRA-16873 concerning where
we land different diff types and it was clear the conversation should
come to the ML and the outcome be codified for the future.

Some useful pre-reading on the Release Lifecycle on our wiki:
https://cwiki.apache.org/confluence/display/CASSANDRA/Release+Lifecycle

For context if it's not clear in the wiki article, the three release
types we have currently:
1. Patch: N.M.x
2. Minor: N.x
3. Major: N

Currently the wiki articulates the following under General Availability:
* Incremental fixes for post-GA issues identified will be included in
patchlevel releases.
* A new branch is created for the release with the new major version,
limiting any new feature addition to the new release branch, with new
feature development will continue to happen only on trunk.

The question that came up discussing C-16873:
What qualifies as an "Incremental fix" for purposes of inclusion in a
patch release?
* Do all bugs qualify? Only some?
* What if a bugfix breaks an API? Where does that land?
* Do small improvements that are not API mutating qualify?
* If improvements, who decides? Lazy consensus w/2 committers?

I'm personally pretty neutral; there's a cost-benefit to this and no
clear optimal answer to me at face value.

Lastly, I also advocate for a clear definition of expectations on
these releases in the wiki, something like:

Major: API changes, feature deprecation, protocol changes
Minor: New features, changes in default behavior
Patches: Whatever we decide in this thread

What do we think?

~Josh

Reply via email to