Regarding the suggestion: "Maybe we can also communicate that we’re going
to officially EoL the least recent ZK version every 2 years." If you
release new versions less frequently than that, the number of maintenance
versions will go to 0 (though, in practice, you wouldn't EOL your current
release). If you release more frequently, you'll be stuck maintaining an
increasing number of versions.

To keep the maintenance burden relatively consistent, I suggest tying your
EOL schedule to your release schedule, so when you release a new version,
you drop the oldest one. If you release every 2 years, then it works out
the same. But if you release more or less often, your maintenance burden
stays consistent.

I would start by deciding the minimum number of concurrent versions you
want to maintain. I suggest no more than 2, but ZK currently has 3, and is
about to be 4 soon. If you're not marking specific versions as long-term
stable, then the default would be to assume you're maintaining the most
recent versions.

Then, consider churn. If you release frequently, you may want to set a
minimum age for maintenance, so users aren't forced to upgrade too often.
So, if you start with 2 concurrent versions and you have a few versions
released rapidly, you may temporarily need to support up to 3 or 4 releases
until the oldest ones reach the minimum age, like 2 years for example, and
are able to be EOL'd.

Then, consider upgrade overlap. When you release, you could EOL the oldest
version right away. But, it might be nicer to wait a few months, or maybe
up to a year, before the oldest one is EOL'd.

I previously mentioned Accumulo's "LTM" strategy. These are the core
considerations we had in mind. So, for example, we support a minimum of 1
LTM version, with a 1 year overlap. We don't release frequently enough for
the minimum age to be of concern. However, we did want to allow for
intermediate feature preview releases that are immediately EOL as soon as a
newer version is available. So, at any given time, we are maintaining
between 1 and 2 LTM releases, and no more than 1 non-LTM release. We also
use this to provide users with information about supported upgrade paths so
users can upgrade from LTM to LTM, skipping over non-LTM releases, or they
can stay on the latest (whether or not it is LTM).

For ZooKeeper, I would suggest:
* maintain at least 2 versions (currently 3.6 and 3.7)
* maintain for at least 3 years before EOL


On Fri, Feb 11, 2022 at 9:10 AM Andor Molnar <an...@apache.org> wrote:

