+1.

It's the proper signal to the community.  A .1 release could still be done
as an exception, but I have a hard time thinking of a case other than
supporting a newer JDK without any other changes.

On Fri, Apr 11, 2025 at 7:19 AM Jeremiah Jordan <jerem...@apache.org> wrote:

> +1 from me.
> No more wondering what the next version number will be.
> No more wondering what version I can upgrade from to use the new release.
>
> -Jeremiah
>
> On Apr 10, 2025 at 3:54:13 PM, Josh McKenzie <jmcken...@apache.org> wrote:
>
>> This came up in the thread from Jon on "5.1 should be 6.0".
>>
>> I think it's important that our release versioning is clear and simple.
>> The current status quo of:
>> - Any .MINOR to next MAJOR is supported
>> - Any .MAJOR to next MAJOR is supported
>> - We reserve .MAJOR for API breaking changes
>>     - except for when we get excited about a feature and want to .MAJOR
>> to signal that
>>     - or we change JDK's and need to signal that
>>     - or any of another slew of caveats that require digging into
>> NEWS.txt to see what the hell we're up to. :D
>> - And all of our CI pain that ensues from the above
>>
>> In my opinion the above is overly complex and could use simplification. I
>> also believe us re-litigating this on every release is a waste of time and
>> energy that could better be spent elsewhere on the project or in life. It's
>> also a signal about how confusing our release versioning has been for the
>> community.
>>
>> Let's leave aside the decision about whether we scope releases based on
>> time or based on features; let's keep this to the discussion about how we
>> version our releases.
>>
>> So here's what I'm thinking: a new release strategy that doesn't use
>> .MINOR of semver. Goals:
>> - Simplify versioning for end users
>> - Provide clearer contracts for users as to what they can expect in
>> releases
>> - Simplify support for us (CI, merges, etc)
>> - Clarify our public API deprecation process
>>
>> Structure / heuristic:
>> - Online upgrades are supported for all GA supported releases at time of
>> new .MAJOR
>> - T-1 releases are guaranteed API compatible
>> - We use a deprecate-then-remove strategy for API breaking changes
>>
>> This would translate into the following for our upcoming releases
>> (assuming we stick with 3 supported majors at any given time):
>> 6.0:
>> - 5.0, 4.1, 4.0 online upgrades are supported (grandfather window)
>> - We drop support for 4.0
>> - API compatibility is guaranteed w/5.0
>> 7.0:
>> - 6.0, 5.0, 4.1 online upgrades are supported (grandfather window)
>> - We drop support for 4.1
>> - API compatibility is guaranteed w/6.0
>> 8.0:
>> - 7.0, 6.0, 5.0 online upgrades are supported (fully on new paradigm)
>> - We drop support for 5.0
>> - API compatibility guaranteed w/7.0
>>
>> So: what do we think?
>>
>

Reply via email to