git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: 0 bot for Git

From
Lars Schneider <larsxschneider@gmail.com>
Date
Apr 16, 2016, 15:51 UTC
Message-ID
<DB5772D2-89D4-4D14-8FD1-4AF6DDFD77AC@gmail.com>
In-Reply-To
<CAGZ79ka4WmT8NjD-04WqwczuCuJZcoKMyDRQKkRH1sT5xoqRhQ@mail.gmail.com>
On 13 Apr 2016, at 19:29, Stefan Beller <sbeller@google.com> wrote:
Show 32 quoted lines
> On Wed, Apr 13, 2016 at 10:09 AM, Lars Schneider
> <larsxschneider@gmail.com> wrote:
>> 
>>> On 13 Apr 2016, at 18:27, Junio C Hamano <gitster@pobox.com> wrote:
>>> 
>>> Lars Schneider <larsxschneider@gmail.com> writes:
>>> 
>>>> @Junio:
>>>> If you setup Travis CI for your https://github.com/gitster/git fork
>>>> then Travis CI would build all your topic branches and you (and
>>>> everyone who is interested) could check
>>>> https://travis-ci.org/gitster/git/branches to see which branches
>>>> will break pu if you integrate them.
>>> 
>>> I would not say such an arrangement is worthless, but it targets a
>>> wrong point in the patch flow.
>>> 
>>> The patches that result in the most wastage of my time (i.e. a
>>> shared bottleneck resource the community should strive to optimize
>>> for) are the ones that fail to hit 'pu'.  Ones that do not even
>>> build in isolation, ones that may build but fail even the new tests
>>> they bring in, ones that break existing tests, and ones that are OK
>>> in isolation but do not play well with topics already in flight.
>> 
>> I am not sure what you mean by "fail to hit 'pu'". Maybe we talk at
>> cross purposes. Here is what I think you do, please correct me:
>> 
>> 1.) You pick the topics from the mailing list and create feature
>>    branches for each one of them. E.g. one of my recent topics
>>    is "ls/config-origin".
> 
> and by You you mean Junio.
Yes.
Show 16 quoted lines
> Ideally the 0bot would have sent the message as a reply to the
> cover letter with the information "doesn't compile/breaks test t1234",
> so Junio could ignore that series (no time wasted on his part).
> 
> At Git Merge Greg said (paraphrasing here):
> 
>  We waste developers time, because we have plenty of it. Maintainers time
>  however is precious because maintainers are the bottleneck and a scare
>  resource to come by.
> 
> And I think Git and the kernel have the same community design here.
> (Except the kernel is bigger and has more than one maintainer)
> 
> So the idea is help Junio make a decision to drop/ignore those patches
> with least amount of brain cycled spent as possible. (Not even spend 5
> seconds on it).

That sounds great. I just wonder how 0bot would know where to apply the patches?

Show 17 quoted lines
>> 2.) At some point you create a new pu branch based on the latest
>>    next branch. You merge all the new topics into the new pu.
> 
> but Junio also runs test after each(?) merge(?) of a series and once
> tests fail, it takes time to sort out, what caused it. (Is that the patch series
> alone or is that because 2 series interact badly with each other?)
> 
>> 
>> If you push the topics to github.com/gitster after step 1 then
>> Travis CI could tell you if the individual topic builds clean
>> and passes all tests. Then you could merge only clean topics in
>> step 2 which would result in a pu that is much more likely to
>> build clean.
> 
> IIRC Junio did not like granting travis access to the "blessed" repository
> as travis wants so much permissions including write permission to that
> repo. (We/He could have a second non advertised repo though)

AFAIK TravisCI does not ask for repo write permissions. They ask for permission to write the status of commits (little green checkmark on GitHub) and repo hooks: https://docs.travis-ci.com/user/github-oauth-scopes

Show 6 quoted lines
> Also this would incur wait time on Junios side
> 
> 1) collect patches (many series over the day)
> 2) push
> 3) wait
> 4) do the merges

He could do the merges as he does them today but after some time he (and the contributor of a patch) would know if a certain patch brakes pu.

Show 7 quoted lines
> however a 0 bot would do
> 1) collect patches faster than Junio (0 bot is a computer after all,
> working 24/7)
> 2) test each patch/series individually
> 3) send feedback without the wait time, so the contributor from a different
>   time zone gets feedback quickly. (round trip is just the build and test time,
>   which the developer forgot to do any way if it fails)

I agree that this would be even better. However, I assume this mechanism requires some setup? TravisCI works today.

Show 17 quoted lines
> 
>> 
>> Could that process avoid wasting your time with bad patches?
>> 
>>> Automated testing of what is already on 'pu' does not help reduce
>>> the above cost, as the culling must be done by me _without_ help
>>> from automated test you propose to run on topics in 'pu'.  Ever
>>> heard of chicken and egg?
>>> 
>>> Your "You can setup your own CI" update to SubmittingPatches may
>>> encourage people to test before sending.  The "Travis CI sends
>>> failure notice as a response to a crappy patch" discussed by
>>> Matthieu in the other subthread will be of great help.
>>> 
>>> Thanks.
>>> 
>> 
Previous: Greg KHNext: Junio C Hamano
Message 18 of 41 in “Re: 0 bot for Git”
  1. Stefan BellerApr 12, 2016
  2. Greg KHApr 12, 2016
  3. Matthieu MoyApr 12, 2016
  4. Stefan BellerApr 12, 2016
  5. Philip LiApr 12, 2016
  6. Matthieu MoyApr 12, 2016
  7. Junio C HamanoApr 12, 2016
  8. Matthieu MoyApr 13, 2016
  9. Lars SchneiderApr 13, 2016
  10. Matthieu MoyApr 13, 2016
  11. Lars SchneiderApr 13, 2016
  12. Junio C HamanoApr 13, 2016
  13. Lars SchneiderApr 13, 2016
  14. Junio C HamanoApr 13, 2016
  15. Lars SchneiderApr 13, 2016
  16. Stefan BellerApr 13, 2016
  17. Greg KHApr 13, 2016
  18. Lars SchneiderApr 16, 2016
  19. Junio C HamanoApr 16, 2016
  20. Lars SchneiderApr 22, 2016
  21. Junio C HamanoApr 22, 2016
  22. Johannes SchindelinApr 24, 2016
  23. SZEDER GáborApr 24, 2016
  24. Johannes SchindelinApr 24, 2016
  25. Junio C HamanoApr 13, 2016
  26. Fengguang WuApr 13, 2016
  27. Duy NguyenApr 12, 2016
  28. Stefan BellerApr 12, 2016
  29. Christian CouderApr 14, 2016
  30. Parallel checkout (Was Re: 0 bot for Git)Duy Nguyen, Apr 15, 2016
  31. Christian CouderApr 15, 2016
  32. Duy NguyenApr 15, 2016
  33. Jeff KingApr 15, 2016
  34. Junio C HamanoApr 15, 2016
  35. Jeff KingApr 15, 2016
  36. Michael HaggertyApr 16, 2016
  37. Stefan BellerApr 15, 2016
  38. Duy NguyenApr 16, 2016
  39. Duy NguyenApr 26, 2016
  40. Johannes SchindelinApr 24, 2016
  41. Johannes SchindelinApr 25, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.