> Thanks for the pointers. It was good to help refreshing my memory.
>
> We definitely missed the communication when stable and current links were
> flipped from one version to another. Things will get more interesting when
> Enrico finally releases 3.8.0. We’ll end up having 3 different “stable"
> branches and 3.8 will become the “current”.
>
> What can we do with this?
>
> Announcing 3.5 EoL
> ~~~~~~~~~~~~~~~~~~
>
> This should have been done before flipping the stable pointer, but anyway,
> here’re the points that we considered when doing the same for 3.4:
> - Discussion happened in March/April 2020, EoL was announced for 1st of
> June, 2020 (3 months ahead).
>
> - Define what EOL means - This is already discussed, text can be
> copy-pasted from 3.4 EoL message,
>
> - Provide guidelines for upgrading paths,
>
> - State interoperability guarantees
>    - Previous version of ZooKeeper client is able to connect to server as
> long
> as there’s no new feature enforced on server side,
>    - Previous version of ZooKeeper server is able to accept connections
> from
> clients as long as they don’t want to use new features.
>
> - Curator already supports later versions - Is it true for 3.6, 3.7?
>
> It’s February now, so if we nail down the above points, I don’t see any
> objections against announcing 3.5 EoL for 1st of June, 2022 (2 years after
> 3.4 EoL, providing 4 months to upgrade). Maybe we can also communicate that
> we’re going to officially EoL the least recent ZK version every 2 years.
>
> Andor
>
>
>
>
> > On 2022. Feb 9., at 20:28, Patrick Hunt <ph...@apache.org> wrote:
> >
> > On Wed, Feb 9, 2022 at 3:07 AM Andor Molnar <an...@apache.org> wrote:
> >
> >> Hi Pat,
> >>
> >> Yeah, I asked for a more specific suggestion from you. If we avoid using
> >> the LTS in ZooKeeper releases and stay with the stable/latest labels,
> how
> >> would you label the current maintained versions?
> >>
> >
> > Ah, ok. No worries Andor, I misunderstood. My 0.02:
> >
> > We have "stable" and "current" already identified.
> > https://dlcdn.apache.org/zookeeper/
> > Stable was last updated in April of 2021. My recommendation is that we
> > should change the process to notify EOL prior to updating e.g. "stable"
> > reference. Stable is our indication w/o using the LTS label. As long as
> we
> > have a public policy & associated announcements, I think that's fine.
> >
> > I also bring your attention to this conversation thread from March 2020
> for
> > the previous EOL'd (3.4) release line:
> > https://markmail.org/message/b2pqcztlb2ixoyjp
> > Some good ideas in there from many folks, I think we settled on a
> timeframe
> > we felt comfortable with, at least at the time. Unfortunately we did not
> > follow through with a plan for future releases. Perhaps we can do that
> now.
> >
> > Regards,
> >
> > Patrick
> >
> >
> >>
> >> Enrico is about to release 3.8.0 soon, so we’ll end up having four
> >> versions in maintenance. What should we do with it to reduce the
> >> maintenance cost?
> >>
> >> Andor
> >>
> >>
> >>
> >>
> >>> On 2022. Feb 4., at 17:58, Patrick Hunt <ph...@apache.org> wrote:
> >>>
> >>> On Fri, Feb 4, 2022 at 8:19 AM Andor Molnar <an...@apache.org> wrote:
> >>>
> >>>> More specifically?
> >>>>
> >>>
> >>> Are you asking me? :-)  "LTS" literally has a definition in wikipedia:
> >>> https://en.wikipedia.org/wiki/Long-term_support
> >>>
> >>>
> >>>>
> >>>> Stable 3.5, 3.6, 3.7, 3.8 and EoL 3.5 at the end of the year (1st of
> >> Jan,
> >>>> 2023)?
> >>>>
> >>>> Andor
> >>>>
> >>>>
> >>>>
> >>>>> On 2022. Feb 1., at 16:41, Patrick Hunt <ph...@apache.org> wrote:
> >>>>>
> >>>>> "LTS" typically has meaning for folks beyond just what the words say.
> >> JDK
> >>>>> LTS. Ubuntu LTS. etc... I think it would be less confusing to stay
> with
> >>>> the
> >>>>> stable/latest labels we have had in the past and plan ahead a bit in
> >>>> terms
> >>>>> of giving notice when releases will be removed from support.
> >>>>>
> >>>>> Patrick
> >>>>>
> >>>>> On Tue, Feb 1, 2022 at 3:12 AM Andor Molnar <an...@apache.org>
> wrote:
> >>>>>
> >>>>>> Hi Andrew,
> >>>>>>
> >>>>>> I think that wasn’t a general plan from the community at that time,
> >> just
> >>>>>> my opinion based on how long 3.4 was the stable release of ZooKeeper
> >> (4
> >>>>>> years). Since then the release schedule has become much faster and
> to
> >> be
> >>>>>> honest I’m not participating in it.
> >>>>>>
> >>>>>> As mentioned 3.6 and 3.7 releases are not much different. 3.6 is the
> >>>>>> “Facebook” version which is well tested and contains lots of patches
> >>>> that
> >>>>>> improves robustness. Both versions are good candidates for upgrade,
> so
> >>>>>> announcing 3.5 EoL (at least half year from now) is not necessarily
> >> bad.
> >>>>>>
> >>>>>> As an alternative, staying with the LT(S|M) / non-LT(S|M) terms, I
> >> think
> >>>>>> the following could also be considered for the community:
> >>>>>>
> >>>>>> Now:
> >>>>>>
> >>>>>> master
> >>>>>> ----------
> >>>>>> 3.7
> >>>>>> 3.6
> >>>>>> 3.5 LTS
> >>>>>> ----------
> >>>>>> 3.4 EoL
> >>>>>>
> >>>>>> Can become:
> >>>>>>
> >>>>>> master
> >>>>>> ----------
> >>>>>> 3.8 LTS
> >>>>>> 3.7
> >>>>>> 3.5 LTS
> >>>>>> ----------
> >>>>>> 3.6 EoL
> >>>>>> 3.4 EoL
> >>>>>>
> >>>>>> In order to keep the number of maintained branches low.
> >>>>>>
> >>>>>> What do you think?
> >>>>>>
> >>>>>> Andor
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>> On 2022. Jan 31., at 19:41, Andrew Purtell <apurt...@apache.org>
> >>>> wrote:
> >>>>>>>
> >>>>>>> Just to be clear I meant 'you' as the ZooKeeper project as a whole,
> >> but
> >>>>>>> maybe I have misunderstood this response:
> >>>>>>>
> >>>>>>
> >>>>
> >>
> https://issues.apache.org/jira/browse/HADOOP-17612?focusedCommentId=17311792&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17311792
> >>>>>>>
> >>>>>>>
> >>>>>>> On Sun, Jan 30, 2022 at 10:29 AM Enrico Olivelli <
> >> eolive...@gmail.com>
> >>>>>>> wrote:
> >>>>>>>
> >>>>>>>> Il Dom 30 Gen 2022, 17:51 Andrew Purtell <
> andrew.purt...@gmail.com>
> >>>> ha
> >>>>>>>> scritto:
> >>>>>>>>
> >>>>>>>>> Previously in various contexts - specifically, I am thinking of a
> >>>>>> Hadoop
> >>>>>>>>> JIRA where we once had a conversation on this topic, but I
> believe
> >>>>>> there
> >>>>>>>>> have been others - you have declared 3.5 a long term stable (LTS)
> >>>>>>>> release.
> >>>>>>>>>
> >>>>>>>>> A sudden EOL of an LTS is jarring and makes future promise of LTS
> >>>>>>>>> untrustworthy. What I would recommend for what it’s worth is a
> >>>>>> timetable
> >>>>>>>> to
> >>>>>>>>> EOL of 3.5 that is reasonably long, like one or two years, should
> >> you
> >>>>>>>>> decide to EOL it.
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> I am sorry,
> >>>>>>>> I forgot about such conversation.
> >>>>>>>>
> >>>>>>>> Can you share some pointers ?
> >>>>>>>>
> >>>>>>>> No problem from my side as soon as there is someone who needs 3.5
> >> and
> >>>>>> that
> >>>>>>>> is willing to help.
> >>>>>>>>
> >>>>>>>> Our codebase is pretty stable and we usually pay much attention
> to
> >>>>>>>> compatibility. So I am sure that 3.5 clients will be able to
> connect
> >>>> to
> >>>>>> new
> >>>>>>>> servers (and vice versa)
> >>>>>>>>
> >>>>>>>> I opened up this discussion to see how much interest is in the
> >>>>>> community,
> >>>>>>>> so from your response I understand that there is such interest.
> >>>>>>>>
> >>>>>>>> Thanks for answering
> >>>>>>>>
> >>>>>>>> Enrico
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>> On Jan 30, 2022, at 5:00 AM, Enrico Olivelli <
> eolive...@gmail.com
> >>>
> >>>>>>>>> wrote:
> >>>>>>>>>>
> >>>>>>>>>> Hello,
> >>>>>>>>>> We are going to release 3.8.0.
> >>>>>>>>>> It is time to think about moving 3.5 to EOL.
> >>>>>>>>>>
> >>>>>>>>>> Key points:
> >>>>>>>>>> - we already have a few other "active" branches, 3.6 and 3.7
> >>>>>>>>>> - 3.5 still has "ant" files, and cherry picking libraries
> upgrade
> >> is
> >>>>>>>>>> awkward  (you always have to create a separate patch)
> >>>>>>>>>> - moving to 3.6 is quite easy, so people should not be stuck if
> >>>>>>>>>> requested to upgrade to 3.6
> >>>>>>>>>>
> >>>>>>>>>> Thoughts ?
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> Enrico
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> --
> >>>>>>> Best regards,
> >>>>>>> Andrew
> >>>>>>>
> >>>>>>> Unrest, ignorance distilled, nihilistic imbeciles -
> >>>>>>> It's what we’ve earned
> >>>>>>> Welcome, apocalypse, what’s taken you so long?
> >>>>>>> Bring us the fitting end that we’ve been counting on
> >>>>>>> - A23, Welcome, Apocalypse
> >>>>>>
> >>>>>>
> >>>>
> >>>>
> >>
> >>
>
>

Reply via email to