Thanks Andrew. I think there are others too who have the same predicament
(Francis Liu for instance). Backports of perf improvements, bug fixes, and
operational tooling improvements makes sense while branch-1 is in active
use.

I appreciate Allans' sentiment. It is time to move the stable pointer from
branch-1 to branch-2, say branch-2.1.2?

S



On Sun, Jan 20, 2019 at 10:14 PM Andrew Purtell <[email protected]>
wrote:

> I can speak for myself and assume others backporting to branch-1 have
> similar motivations.  We are backporting interesting and useful and
> reasonable improvements, because branch-1 is still useful and in
> production, and will be for the foreseeable future. Changes like perf
> improvements and operability/tooling/UI improvements should not be denied
> to branch-1 users if some contributors and committers are putting in the
> effort to maintain it. I agree major new features should not be backported.
> I doubt anyone will try to backport AMv2 or IMC. I won’t, for sure. Not
> interested in destabilizing change.
>
> Personally I work for an organization that runs branch-1 derived code in
> production. You can stop my maintenance activities in the community but
> that would just mean I make a fork and take the work internal. Why not let
> me contribute these efforts back to the community? It is your choice. I
> don't see why we can't have activity both in branch-1 and branch-2. To each
> their own. Let the community organically decide what is right by do-ocracy.
>
> If you ask me why aren’t we using branch-2 now, I have to say
> unfortunately it’s not production ready for us. Refer to the recent
> discussion about hbck2 for one concern. Another is a colleague did a
> trivial test with head of branch-2 and measured a 50% perf degradation in
> scan performance. Now, that is just a one off test. But it causes concern.
> We are swamped already with run the business concerns. We can’t take on the
> additional risk at this time. Perhaps in the future we will have more
> bandwidth to contribute to branch-2 efforts.
>
> > On Jan 20, 2019, at 9:29 PM, Allan Yang <[email protected]> wrote:
> >
> > {quote}
> > For example, you release 2.1.0 yesterday, 1.5.0 today, and then 2.1.1
> > tomorrow, it is OK that 2.1.0 does not have all feature which 1.5.0 has,
> > but 2.1.1 should have all features which 1.5.0 has.
> > {quote}
> > I don't think can work, normal user mostly won't care about the release
> > time, they only know 2.1.1 > 2.1.0 > 1.5.0. They will think higher
> version
> > includes all the feature in lower version.
> >
> > I don't get the point why we are now still backporting new features from
> > branch-2 to branch-1. Yes, there is many 1.x cluster in production, so we
> > need to release 1.x versions to fix bugs and keep them stable, as the
> > stable point is still in 1.x.
> > And at the same time, we should try to move on to 2.x, making branch-1
> as a
> > bugfix branch for sometime before deprecating it. As far as I see,
> branch-1
> > is still very 'active', too active I think.
> > If we stop backport features from branch-2 to branch-1, then there is no
> > problem, IMHO.
> > Best Regards
> > Allan Yang
> >
> >
> > Andrew Purtell <[email protected]> 于2019年1月20日周日 上午5:27写道:
> >
> >> As branch RM for branch-1 I will always check to make sure a commit
> there
> >> has first been committed to branch-2. There will always be an upgrade
> path
> >> from a branch-1 based release to a branch-2 based release. The relevant
> >> JIRAs will either have a 1.x and 2.x fixVersion or the backport JIRA
> will
> >> be linked to the one for the branch-2 commit. When making the release
> notes
> >> we will be looking at these things (or should, anyway). We can update
> the
> >> upgrade paths documentation whenever we find this kind of linkage.
> Perhaps
> >> we can describe this for future RMs in the how to release section of the
> >> doc? Does this satisfy the concerns?
> >>
> >>> On Jan 18, 2019, at 11:47 PM, Sean Busbey <[email protected]> wrote:
> >>>
> >>> I agree with Andrew that we can't both have maintenance releases and
> >> expect
> >>> every feature in ongoing branch-1 releases to be in branches-2.y.
> >>>
> >>> Tracking consideration for when features are available across major
> >>> versions fits in well with the "upgrade paths" section in the ref
> guide.
> >>>
> >>> We've just gotten in the habit of it only getting filled in when a big
> >>> release is coming up.
> >>>
> >>>
> >>>
> >>>> On Fri, Jan 18, 2019, 23:46 张铎(Duo Zhang) <[email protected]
> wrote:
> >>>>
> >>>> Then we must have a upgrade path, for example, 1.5.x can only be
> >> upgraded
> >>>> to 2.2.x if you want all the features still there?
> >>>>
> >>>> Maybe we should have a release timeline for the first release of all
> the
> >>>> minor releases? So when user want to upgrade, they can choose the
> minor
> >>>> release which is released later than the current one.
> >>>>
> >>>> Andrew Purtell <[email protected]>于2019年1月19日 周六13:15写道:
> >>>>
> >>>>> Also I think branch-1 releases will be done on a monthly cadence
> >>>>> independent of any branch-2 releases. This is because there are
> >> different
> >>>>> RMs at work with different needs and schedules.
> >>>>>
> >>>>> I can certainly help out some with branch-2 releasing if you need it,
> >>>>> FWIW.
> >>>>>
> >>>>> It may also help if we begin talking about 1.x and 2.x as separate
> >>>>> "products". This can help avoid confusion about features in 1.5 not
> in
> >>>> 2.1
> >>>>> but in 2.2. For all practical purposes they are separate products.
> Some
> >>>> of
> >>>>> our community develop and run branch-1. Others develop and run
> >> branch-2.
> >>>>> There is some overlap but the overlap is not total. The concerns will
> >>>>> diverge a bit. I think this is healthy. Everyone is attending to what
> >>>> they
> >>>>> need. Let's figure out how to make it work.
> >>>>>
> >>>>>> On Jan 18, 2019, at 9:04 PM, Andrew Purtell <
> [email protected]
> >>>
> >>>>> wrote:
> >>>>>>
> >>>>>> Also please be prepared to support forward evolution and maintenance
> >> of
> >>>>> branch-1 for, potentially, years. Because it is used in production
> and
> >>>> will
> >>>>> continue to do so for a long time. Features may end up in 1.6.0 that
> >> only
> >>>>> appear in 2.3 or 2.4. And in 1.7 that only appear in 2.5 or 2.6. This
> >>>>> shouldn't be confusing. We just need to document it. JIRA helps some,
> >>>>> release notes can help a lot more. Maybe in the future a feature to
> >>>> version
> >>>>> matrix in the book.
> >>>>>>
> >>>>>>> On Jan 18, 2019, at 8:59 PM, Andrew Purtell <
> >> [email protected]
> >>>>>
> >>>>> wrote:
> >>>>>>>
> >>>>>>> This can't work, because we can put things into a new minor that
> >>>> cannot
> >>>>> go into a patch relesse. If you say instead 2.2.0 must have
> everything
> >> in
> >>>>> 1.5.0, it can work. The alignment of features should happen at the
> >> minor
> >>>>> releases. If we can also have alignment in patch releases too, that
> >> would
> >>>>> be great, but can't be mandatory.
> >>>>>>>
> >>>>>>>> On Jan 18, 2019, at 7:12 PM, 张铎(Duo Zhang) <[email protected]
> >
> >>>>> wrote:
> >>>>>>>>
> >>>>>>>> Please see the red words carefully, I explicitly mentioned that,
> the
> >>>>> newer
> >>>>>>>> version should be released LATER, if you want to get all the
> >>>> features.
> >>>>>>>>
> >>>>>>>> For example, you release 2.1.0 yesterday, 1.5.0 today, and then
> >> 2.1.1
> >>>>>>>> tomorrow, it is OK that 2.1.0 does not have all feature which
> 1.5.0
> >>>>> has,
> >>>>>>>> but 2.1.1 should have all features which 1.5.0 has.
> >>>>>>>>
> >>>>>>>> Sergey Shelukhin <[email protected]>
> >>>>> 于2019年1月19日周六
> >>>>>>>> 上午10:23写道:
> >>>>>>>>
> >>>>>>>>> Consider that we actually cannot guarantee this without a time
> >>>>> machine,
> >>>>>>>>> because some "newer" versions are already released.
> >>>>>>>>>
> >>>>>>>>> If we backport to 1.5 now, we cannot do anything about 2.0.0,
> >> 2.1.0,
> >>>>>>>>> 2.1.2, etc. because they are already released... if the user
> >>>> upgrades
> >>>>> from
> >>>>>>>>> 1.5 to 2.0.1 for example, they will lose the feature no matter
> >> what.
> >>>>>>>>> The only way to ensure is to
> >>>>>>>>> - always update to latest dot version,
> >>>>>>>>> - also for us to make sure we never release before releasing
> every
> >>>>> "later"
> >>>>>>>>> dot release (e.g. we cannot release 1.5 before 2.1.3, 2.0.N, etc.
> >> so
> >>>>>>>>> there's the latest release for every line).
> >>>>>>>>> - and also for us to make sure that every single dot line
> actually
> >>>>> has a
> >>>>>>>>> release - when e.g. 2.0.X line is abandoned that may not happen,
> so
> >>>>> the
> >>>>>>>>> latest version of 2.0.X will precede latest 1.Y because 1.Y may
> >>>> still
> >>>>> be
> >>>>>>>>> active (like as far as I recall 0.94 was getting dot releases
> even
> >>>>> when
> >>>>>>>>> 0.96 was abandoned) - so even if the user goes from 1.Y to the
> >>>> latest
> >>>>> 2.0.X
> >>>>>>>>> they will lose the feature.
> >>>>>>>>>
> >>>>>>>>> I think this is kind of expected... I agree that it needs to be
> >>>>>>>>> documented. To an extent it already is in JIRA where fixVersion
> may
> >>>> be
> >>>>>>>>> "3.0, 2.2, 1.5", but it makes sense to document explicitly.
> >>>>>>>>>
> >>>>>>>>> -----Original Message-----
> >>>>>>>>> From: 张铎(Duo Zhang) <[email protected]>
> >>>>>>>>> Sent: Friday, January 18, 2019 5:50 PM
> >>>>>>>>> To: HBase Dev List <[email protected]>
> >>>>>>>>> Subject: About how features are integrated to different HBase
> >>>> versions
> >>>>>>>>>
> >>>>>>>>> I think we have a good discussion on HBASE-21034, where a feature
> >> is
> >>>>> back
> >>>>>>>>> ported to branch-1, but then folks think that we should not back
> >>>> port
> >>>>> them
> >>>>>>>>> to branch-2.1 and branch-2.0, as usually we should not add new
> >>>>> features to
> >>>>>>>>> minor release lines.
> >>>>>>>>>
> >>>>>>>>> I think the reason why we do not want the feature in branch-2.1
> and
> >>>>>>>>> branch-2.0 is reasonable, but this will introduce another
> problem.
> >>>> As
> >>>>>>>>> later, we will release a 1.5.0 which has the feature, but when a
> >>>> user
> >>>>> later
> >>>>>>>>> upgrades from 1.5.0 to 2.1.x or 2.0.x, it will find that the
> >> feature
> >>>>> is
> >>>>>>>>> gone, even though the 2.1.x or 2.0.x is released after 1.5.0 is
> >>>>> released,
> >>>>>>>>> as we do not port the feature to these two branches. This will be
> >>>> very
> >>>>>>>>> confusing to users I'd say.
> >>>>>>>>>
> >>>>>>>>> So I think we should guarantee that, a higher version of HBase
> >>>> release
> >>>>>>>>> will always contain all the features of a HBase release with a
> >> lower
> >>>>>>>>> version which is released earlier, unless explicitly
> mentioned(for
> >>>>> example,
> >>>>>>>>> DLR).
> >>>>>>>>>
> >>>>>>>>> And this implies that, when we setup a new major release and
> make a
> >>>>> new
> >>>>>>>>> release on the first minor release line, then the develop branch
> >> for
> >>>>> the
> >>>>>>>>> previous major release will be useless, as said above, usually we
> >> do
> >>>>> not
> >>>>>>>>> want to port any new features to the minor release line of the
> new
> >>>>> major
> >>>>>>>>> release, then the new features should not be ported to previous
> >>>> major
> >>>>>>>>> release, otherwise we will break the guarantee above. And this
> also
> >>>>> means
> >>>>>>>>> that, we could just use the 'develop' branch to make new
> releases.
> >>>>>>>>>
> >>>>>
> >>>>
> >>
>

Reply via email to