+1

This is a good summary, And we are better off resolving issues through 
discussions on emails, rather than JIRA, and everyone behaving amicably towards 
each other.


I think we should be more willing to do feature branches, especially for things 
like

- anything deep into the codebase
- self-contained things
-something that will be a series of incremental patches, each with no real 
benefit on their own. That is: things where adding to the codebase is, until 
complete, only a risk of regressions. 

If yetus doesn't do preflight checks on feature branches, we can get that in, 
and set up Jenkins nightly builds for the branches too (With different email 
policies: email to committers & select listeners, not more noise on the deve 
lists)



Regarding where we are today

I don't know what can/should be done with the set of patches that just got 
moved to a feature branch, except that Vinods "not in 2.8" veto holds there. 
As, presumably, does Andrew's "not in 3.0 alpha without a Java 8 API"

Which means that any API which gets in a Java-7 compatible Hadoop release 
(2.9?) will have to be on an API which we know won't last.

1. I propose adding a new stability state/tag, @Experimental, to warn users 
that this not only "may" go away, but is in fact highly likely to, and any 
replacement may need big code changes. The @Unstable tag has been devalued for 
this from its near-universalness: you see the tag and ignore it.

2. Any proposed API for branch-2 must be tagged @Experimental, put that in the 
name of the API ( that is, not, say AsyncFileSystem, but 
ExperimentalAsyncDelete}} or similar.

4. The long-term API is going to be: Java 8, strictly specified by a whole new 
section in the FS API (yes, that is where my veto would come in. No spec, no 
tests: no commit). The tests will be at part of the Abstract contract test 
suite, and, ideally, backed with another implementation alongside that of HDFS. 
This could just be a thread-pooled thing working with a normal sync FS.

5. People who intend to use the Async API —Hive, HBase, etc, get involved in 
that process, ideally seeing how well they could get a branch of their own code 
to work with the API. That would be a validation of the API itself, identify 
and force the clarification of any ambiguities, etc.

(4) + (5) may seem expensive/slow, but if HBase and Hive dev teams are 
involved, it means that what eventually gets into Hadoop is ready to backed by 
code downstream.

I'm not going to get involved here, except to warn that I will be reviewing the 
markdown specification stuff. I'll help: people might want to help review the 
listFiles and listStatus operations which I sat down to define recently: 
https://issues.apache.org/jira/browse/HADOOP-13207




> On 6 Jun 2016, at 22:36, Vinod Kumar Vavilapalli <vino...@apache.org> wrote:
> 
> Folks,
> 
> It is truly disappointing how we are escalating situations that can be 
> resolved through basic communication.
> 
> Things that shouldn’t have happened
> - After a few objections were raised, commits should have simply stopped 
> before restarting again but only after consensus
> - Reverts (or revert and move to a feature-branch) shouldn’t have been 
> unequivocally done without dropping a note / informing everyone / building 
> consensus. And no, not even a release-manager gets this free pass. Not on 
> branch-2, not on trunk, not anywhere.
> - Freaking out on -1’s and reverts - we as a community need to be less 
> stigmatic about -1s / reverts.
> 
> Trunk releases:
>       This is the other important bit about huge difference of expectations 
> between the two sides w.r.t trunk and branching. Till now, we’ve never made 
> releases out of trunk. So in-progress features that people deemed to not need 
> a feature branch could go into trunk without much trouble. Given that we are 
> now making releases off trunk, I can see (a) the RM saying "no, don’t put 
> in-progress stuff and (b) the contributors saying “no we don’t want the 
> overhead of a branch”. I’ve raised related topics (but only focusing on 
> incompatible changes) before - http://markmail.org/message/m6x73t6srlchywsn 
> <http://markmail.org/message/m6x73t6srlchywsn> - but we never decided 
> anything.
> 
> We need to at the least force a reset of expectations w.r.t how trunk and 
> small / medium / incompatible changes there are treated. We should hold off 
> making a release off trunk before this gets fully discussed in the community 
> and we all reach a consensus.
> 
>> * Without a user API, there's no way for people to use it, so not much
>> advantage to having it in a release
>> 
>> Since the code is separate and probably won't break any existing code, I
>> won't -1 if you want to include this in a release without a user API, but
>> again, I question the utility of including code that can't be used.
> 
> Clearly, there are two sides to this argument. One side claims the absence of 
> user-facing public / stable APIs, and that for all purposes this is dead-code 
> for everyone other than the few early adopters who want to experiment with 
> it. The other argument is to not put this code before a user API. Again, I’d 
> discuss with fellow community members before making what the other side 
> perceives as unacceptable moves.
> 
> From 2.8.0 perspective, it shouldn’t have landed there in the first place - I 
> have been pushing for a release for a while with help only from a few members 
> of the community. But if you say that it has no material impact on the user 
> story, having a by-default switched-off feature that *doesn’t* destabilize 
> the core release, I’d be willing to let it pass.
> 
> +Vinod

Reply via email to