On 9/30/13 11:26 AM, Jason Greene wrote:
On Sep 30, 2013, at 11:17 AM, Brian Stansberry <brian.stansberry(a)redhat.com>
wrote:
> On 9/30/13 10:59 AM, Jason Greene wrote:
>>
>> On Sep 30, 2013, at 10:19 AM, Brian Stansberry
<brian.stansberry(a)redhat.com> wrote:
>>
>>> On 9/30/13 10:04 AM, Jason Greene wrote:
>>>>
>>>> On Sep 30, 2013, at 7:11 AM, Radoslav Husar <rhusar(a)redhat.com>
wrote:
>>>>
>>>>> On 30/09/13 12:07, Tomaž Cerar wrote:
>>>>>> One of possible ways to do it is also merge commits, aka
github's "merge
>>>>>> button"
>>>>>
>>>>> I wonder how would that help, since IIUC multiple PRs are now tested
in
>>>>> a single batch to make sure the PRs together do not cause a
regression,
>>>>> whereas each one passes the testsuite on its own. Then just push the
>>>>> whole batch…
>>>>
>>>> We would have to change the process to submit pull requests into a
staging branch, and that branch once certified (all tests pass on all combination) would
be pushed to the main master branch. In the event that a run fails, we would backup / redo
the staging branch, and let it push again.
>>>>
>>>
>>> Currently processing multiple pull requests in a batch is just a matter
>>> of a script doing rebases in a loop against a special branch that starts
>>> out at master HEAD, testing the final result of that and then merging
>>> the final special branch.
>>>
>>> Ideally the same process could be used, just with merge commits in the
>>> loop instead of rebases. Is that another way of saying what you
>>> described above? Or is there a problem with the final merge of the
>>> special branch?
>>
>> Yes we could write something to mirror the old way and use merge commits and PR
linking and so on. My suspicion is that the staging process would be faster because you
just click the green button on "clean" changes. The test process could kick off
automatically and email later, or to prevent duplicate runs we could just have an extra
launch step (click the run button on brontes once you are done merging).
>>
>
> I don't understand what the staging process is.
Think of it as everyone submitting pull requests into master-ignore instead of master, we
just simply rename master-ignore to master-staging since they no longer ignore it. They
start their feature branch on master (always on master), but then they submit a PR into
master-staging, and then we click the green button if its good. If there is a conflict we
either send it back, submit a new pull on their behalf, or do the merge offline (that part
needs sorting).
I don't get how this provides any sort of batching of processing. The
github UI tells you the patch can merge cleanly, which is nice. And if
the pull player tested it against the same commit as the current master,
you know it's good to merge. But if master has progressed since the PR
was tested (which is always the case with PR n>1 in a batch) then you
haven't tested the combo.
The batch testing is also where we get testing on Windows.
>
> How does PR linking relate to this?
Github generates pull request merge commits which nicely link to the original pull
request e.g.:
https://github.com/wildfly/wildfly/compare/97ce5300f4...b3b54ad
OK, I thought you were talking about the JIRA Pull Request workflow.
On the merge commit I can click right into the original PR
>
>>> It's pretty important that this be efficient. The large majority of PRs
>>> get merged in sizable batches, because the heavy costs are the test
>>> execution time and the context switch on the part of the merger.
>>
>> I agree thats the goal.
>>
>>>
>>> --
>>> Brian Stansberry
>>> Principal Software Engineer
>>> JBoss by Red Hat
>>> _______________________________________________
>>> wildfly-dev mailing list
>>> wildfly-dev(a)lists.jboss.org
>>>
https://lists.jboss.org/mailman/listinfo/wildfly-dev
>>
>> --
>> Jason T. Greene
>> WildFly Lead / JBoss EAP Platform Architect
>> JBoss, a division of Red Hat
>>
>
>
> --
> Brian Stansberry
> Principal Software Engineer
> JBoss by Red Hat
--
Jason T. Greene
WildFly Lead / JBoss EAP Platform Architect
JBoss, a division of Red Hat
--
Brian Stansberry
Principal Software Engineer
JBoss by Red Hat