On Mon, Mar 5, 2012 at 2:27 AM, Keshav Kini <keshav.k...@gmail.com> wrote:
> Robert Bradshaw <rober...@math.washington.edu> writes:
>> On Sun, Mar 4, 2012 at 5:26 AM, Keshav Kini <keshav.k...@gmail.com> wrote:
>>> Robert Bradshaw <rober...@math.washington.edu> writes:
>>>> On Fri, Mar 2, 2012 at 5:35 AM, Keshav Kini <keshav.k...@gmail.com> wrote:
>>>>> I would actually like the patchbot to NOT do continuous builds and
>>>>> tests, once we move to a push/pull system. There should be a big button
>>>>> on each ticket which says "Test Me!", which will cause the patchbot to
>>>>> fetch whatever branch is specified on the ticket (in some "branch"
>>>>> field) and put the pair "(ticket, commit-id)" into a queue. (The
>>>>> patchbot wouldn't actually test commit-id, but would attempt to
>>>>> temporarily merge commit-id into master, and then test the resulting
>>>>> commit or return a failure to automatically merge / report that the
>>>>> branch needed merging / rebasing.)
>>>>
>>>> I think that each patchbot could, according to its configuration,
>>>> periodically pull a newer version of master (and run tests against
>>>> that to isolate faults before trying to apply tickets). This is
>>>> essentially what we do now, but "master" is whatever sage version (or
>>>> alpha) you're running and doesn't change. (This also bleeds into the
>>>> discussion about being able to upgrade sage and all its dependencies
>>>> by syncing a single repository...)
>>>>
>>>>> One reason for this: once we switch to a push/pull system, commits will
>>>>> hopefully be a lot more frequent, and I question whether we would even
>>>>> want the patchbot to test each and every commit over the whole doctest
>>>>> suite.
>>>>
>>>> Setting a ticket to "needs review" is basically this button, I don't
>>>> think we need a separate one.
>>>
>>> The difference is that tickets do not automatically get set back to
>>> "doesn't need review" when you push new commits,
>>
>> Nor should it, if this is still the correct state (which it often is).
>
> Of course, but... well, see below.
>
>>> nor does the patchbot
>>> get notified, necessarily, when you push new commits.
>>
>> But there's no reason it couldn't.
>>
>>> This should fundamentally be a "request action" type of thing, not "set 
>>> status" type
>>> of thing, IMO.
>>
>> Can you think of any case where you would want to change the status to
>> "needs review" and not activate the patchbot?
>
> No, but I *can* think of cases where I would want to activate the
> patchbot and not change the status to "needs review" - for example, at
> some of the times when I have pushed new commits to a branch which I've
> already marked as "needs review". This will no doubt be a common
> practice, just as it is common to push more commits to open pull
> requests in github's workflow, even if nobody has indicated they don't
> like the current commits.

In which case the patchbot will still be triggered due to needs review
+ out of date tests.

>>>> We wouldn't test "every commit," it's
>>>> the tips of what gets pushed (or, possibly, when the master progresses
>>>> forward enough).
>>>
>>> I don't want pushing my commits to lead to side-effects. People should
>>> be encouraged to push their commits somewhere public as soon as possible
>>> so people can see what they are doing and collaborate.
>>
>> I agree, which is fine as long as the patchbot is side effect free
>> (other than providing additional information, perhaps even in an
>> (easily ignored, but usually useful) email for failures).
>
> Well, I was considering the computation time required for a doctest
> suite runthrough as a "side effect". But we truly have as much of a glut
> of CPU cycles as you say... :) And again we can make these automatic
> runs have lower priority anyway.
>
>>> I would want to avoid automatic doctests marking anything as "failing",
>>> though. The current red/green/yellow status should be based on the last
>>> manually-requested doctest, not the last doctest. Perhaps green and red
>>> for "last manually requested doctest passed" and "last manually
>>> requested doctest failed", respectively, with an overlaid question mark
>>> if the branch set on the ticket is not currently on the commit which was
>>> last manually tested.
>>
>> I can't think of any case that the results of the last manually
>> requested run would be preferable to a more recent automatically
>> triggered result.
>
> Here's what I had in mind: I push a commit. It works! The patchbot gives
> its OK to my branch. I push another commit. Oops, I broke it. I realize
> this soon thereafter, and begin working on a fix. Meanwhile, the
> patchbot sees my broken commit and tests it. When the tests fail, my
> branch is marked as broken. I finally finish fixing the problem, and
> push my fix, but now the patchbot happens to be overloaded and my new
> branch head is stuck at the end of a long testing queue. My branch is
> continues to be marked broken. Everyone is ignoring my ticket even
> though it is ready for review! Even if the ticket displays something
> like "test result out of date", a good test result that's out of date
> inspires more confidence than a bad test result that's out of date, and
> would have attracted more reviewers. Oh, how I wish I could have stopped
> that automatic test of my broken commit!
>
> ... OK, I can see my scenario is not exactly a big deal, now that I
> write it out like that...

:). In this case you quickly fire up/tweek your own patchbot client
with an absurdity high priority to test that one ticket. In any case,
better than a good test result on a bad branch.

> By the way, if tickets instead just display "pending" whenever their
> tests are out of date, without disclosing what the latest (now
> out-of-date) result was, it seems possible that patchbot results will
> become hidden by a "pending" mark much or most of the time, especially
> if I commit faster than the patchbot can test my commits. This makes the
> indicator much less useful, so I assume it will not be set up that way.

Yeah, I agree it would be useful to have some kind of qualified "the
last iteration of this branch passed/failed" status when it becomes
out of date due to new commits. Generally peoples workflow seems to be
commit, commit, commit, push, [lots of time passes], commit, commit,
push [more time passes.

- Robert

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to