Sijie, Ivan and/or other PMC I would like to create branches on shared Apache repo in order to create the chain of Pull Requests. I think we should agree on a naming convention
What about issue-471-xxxxx issue-471-yyyyy issue-471-zzzzz where xxxxxx is a local name which describes better the intent of the branch and 471 is the id of the master issue for the work, in this case issue 471 (BP-14) I am maintaining the stack of pull requests on my private fork https://github.com/eolivelli/bookkeeper/pulls I would like to move to the final solution as soon as possible, there are already many comments from Sijie and Ivan and I am not very happy to lose them by closing the Pull Requests I am happy that this case is helping us to draft the way of working for future "big issues" on BookKeeper -- Enrico 2017-10-21 9:39 GMT+02:00 Enrico Olivelli <eolive...@gmail.com>: > > > Il sab 21 ott 2017, 01:00 Ivan Kelly <iv...@apache.org> ha scritto: > >> Hey Enrico, >> >> I think we can do better than that stacked PR blog says. GH now allows >> you to change the target of a PR which wasn't the case when that was >> written. > > > Good news! > > I think we could even start using branches in the main repo, >> and delete them after we merge, and set the base of the pull request >> to be the previous patch in the series. >> >> I've put up an example, and commands I used are here: >> https://gist.github.com/ivankelly/bfe16c81156dc3be7123921f37a6274d >> >> Each PR can be reviewed individually. Any changes for a PR can be >> pushed for that branch. If conflicts occur, you can rebase or merge to >> fix it. In the later patches. >> >> When a patch is merged, any pull requests that depend on it can have >> it's base changed to master, and then the branch can be deleted. >> >> It should be straightforward to add a script to do this to avoid the >> typing. >> >> Something like. >> dev/bk-stacked-pr.py -h foobar -n ivan/my-feature >> >> Where -h is the sha1 head of list of commits to create a pull request >> for, and -n is the basename of the branches that will be created. >> >> Unfortunately this would only be possible for committers, but >> something similar could be done with private forks, though the reviews >> wouldn't be as visible. >> >> The base changing, branch cleanup can be done in bk-merge-pr.py. >> > > Thank you I will try to use your examples. > > In order to use shared branches on apache repo I think that it would be > very useful but only for this kind of big patches. > Do we need some PMC formal consensus to start using such feature branches? > > We must define naming conventions > > On such branches we should allow force push, maybe we are protecting only > master and release branches, I will check this > > Next week I will continue adding new patches and maybe move to apache repo > if we have the approval. > > Enrico > > >> -Ivan >> >> On Fri, Oct 20, 2017 at 8:19 AM, Enrico Olivelli <eolive...@gmail.com> >> wrote: >> > I have created a chain of stacked Pull Requests using my private fork >> > (eolivelli/bookkeeper) >> > >> > https://github.com/eolivelli/bookkeeper/pulls >> > >> > https://github.com/eolivelli/bookkeeper/pull/2 part 1 >> > https://github.com/eolivelli/bookkeeper/pull/3 part 2 >> > https://github.com/eolivelli/bookkeeper/pull/4 part 3 >> > >> > Each Pull Request is against the previous one: >> > >> > Pros: >> > - this makes it very simple to handle diffs visually and so to comment >> on >> > specific changes >> > - when I change a line in PR1, simply I use "merge" (git checkout >> > PR2-branch, git merge PR1-branch, git checkout PR3-branch, git merge >> > PR3-branch) >> > >> > Cons: >> > - the conversation will be hosted entirely on my GitHub fork, non on the >> > Apache one >> > >> > >> > The alternative approach is to have separate Pull Requests on Apache >> repo, >> > like these >> > >> > https://github.com/apache/bookkeeper/pull/642 >> > https://github.com/apache/bookkeeper/pull/643 >> > >> > Pros: >> > - the conversation is on Apache stuff >> > >> > Cons: >> > - the developer (me in this case) has to fix all the commits and perform >> > clean up in order to port changes in downstream pull requests to >> upstream >> > once >> > >> > >> > >> > I hope we can find a good way of working on this kind on "huge changes" >> and >> > let "reviewers" and "contributors" do their work without wasting >> precious >> > time >> > >> > As a contributor in this case I prefer approach 1), because life is >> really >> > easy, maybe I am not a git guru and there is a better way to handle >> > approach 2) >> > >> > There is a 1 and 1/2 approach, that is to do 1) but with branches on >> Apache >> > repo, but Ivan suggested to use private forks (and I agree with Ivan) >> > >> > Thank you all (expecially Sijie and Ivan) for you help and support, I do >> > not want to waste reviewers' time, It takes time and patience to >> "really" >> > review code >> > >> > Thoughts ? >> > >> > Enrico >> > >> > >> > >> > >> > 2017-10-18 17:38 GMT+02:00 Ivan Kelly <iv...@apache.org>: >> > >> >> For branching, I would create the on your own personal fork. >> >> >> >> -Ivan >> >> >> >> On Wed, Oct 18, 2017 at 8:37 AM, Ivan Kelly <iv...@apache.org> wrote: >> >> > I had a quick look, I'll get to reviewing today (in bay area this >> >> > week, so day is just starting), but looks great. >> >> > >> >> > -Ivan >> >> > >> >> > On Wed, Oct 18, 2017 at 8:31 AM, Enrico Olivelli < >> eolive...@gmail.com> >> >> wrote: >> >> >> Hi, >> >> >> I am trying to split the patch for BP-14 in multiple pieces >> >> >> >> >> >> This is the umbrella issue, I will link here all the Pull Requests >> >> >> https://github.com/apache/bookkeeper/issues/471 >> >> >> >> >> >> I am actually in work-in-progress, I have covered metadata and >> client >> >> side >> >> >> changes with the first 2 PRs. >> >> >> >> >> >> It will take some more days to create all of the PRs. >> >> >> >> >> >> In order to make it simpler to create stacked PRs it would be >> better to >> >> >> create branches and PRs not against the master but every PR is to be >> >> sent >> >> >> against the previous one in the list, see [1] as Ivan suggested. >> >> >> >> >> >> I wounder if it would be better to use my own github repo or to >> create >> >> >> branches on Apache repo. >> >> >> I see many projects are using branches directly on apache >> repository, >> >> for >> >> >> instance Apache Maven. >> >> >> I am not a fan of this because it would lead to some kind of >> pollution >> >> in >> >> >> the primary repo. >> >> >> >> >> >> I will try to set up the whole thing in my repo and come back maybe >> >> with a >> >> >> better approach. >> >> >> >> >> >> For me it is a real experiment I hope I am not creating too much >> noise >> >> >> >> >> >> Cheers >> >> >> Enrico >> >> >> >> >> >> [1] >> >> >> https://graysonkoonce.com/stacked-pull-requests-keeping- >> >> github-diffs-small/ >> >> >> > -- > > > -- Enrico Olivelli >