+1 to both the yearly cadence and the periodic publishing of bleeding edge 
snapshots.

> On 5 Feb 2021, at 16:14, Benedict Elliott Smith <bened...@apache.org> wrote:
> 
> +1
> 
> +1 also to mixing this with an experiment on regular "releasable" (without 
> API stability) snapshots from trunk.
> 
> On 05/02/2021, 16:07, "Joshua McKenzie" <jmcken...@apache.org> wrote:
> 
>    +1 from me on the yearly cadence fwiw. The space this project is in (infra
>    software) is directly at odds for many users' preferred release cadence
>    (preferably never or bugfix only for existing / stable projects) compared
>    to how fast the NoSQL / database ecosystem is evolving; once a year seems
>    to strike a reasonable balance between the various constituents.
> 
>    On Fri, Feb 5, 2021 at 9:58 AM Benjamin Lerer <benjamin.le...@datastax.com>
>    wrote:
> 
>> Thanks for your responses.
>> 
>> I had some offline discussions with different persons to gather more
>> feedback on the current discussion.
>> The people I talked to appeared to be in favor of one supported release
>> every year as Benedict initially suggested.
>> The advantages mentioned were:
>> * it is long enough to allow us to have a significant amount of work done
>> * if some work slip to the next release it will only be delayed for one
>> year
>> * it does not create too much burden in term of release maintenance
>> * it provides some certainty to the community
>> 
>> I believe that there is an appetite for the bleeding edge snapshots where
>> we do not guarantee stability and that the semver discussion is not
>> finished yet but I would like us to let those discussions go for some
>> follow up threads.
>> My goal with this thread was to reach an agreement on a release cadence for
>> the version we will officially support after 4.0.
>> 
>> My impression is that most people agree with *one release every year* so I
>> would like to propose it as our future release cadence.
>> 
>> Your feedback is welcome.
>> 
>> 
>> On Thu, Jan 28, 2021 at 6:45 PM Jeremiah D Jordan <
>> jeremiah.jor...@gmail.com>
>> wrote:
>> 
>>> I think we are confusing things between minor vs patch.  Can we talk
>> about
>>> branch names?
>>> 
>>> I think we can agree on the following statements?
>>> 
>>> Releases made from stable maintenance branches,
>>> cassandra-3.0/cassandra-3.11/cassandra-4.0 (once created), will limit
>>> features being added to them and should be mostly bug fix only.
>>> 
>>> New features will be developed in trunk.
>>> 
>>> Now I think the thing under discussion here is “how often will we cut new
>>> maintenance branches from trunk” and also “how long will we maintain
>> those
>>> branches"
>>> 
>>> I would definitely like to see the project able to release binaries from
>>> trunk more often then once a year.  As long as we keep our quality goals
>> in
>>> line post 4.0 GA I think this is possible.
>>> 
>>>> I'd like to see us have three branches: life support (critical fixes),
>>> stable (fixes), and development. Minors don't fit very well into that
>> IMO.
>>> 
>>> If we want to go with semver ideas, then minors fit perfectly well.
>>> Server doesn’t meant you make patch releases for every version you have
>>> ever released, it is just a way of versioning the releases so people can
>>> understand what the upgrade semantics are for that release.  If you
>> dropped
>>> support for some existing thing, you need to bump the major version, if
>> you
>>> added something new you bump the minor version, if you only fixed bugs
>> with
>>> no user visible changes you bump the patch version.
>>> 
>>>> I suppose in practice all this wouldn't be too different to tick-tock,
>>> just with a better state of QA, a higher bar to merge and (perhaps) no
>>> fixed release cadence. This realisation makes me less keen on it, for
>> some
>>> reason.
>>> 
>>> I was thinking something along these lines might be useful as well.
>>> 
>>> I could see a process where we cut new maintenance branches every X time,
>>> ~1 year?, 6 months?, we would fix bugs and make patch releases from those
>>> maintenance branches.
>>> We would also cut releases from the development branch (trunk) more
>>> often.  The version number in trunk would be updated based on what had
>>> changed since the last release made from trunk.  If we dropped support
>> for
>>> something since the last release, bump major.  If we added new features
>>> (most likely thing), bump minor.
>>> 
>>> So when we release 4.0 we cut the cassandra-4.0 maintenance branch.  We
>>> make future 4.0.1 4.0.2 4.0.3 releases from this branch.
>>> 
>>> Trunk continues development, some new features are added there.  After a
>>> few months we release 4.1.0 from trunk, we do not cut a cassandra-4.1
>>> branch.  Development continues along on trunk, some new features get in
>> so
>>> we bump the version in the branch to 4.2.0.  A few months go by we
>> release
>>> 4.2.0 from trunk.  Some bug fixes go into trunk with no new features, the
>>> version on the branch bumps to 4.2.1, we decide to make a release from
>>> trunk, and only fixes have gone into trunk since the last release, so we
>>> release 4.2.1 from trunk.
>>> 
>>> We continue on this way releasing 4.3.0, 4.4.0, 4.4.1 …. We decide it is
>>> time for a new maintenance branch to be cut.  So with the release of
>> 4.5.0
>>> we also cut the cassandra-4.5 branch.  This branch will get patch
>> releases
>>> made from it 4.5.1 4.5.2 4.5.3.
>>> 
>>> Trunk continues on as 4.6.0, 4.7.0, 4.8.0 …. At some point the project
>>> decides it wants to drop support for some deprecated feature, trunk gets
>>> bumped to 5.0.0. More releases happen from trunk 5.0.0, 5.1.0, 5.2.0,
>> 5.2.1
>>> development on trunk continues on.  Time for a new maintenance branch
>> with
>>> 5.3.0 so cassandra-5.3 gets cut...
>>> 
>>> This does kind of look like what we tried for tick/tock, but it is not
>> the
>>> same.  If we wanted to name this something, I would call it something
>> like
>>> "releasable trunk+periodic maintenance branching”.  This is what many
>>> projects that release from trunk look like.
>>> 
>>> -Jeremiah
>>> 
>>> 
>>>> On Jan 28, 2021, at 10:31 AM, Benedict Elliott Smith <
>>> bened...@apache.org> wrote:
>>>> 
>>>> But, as discussed, we previously agreed limit features in a minor
>>> version, as per the release lifecycle (and I continue to endorse this
>>> decision)
>>>> 
>>>> On 28/01/2021, 16:04, "Mick Semb Wever" <m...@apache.org> wrote:
>>>> 
>>>>> if there's no such features, or anything breaking compatibility
>>>>> 
>>>>> What do you envisage being delivered in such a release, besides bug
>>>>> fixes?  Do we have the capacity as a project for releases dedicated to
>>>>> whatever falls between those two gaps?
>>>>> 
>>>> 
>>>> 
>>>>   All releases that don't break any compatibilities as our documented
>>>>   guidelines dictate (wrt. upgrades, api, cql, native protocol, etc).
>>> Even
>>>>   new features can be introduced without compatibility breakages (and
>>> should
>>>>   be as often as possible).
>>>> 
>>>>   Honouring semver does not imply more releases, to the contrary it is
>>> just
>>>>   that a number of those existing releases will be minor instead of
>>> major.
>>>>   That is, it is an opportunity cost to not recognise minor releases.
>>>> 
>>>> 
>>>> 
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org
>>>> For additional commands, e-mail: dev-h...@cassandra.apache.org
>>>> 
>>> 
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org
>>> For additional commands, e-mail: dev-h...@cassandra.apache.org
>>> 
>>> 
>> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org
> For additional commands, e-mail: dev-h...@cassandra.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org
For additional commands, e-mail: dev-h...@cassandra.apache.org

Reply via email to