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.
