I looked at the Jenkins job configuration and it looked good to me. Thank you for working on this.
Cheers, Lars On Tue, Jan 23, 2018 at 4:07 PM, Philip Zeyliger <phi...@cloudera.com> wrote: > Hi folks! > > As an update here: I've built > https://jenkins.impala.io/job/cherrypick-2.x-and-test/ as a test bed for > how this could work. (Because the cherrypick tool at review 9045 is still > pending GVO, I just hard-coded a single cherrypick.) Whenever "master" > changes, that Jenkins jobs would use a cherrypick tool to cherrypick things > into refs/sandbox/impala-public-jenkins/2.x-staging. Then, it would run > parallel-all-tests. If parallel-all-tests passes, all the cherrypicks are > promoted to asf-gerrit/2.x. > > I thought about doing one test run per commit, but I think that's very > liable to get stuck. I think we occasionally have commits that introduce a > test failure, followed by a commit that fixes it. The commit that > introduced the test failure would never pass the gate, and we'd get stuck. > (There's obviously the question of how it passed the original gate, but > that sometimes happens due to races and environmental factors.) > > Please let me know if you've got any concerns! > > -- Philip > > > On Fri, Jan 19, 2018 at 4:17 PM, Jim Apple <jbap...@cloudera.com> wrote: > > > We could commit first and then GVO -- that way if a commit broke > > something (in a reproducible way), we would at least know which commit > > did it. In this proposal, we don't have to wait for GVO N to finish > > before committing patch N+1. This is a sort of fast-path-slow-path > > idea, but fixing the slow path while keeping 2.x stable could be > > tricky. > > > > On Fri, Jan 19, 2018 at 3:53 PM, Dimitris Tsirogiannis > > <dtsirogian...@cloudera.com> wrote: > > > My ideal and more conservative policy would be: > > > - If conflicts, review. > > > - Always GVO. > > > > > > Dimitris > > > > > > On Fri, Jan 19, 2018 at 2:13 PM, Taras Bobrovytsky < > taras...@apache.org> > > > wrote: > > > > > >> I like your policy suggestion. If there are no conflicts, then we can > > push > > >> from master to 2.x without any tests or reviews. If there are > conflicts, > > >> then a review AND a GVO test run are required. > > >> > > >> We can at least start off with this policy and then change it if it is > > not > > >> working well for some reason. > > >> > > >> On Fri, Jan 19, 2018 at 1:59 PM, Philip Zeyliger <phi...@cloudera.com > > > > >> wrote: > > >> > > >> > An update here! > > >> > > > >> > I'm pretty close to pushing the first master-only change (the very > > >> exciting > > >> > 1-liner at https://gerrit.cloudera.org/#/c/9044/ that bumps > > versions). > > >> > After that, I'll be cherrypicking things into 2.x. > > >> > > > >> > We need a policy, I think, on reviewing these cherry-picks. The most > > >> > heavy-weight would be to do Gerrit and run-tests-before-merge for > > every > > >> > change. The least heavy would be to review only when the > cherry-picks > > >> > aren't clean. Are people comfortable with the less heavy policy? > > >> > > > >> > Specifically, I propose that clean cherrypicks from master to 2.x > can > > be > > >> > pushed without additional review. > > >> > > > >> > Thanks! > > >> > > > >> > -- Philip > > >> > > > >> > On Wed, Jan 17, 2018 at 9:57 AM, Philip Zeyliger < > phi...@cloudera.com > > > > > >> > wrote: > > >> > > > >> > > It sounds like we've reached consensus, so I'm starting to > maneuver > > >> this > > >> > > along. Please don't hesitate if you've got concerns. You can > follow > > >> along > > >> > > at https://issues.apache.org/jira/browse/IMPALA-6410. > > >> > > > > >> > > The first two reviews are out at: > > >> > > > > >> > > remote: http://gerrit.cloudera.org:8080/9044 Bumping version to > > 3.0. > > >> > > remote: http://gerrit.cloudera.org:8080/9045 IMPALA-6410: Tool > to > > >> > > cherrypick changes across branches. > > >> > > > > >> > > I've created the branches on Gerrit and Apache as follows: > > >> > > > > >> > > # This created the branch on gerrit.cloudera.org > > >> > > $ssh -p 29418 ph...@gerrit.cloudera.org gerrit create-branch > > >> Impala-ASF > > >> > > 2.x master > > >> > > > > >> > > # This created the branch on the Apache git server: > > >> > > $git push apache asf-gerrit/2.x:refs/heads/2.x > > >> > > Username for 'https://git-wip-us.apache.org': philz > > >> > > Password for 'https://ph...@git-wip-us.apache.org': > > >> > > Total 0 (delta 0), reused 0 (delta 0) > > >> > > To https://git-wip-us.apache.org/repos/asf/impala.git > > >> > > * [new branch] asf-gerrit/2.x -> 2.x > > >> > > > > >> > > # Double-check: > > >> > > $git-ls-remote apache | grep 2.x; git-ls-remote asf-gerrit | grep > > 2.x > > >> > > 6cc76d72016b8d5672676e8e8a979b0807803ad9 refs/heads/2.x > > >> > > 6cc76d72016b8d5672676e8e8a979b0807803ad9 refs/heads/2.x > > >> > > > > >> > > # push_to_asf learned of the branch "magically" > > >> > > $bin/push_to_asf.py > > >> > > INFO:root:Fetching from remote 'asf-gerrit'... > > >> > > INFO:root:done > > >> > > Branch '2.x': up to date > > >> > > Branch 'asf-site': up to date > > >> > > Branch 'branch-2.10.0': found on Apache but not in gerrit > > >> > > Branch 'branch-2.11.0': found on Apache but not in gerrit > > >> > > Branch 'branch-2.7.0': found on Apache but not in gerrit > > >> > > Branch 'branch-2.8.0': found on Apache but not in gerrit > > >> > > Branch 'branch-2.9.0': found on Apache but not in gerrit > > >> > > Branch 'hadoop-next': up to date > > >> > > Branch 'master': up to date > > >> > > > > >> > > -- Philip > > >> > > > > >> > > On Tue, Jan 16, 2018 at 5:29 PM, Alexander Behm < > > >> alex.b...@cloudera.com> > > >> > > wrote: > > >> > > > > >> > >> +1 > > >> > >> > > >> > >> On Tue, Jan 16, 2018 at 5:27 PM, Taras Bobrovytsky < > > >> taras...@apache.org > > >> > > > > >> > >> wrote: > > >> > >> > > >> > >> > +1 > > >> > >> > > > >> > >> > On Tue, Jan 16, 2018 at 1:34 PM, Lars Volker <l...@cloudera.com> > > >> wrote: > > >> > >> > > > >> > >> > > +1 > > >> > >> > > > > >> > >> > > On Tue, Jan 16, 2018 at 1:29 PM, Philip Zeyliger < > > >> > phi...@cloudera.com > > >> > >> > > > >> > >> > > wrote: > > >> > >> > > > > >> > >> > > > Hi folks! > > >> > >> > > > > > >> > >> > > > It sounds like there haven't been objections to having > > master be > > >> > >> "3.0" > > >> > >> > > and > > >> > >> > > > introducing a 2.x branch. Would folks be alright if I > started > > >> > making > > >> > >> > > > changes in that direction? > > >> > >> > > > > > >> > >> > > > Thanks! > > >> > >> > > > > > >> > >> > > > -- Philip > > >> > >> > > > > > >> > >> > > > On Fri, Jan 12, 2018 at 4:10 PM, Philip Zeyliger < > > >> > >> phi...@cloudera.com> > > >> > >> > > > wrote: > > >> > >> > > > > > >> > >> > > > > > > >> > >> > > > > > > >> > >> > > > > On Fri, Jan 12, 2018 at 4:04 PM, Jim Apple < > > >> > jbap...@cloudera.com> > > >> > >> > > wrote: > > >> > >> > > > > > > >> > >> > > > >> This makes sense to me. > > >> > >> > > > >> > > >> > >> > > > >> In this mode, for 2.x-only changes and for changes on > 3.0 > > >> that > > >> > >> don't > > >> > >> > > > >> apply cleanly, there will be a manual way to do the step > > >> > labelled > > >> > >> > "1. > > >> > >> > > > >> Cherrypick tool", and that way is the same way we send > > >> patches > > >> > >> for > > >> > >> > > > >> review now, but pushing to HEAD:refs/for/2.x rather than > > >> > >> > > > >> HEAD:refs/for/master, yes? > > >> > >> > > > >> > > >> > >> > > > > > > >> > >> > > > > Exactly. So, non-clean cherrypicks or 2.x-only changes go > > >> > through > > >> > >> > > review > > >> > >> > > > > on Gerrit, but we give an implicit review pass to clean > > >> > >> cherrypicks. > > >> > >> > > > > > > >> > >> > > > > We could have the cherrypick tool between gerrit/master > and > > >> > >> > gerrit/2.x > > >> > >> > > do > > >> > >> > > > > the cherrypicks and run the tests on Jenkins. Do you > think > > >> > that's > > >> > >> > > > > preferable? > > >> > >> > > > > > > >> > >> > > > > -- Philip > > >> > >> > > > > > > >> > >> > > > > > > >> > >> > > > > > > >> > >> > > > >> > > >> > >> > > > >> On Fri, Jan 12, 2018 at 3:57 PM, Philip Zeyliger < > > >> > >> > phi...@cloudera.com > > >> > >> > > > > > >> > >> > > > >> wrote: > > >> > >> > > > >> > Picture: > > >> > >> > > > >> > https://gist.github.com/philz/ > > >> 323c8b4cb411dc12eb7231d922c195 > > >> > >> > > > >> 1f#file-impala-branch-image-pdf > > >> > >> > > > >> > > > >> > >> > > > >> > > > >> > >> > > > >> > On Fri, Jan 12, 2018 at 3:47 PM, Jim Apple < > > >> > >> jbap...@cloudera.com> > > >> > >> > > > >> wrote: > > >> > >> > > > >> > > > >> > >> > > > >> >> Often, this list seems to filter out images. Could > you > > >> post > > >> > it > > >> > >> > and > > >> > >> > > > >> send a > > >> > >> > > > >> >> link? > > >> > >> > > > >> >> > > >> > >> > > > >> >> Thanks for taking this on, Phil! > > >> > >> > > > >> >> > > >> > >> > > > >> >> On Fri, Jan 12, 2018 at 3:15 PM, Philip Zeyliger < > > >> > >> > > > phi...@cloudera.com> > > >> > >> > > > >> >> wrote: > > >> > >> > > > >> >> > > >> > >> > > > >> >> > I think most patches go to Gerrit branch 'master', > > which > > >> > >> > happens > > >> > >> > > to > > >> > >> > > > >> >> > identify itself as 3.0. (Or 3.x?). > > >> > >> > > > >> >> > > > >> > >> > > > >> >> > Here's a picture: > > >> > >> > > > >> >> > > > >> > >> > > > >> >> > [image: Inline image 1] > > >> > >> > > > >> >> > > > >> > >> > > > >> >> > > > >> > >> > > > >> >> > With this, every time "cherrypick_and_push_to_asf. > > py" > > >> is > > >> > >> run, > > >> > >> > it > > >> > >> > > > >> would > > >> > >> > > > >> >> > first offer to cherrypick changes between master > and > > >> 2.x. > > >> > >> Then, > > >> > >> > > it > > >> > >> > > > >> would > > >> > >> > > > >> >> > offer push those cherrypicks to gerrit/2.x. After > > that, > > >> it > > >> > >> > > > continues > > >> > >> > > > >> on > > >> > >> > > > >> >> as > > >> > >> > > > >> >> > before and offers to push changes to ASF. I think > > this > > >> > >> > maintains > > >> > >> > > > the > > >> > >> > > > >> >> > invariant that pushing to ASF is only done with a > > human > > >> > >> > trigger. > > >> > >> > > > (We > > >> > >> > > > >> >> could > > >> > >> > > > >> >> > also have step 1 be done by a Jenkins robot, since > > it's > > >> > >> between > > >> > >> > > > >> Gerrit > > >> > >> > > > >> >> and > > >> > >> > > > >> >> > Gerrit.) > > >> > >> > > > >> >> > > > >> > >> > > > >> >> > I looked at the How to Release page, and the main > > >> > difference > > >> > >> > > would > > >> > >> > > > be > > >> > >> > > > >> >> > that, for a 2.x release, the $COMMIT_HASH_YOU_CHOSE > > >> would > > >> > >> come > > >> > >> > > from > > >> > >> > > > >> the > > >> > >> > > > >> >> 2.x > > >> > >> > > > >> >> > branch, as would any cherrypicks. > > >> > >> > > > >> >> > > > >> > >> > > > >> >> > Does this match what you're thinking? > > >> > >> > > > >> >> > > > >> > >> > > > >> >> > Thanks! > > >> > >> > > > >> >> > > > >> > >> > > > >> >> > -- Philip > > >> > >> > > > >> >> > > > >> > >> > > > >> >> > On Fri, Jan 12, 2018 at 11:07 AM, Jim Apple < > > >> > >> > > jbap...@cloudera.com> > > >> > >> > > > >> >> wrote: > > >> > >> > > > >> >> > > > >> > >> > > > >> >> >> Which gerrit branch were you thinking most patches > > >> would > > >> > go > > >> > >> > to? > > >> > >> > > > >> >> >> > > >> > >> > > > >> >> >> If they go to 3.0, then push_to_asf.py would have > > to be > > >> > >> > amended > > >> > >> > > to > > >> > >> > > > >> >> >> push to gerrit, bypassing code review. I think > > that's > > >> > >> > possible, > > >> > >> > > > but > > >> > >> > > > >> >> >> I'm not 100%. > > >> > >> > > > >> >> >> > > >> > >> > > > >> >> >> There is also security to think about, since the > > >> > >> > push_to_asf.py > > >> > >> > > > >> users > > >> > >> > > > >> >> >> can push a few commits at a time, including ones > > they > > >> > >> didn't > > >> > >> > > > author > > >> > >> > > > >> or > > >> > >> > > > >> >> >> review. > > >> > >> > > > >> >> >> > > >> > >> > > > >> >> >> We'll also want to clarify > > >> > >> > > > >> >> >> https://cwiki.apache.org/ > > >> confluence/display/IMPALA/How+ > > >> > >> > > to+Release > > >> > >> > > > >> and > > >> > >> > > > >> >> >> keep it consistent with the git & gerrit statuses > > quo. > > >> > >> > > > >> >> >> > > >> > >> > > > >> >> >> On Fri, Jan 12, 2018 at 10:52 AM, Philip Zeyliger > < > > >> > >> > > > >> phi...@cloudera.com> > > >> > >> > > > >> >> >> wrote: > > >> > >> > > > >> >> >> > Hi! > > >> > >> > > > >> >> >> > > > >> > >> > > > >> >> >> >> Should we start tagging all candidates with a > > common > > >> > >> label, > > >> > >> > > > e.g. > > >> > >> > > > >> >> >> > include-in-v3? > > >> > >> > > > >> >> >> > > > >> > >> > > > >> >> >> > I agree with Lars's suggestion for tagging JIRAs > > with > > >> > >> > > > >> include-in-v3. > > >> > >> > > > >> >> >> I've > > >> > >> > > > >> >> >> > done so, and the relevant query is > > >> > >> > > > >> >> >> > https://issues.apache.org/ > > >> > jira/issues/?jql=labels%20%3D% > > >> > >> > 20in > > >> > >> > > > >> >> >> clude-in-v3%20and%20project%3Dimpala > > >> > >> > > > >> >> >> > . > > >> > >> > > > >> >> >> > > > >> > >> > > > >> >> >> >> What sort of process were you thinking of for > the > > >> > >> > automation? > > >> > >> > > > >> >> >> > > > >> > >> > > > >> >> >> > I think amending push_to_asf.py, as you suggest, > > is a > > >> > >> great > > >> > >> > > > idea. > > >> > >> > > > >> I > > >> > >> > > > >> >> >> think > > >> > >> > > > >> >> >> > we have a string ("not for 2.x") which can be > > used in > > >> > >> commit > > >> > >> > > > >> messages > > >> > >> > > > >> >> to > > >> > >> > > > >> >> >> > discourage the cherrypick for the changes we > want > > to > > >> be > > >> > >> > > > exclusive > > >> > >> > > > >> >> until > > >> > >> > > > >> >> >> we > > >> > >> > > > >> >> >> > want to change the defaults in the other > > direction. > > >> > >> (I.e., > > >> > >> > > right > > >> > >> > > > >> now > > >> > >> > > > >> >> the > > >> > >> > > > >> >> >> > string is "not for 2.x", but at some point the > > string > > >> > >> may be > > >> > >> > > > >> "should > > >> > >> > > > >> >> be > > >> > >> > > > >> >> >> > cherrypicked to 2.x".) > > >> > >> > > > >> >> >> > > > >> > >> > > > >> >> >> > I do think that we want to create a gerrit > branch > > to > > >> > >> allow > > >> > >> > > > >> 2.x-only > > >> > >> > > > >> >> >> changes > > >> > >> > > > >> >> >> > to be reviewed in the straight-forward fashion. > > >> > >> > > > >> >> >> > > > >> > >> > > > >> >> >> > -- Philip > > >> > >> > > > >> >> >> > > > >> > >> > > > >> >> >> > > > >> > >> > > > >> >> >> > > > >> > >> > > > >> >> >> > On Thu, Jan 11, 2018 at 9:31 AM, Jim Apple < > > >> > >> > > > jbap...@cloudera.com> > > >> > >> > > > >> >> >> wrote: > > >> > >> > > > >> >> >> > > > >> > >> > > > >> >> >> >> I'm on-board with all of this. (I also would be > > OK > > >> > >> delaying > > >> > >> > > > 3.0, > > >> > >> > > > >> if > > >> > >> > > > >> >> >> >> that were the consensus). > > >> > >> > > > >> >> >> >> > > >> > >> > > > >> >> >> >> There is one issue in here I think we should > dive > > >> > into: > > >> > >> > > > >> >> >> >> > > >> > >> > > > >> >> >> >> > Both master and 2.x would be active, and, at > > least > > >> > for > > >> > >> > the > > >> > >> > > > >> >> beginning, > > >> > >> > > > >> >> >> >> > changes would automatically be pulled into > the > > 2.x > > >> > >> line, > > >> > >> > > > unless > > >> > >> > > > >> >> >> >> explicitly > > >> > >> > > > >> >> >> >> > blacklisted. > > >> > >> > > > >> >> >> >> > > >> > >> > > > >> >> >> >> What sort of process were you thinking of for > the > > >> > >> > automation? > > >> > >> > > > >> >> >> >> > > >> > >> > > > >> >> >> >> Some context, starting from what we all likely > > >> already > > >> > >> > know: > > >> > >> > > > >> >> >> >> > > >> > >> > > > >> >> >> >> The bulk of the code review and pre-merge > testing > > >> > >> results > > >> > >> > are > > >> > >> > > > >> >> recorded > > >> > >> > > > >> >> >> >> in gerrit. Once the pre-merge testing passes, a > > >> patch > > >> > is > > >> > >> > > > >> >> cherry-picked > > >> > >> > > > >> >> >> >> to the git repo hosted with gerrit. To get the > > patch > > >> > to > > >> > >> the > > >> > >> > > > >> Impala > > >> > >> > > > >> >> git > > >> > >> > > > >> >> >> >> repo hosted by the ASF, bin/push_to_asf.py is > run > > >> by a > > >> > >> > human > > >> > >> > > > who > > >> > >> > > > >> >> >> >> supplies his or her ASF credentials. That > script > > >> > copies > > >> > >> the > > >> > >> > > > >> commit to > > >> > >> > > > >> >> >> >> the ASF git repo. > > >> > >> > > > >> >> >> >> > > >> > >> > > > >> >> >> >> Often, 2-3 commits will pile up in gerrit > before > > >> some > > >> > >> > > committer > > >> > >> > > > >> runs > > >> > >> > > > >> >> >> >> that script and pushes them to ASF. > > >> > >> > > > >> >> >> >> > > >> > >> > > > >> >> >> >> We could edit that script (bin/push_to_asf.py) > to > > >> help > > >> > >> with > > >> > >> > > the > > >> > >> > > > >> >> cherry > > >> > >> > > > >> >> >> >> picks, so that each time a commit is made, the > > >> > committer > > >> > >> > must > > >> > >> > > > say > > >> > >> > > > >> >> >> >> whether the commit goes in 2.x, 3.0, or both, > but > > >> the > > >> > >> > commits > > >> > >> > > > are > > >> > >> > > > >> >> >> >> often made by people who didn't author the > > patches, > > >> so > > >> > >> they > > >> > >> > > may > > >> > >> > > > >> not > > >> > >> > > > >> >> be > > >> > >> > > > >> >> >> >> sure which branch to go in. > > >> > >> > > > >> >> >> >> > > >> > >> > > > >> >> >> >> Additionally, gerrit code review is intimately > > tied > > >> to > > >> > >> the > > >> > >> > > git > > >> > >> > > > >> repo. > > >> > >> > > > >> >> >> >> Gerrit runs a git repo under-the-hood, and I > > believe > > >> > >> that > > >> > >> > the > > >> > >> > > > >> branch > > >> > >> > > > >> >> >> >> on gerrit's git that changes are cherry-picked > to > > >> > after > > >> > >> > > > pre-merge > > >> > >> > > > >> >> >> >> testing is identical to the Impala git repo > > hosted > > >> by > > >> > >> the > > >> > >> > > ASF - > > >> > >> > > > >> down > > >> > >> > > > >> >> >> >> to the hashes, even. If we think 2.x and 3.0 > will > > >> > >> diverge > > >> > >> > > > enough > > >> > >> > > > >> that > > >> > >> > > > >> >> >> >> we'll want different code reviews for different > > >> > >> branches, > > >> > >> > > then > > >> > >> > > > we > > >> > >> > > > >> >> >> >> might want two different branches on gerrit, > too. > > >> > >> > > > >> >> >> >> > > >> > >> > > > >> >> >> > > >> > >> > > > >> >> > > > >> > >> > > > >> >> > > > >> > >> > > > >> >> > > >> > >> > > > >> > > >> > >> > > > > > > >> > >> > > > > > > >> > >> > > > > > >> > >> > > > > >> > >> > > > >> > >> > > >> > > > > >> > > > > >> > > > >> > > >