And yes we should document this. And also we need to have a web page to list all the releases in timeline? So user could know which version is safe to use when upgrading easily.
张铎(Duo Zhang) <palomino...@gmail.com> 于2019年1月19日周六 上午11:12写道: > 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 <sergey.sheluk...@microsoft.com.invalid> 于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) <palomino...@gmail.com> >> Sent: Friday, January 18, 2019 5:50 PM >> To: HBase Dev List <dev@hbase.apache.org> >> 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. >> >