You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@couchdb.apache.org by Joan Touzet <wo...@apache.org> on 2017/08/16 06:46:34 UTC

[DISCUSSION] Disallow all merges of PRs to master that cause tests to fail

Hi committers,

I'd like to propose a change to our policy on version control, namely
that no check-ins be allowed on the master branch unless CI test runs
against that PR are clean.

We've worked hard as a group to get runs clean. We need to protect
that achievement and investment in our test suite. That means not
letting rogue check-ins slip by because we are ignoring a red X in
GitHub (GH) from the Travis run.

Things I see as exceptions:
* Changes to things clearly not related to the test suite, i.e.
  documentation, support scripts, rel/overlay/etc/ files, etc.
* Changes already agreed upon in a previous PR/discussion for
  administrative tasks

Interesting situation right now for a discussion: Garren has a PR up[1]
that enables the mango tests to be part of the standard Travis/Jenkins
runs. Unfortunately, it doesn't pass on one of our platforms right now
and that needs investigation. Should we allow the PR to land and fix
the problems in master, or should the PR hold-up until it can land along
with the fixes for the failing mango tests? I can see both sides of this
argument.

It may or may not be possible for our GH setup to actually prevent such
checkins (the Apache GH setup is somewhat restricted, and various things
like commit hooks and webhooks have to be configured by INFRA, not us).

I'd like to further discuss whether people feel such a hook would be
acceptable, onerous or otherwise. Personally, I worry that such a setup
might prevent us from checking in some of the exceptions above, but if
there is a way around it, we could proceed down that path.

What do you think, sirs?[2]
Joan


[1]: https://github.com/apache/couchdb/pull/753
[2]: It's a Mystery Science Theatre 3000 Joel reference. :)

Re: [DISCUSSION] Disallow all merges of PRs to master that cause tests to fail

Posted by Nick North <no...@gmail.com>.
+1. Having put all the effort in to to get to a clean test suite, it would
be a great shame to let it slip. The effort to remain clean is much less
than the effort to get to that state in the first place: failing tests are
easier to fix when they first occur and everything is fresh in the author's
mind, than they are 6 months later. If you can't merge to master until the
tests are clean, there is a much greater incentive to take the high road
and fix problems immediately.

As a second point: if you come to an interesting Open Source project you've
never seen before, then a failing build or failing test suite is a good
reason to reject it without further thought. Cleanliness at that level is
an indication of a well-functioning and professional community, whose
software is worthy of further consideration.

Nick

On Wed, 16 Aug 2017 at 08:43 Dale Harvey <da...@arandomurl.com> wrote:

> +1, have found this useful / necessary with PouchDB over the years
>
> Describing our workflow as it may be useful (its also very similiar to
> mozillas). We have Tier 1
> supported platform, node stable, stable releases of browsers etc a checkin
> is not allowed to make
> those go red, if something lands that makes them red it gets immediately
> reverted
>
> Tier 2 systems, like CouchDB 2.0 for the period it was under development.
> We take a best effort
> at keeping it green but it doesnt prevent patches from landing. If it goes
> red it is someones job to get
> it green, if it stays red for a long period of time it becomes unsupported.
> (We are still in the process of moving
> couch2 to tier1)
>
> This allows us to stay pretty stable while not be too restrictive for
> building new features / supporting new
> platforms. The important thing however is the zero policy rule on Tier 1,
> once there is any reason for
> people to ignore failing tests they decay super quickly and it gets very
> hard to bring them back, for a while
> we had the policy of fixing things in master but there are always
> complications, backing out, fixing the tests
> and relanding is far more reliable
>
> On 16 August 2017 at 07:46, Joan Touzet <wo...@apache.org> wrote:
>
> > Hi committers,
> >
> > I'd like to propose a change to our policy on version control, namely
> > that no check-ins be allowed on the master branch unless CI test runs
> > against that PR are clean.
> >
> > We've worked hard as a group to get runs clean. We need to protect
> > that achievement and investment in our test suite. That means not
> > letting rogue check-ins slip by because we are ignoring a red X in
> > GitHub (GH) from the Travis run.
> >
> > Things I see as exceptions:
> > * Changes to things clearly not related to the test suite, i.e.
> >   documentation, support scripts, rel/overlay/etc/ files, etc.
> > * Changes already agreed upon in a previous PR/discussion for
> >   administrative tasks
> >
> > Interesting situation right now for a discussion: Garren has a PR up[1]
> > that enables the mango tests to be part of the standard Travis/Jenkins
> > runs. Unfortunately, it doesn't pass on one of our platforms right now
> > and that needs investigation. Should we allow the PR to land and fix
> > the problems in master, or should the PR hold-up until it can land along
> > with the fixes for the failing mango tests? I can see both sides of this
> > argument.
> >
> > It may or may not be possible for our GH setup to actually prevent such
> > checkins (the Apache GH setup is somewhat restricted, and various things
> > like commit hooks and webhooks have to be configured by INFRA, not us).
> >
> > I'd like to further discuss whether people feel such a hook would be
> > acceptable, onerous or otherwise. Personally, I worry that such a setup
> > might prevent us from checking in some of the exceptions above, but if
> > there is a way around it, we could proceed down that path.
> >
> > What do you think, sirs?[2]
> > Joan
> >
> >
> > [1]: https://github.com/apache/couchdb/pull/753
> > [2]: It's a Mystery Science Theatre 3000 Joel reference. :)
> >
>

Re: [DISCUSSION] Disallow all merges of PRs to master that cause tests to fail

Posted by Dale Harvey <da...@arandomurl.com>.
+1, have found this useful / necessary with PouchDB over the years

Describing our workflow as it may be useful (its also very similiar to
mozillas). We have Tier 1
supported platform, node stable, stable releases of browsers etc a checkin
is not allowed to make
those go red, if something lands that makes them red it gets immediately
reverted

Tier 2 systems, like CouchDB 2.0 for the period it was under development.
We take a best effort
at keeping it green but it doesnt prevent patches from landing. If it goes
red it is someones job to get
it green, if it stays red for a long period of time it becomes unsupported.
(We are still in the process of moving
couch2 to tier1)

This allows us to stay pretty stable while not be too restrictive for
building new features / supporting new
platforms. The important thing however is the zero policy rule on Tier 1,
once there is any reason for
people to ignore failing tests they decay super quickly and it gets very
hard to bring them back, for a while
we had the policy of fixing things in master but there are always
complications, backing out, fixing the tests
and relanding is far more reliable

On 16 August 2017 at 07:46, Joan Touzet <wo...@apache.org> wrote:

> Hi committers,
>
> I'd like to propose a change to our policy on version control, namely
> that no check-ins be allowed on the master branch unless CI test runs
> against that PR are clean.
>
> We've worked hard as a group to get runs clean. We need to protect
> that achievement and investment in our test suite. That means not
> letting rogue check-ins slip by because we are ignoring a red X in
> GitHub (GH) from the Travis run.
>
> Things I see as exceptions:
> * Changes to things clearly not related to the test suite, i.e.
>   documentation, support scripts, rel/overlay/etc/ files, etc.
> * Changes already agreed upon in a previous PR/discussion for
>   administrative tasks
>
> Interesting situation right now for a discussion: Garren has a PR up[1]
> that enables the mango tests to be part of the standard Travis/Jenkins
> runs. Unfortunately, it doesn't pass on one of our platforms right now
> and that needs investigation. Should we allow the PR to land and fix
> the problems in master, or should the PR hold-up until it can land along
> with the fixes for the failing mango tests? I can see both sides of this
> argument.
>
> It may or may not be possible for our GH setup to actually prevent such
> checkins (the Apache GH setup is somewhat restricted, and various things
> like commit hooks and webhooks have to be configured by INFRA, not us).
>
> I'd like to further discuss whether people feel such a hook would be
> acceptable, onerous or otherwise. Personally, I worry that such a setup
> might prevent us from checking in some of the exceptions above, but if
> there is a way around it, we could proceed down that path.
>
> What do you think, sirs?[2]
> Joan
>
>
> [1]: https://github.com/apache/couchdb/pull/753
> [2]: It's a Mystery Science Theatre 3000 Joel reference. :)
>

Re: [DISCUSSION] Disallow all merges of PRs to master that cause tests to fail

Posted by Robert Samuel Newson <rn...@apache.org>.
+1

> On 16 Aug 2017, at 15:55, Paul Davis <pa...@gmail.com> wrote:
> 
> On Wed, Aug 16, 2017 at 1:46 AM, Joan Touzet <wo...@apache.org> wrote:
>> Hi committers,
>> 
>> I'd like to propose a change to our policy on version control, namely
>> that no check-ins be allowed on the master branch unless CI test runs
>> against that PR are clean.
>> 
>> We've worked hard as a group to get runs clean. We need to protect
>> that achievement and investment in our test suite. That means not
>> letting rogue check-ins slip by because we are ignoring a red X in
>> GitHub (GH) from the Travis run.
>> 
>> Things I see as exceptions:
>> * Changes to things clearly not related to the test suite, i.e.
>>  documentation, support scripts, rel/overlay/etc/ files, etc.
>> * Changes already agreed upon in a previous PR/discussion for
>>  administrative tasks
>> 
> 
> I'd be +1 for requiring a clean Travis-CI run before something can be
> merged. I'm pretty sure we can configure that easily enough (via INFRA
> as you mention). However I'd make that absolutely no exceptions. I'd
> also disable commits directly to master not coming through PR so that
> it can't be bypassed. This is especially important for when merge PRs
> to dependencies we'd need to require the rebar.config.script update to
> PR'ed so it goes through CI.
> 
>> Interesting situation right now for a discussion: Garren has a PR up[1]
>> that enables the mango tests to be part of the standard Travis/Jenkins
>> runs. Unfortunately, it doesn't pass on one of our platforms right now
>> and that needs investigation. Should we allow the PR to land and fix
>> the problems in master, or should the PR hold-up until it can land along
>> with the fixes for the failing mango tests? I can see both sides of this
>> argument.
>> 
>> It may or may not be possible for our GH setup to actually prevent such
>> checkins (the Apache GH setup is somewhat restricted, and various things
>> like commit hooks and webhooks have to be configured by INFRA, not us).
>> 
>> I'd like to further discuss whether people feel such a hook would be
>> acceptable, onerous or otherwise. Personally, I worry that such a setup
>> might prevent us from checking in some of the exceptions above, but if
>> there is a way around it, we could proceed down that path.
>> 
> 
> I don't think we should entertain any gray area as it muddies the
> waters. I'd say we either make it 100% or leave it in the current
> state of "best effort" which is what I believe your current example
> falls into which is the status quo.
> 
>> What do you think, sirs?[2]
>> Joan
>> 
>> 
>> [1]: https://github.com/apache/couchdb/pull/753
>> [2]: It's a Mystery Science Theatre 3000 Joel reference. :)


Re: [DISCUSSION] Disallow all merges of PRs to master that cause tests to fail

Posted by Paul Davis <pa...@gmail.com>.
On Wed, Aug 16, 2017 at 1:46 AM, Joan Touzet <wo...@apache.org> wrote:
> Hi committers,
>
> I'd like to propose a change to our policy on version control, namely
> that no check-ins be allowed on the master branch unless CI test runs
> against that PR are clean.
>
> We've worked hard as a group to get runs clean. We need to protect
> that achievement and investment in our test suite. That means not
> letting rogue check-ins slip by because we are ignoring a red X in
> GitHub (GH) from the Travis run.
>
> Things I see as exceptions:
> * Changes to things clearly not related to the test suite, i.e.
>   documentation, support scripts, rel/overlay/etc/ files, etc.
> * Changes already agreed upon in a previous PR/discussion for
>   administrative tasks
>

I'd be +1 for requiring a clean Travis-CI run before something can be
merged. I'm pretty sure we can configure that easily enough (via INFRA
as you mention). However I'd make that absolutely no exceptions. I'd
also disable commits directly to master not coming through PR so that
it can't be bypassed. This is especially important for when merge PRs
to dependencies we'd need to require the rebar.config.script update to
PR'ed so it goes through CI.

> Interesting situation right now for a discussion: Garren has a PR up[1]
> that enables the mango tests to be part of the standard Travis/Jenkins
> runs. Unfortunately, it doesn't pass on one of our platforms right now
> and that needs investigation. Should we allow the PR to land and fix
> the problems in master, or should the PR hold-up until it can land along
> with the fixes for the failing mango tests? I can see both sides of this
> argument.
>
> It may or may not be possible for our GH setup to actually prevent such
> checkins (the Apache GH setup is somewhat restricted, and various things
> like commit hooks and webhooks have to be configured by INFRA, not us).
>
> I'd like to further discuss whether people feel such a hook would be
> acceptable, onerous or otherwise. Personally, I worry that such a setup
> might prevent us from checking in some of the exceptions above, but if
> there is a way around it, we could proceed down that path.
>

I don't think we should entertain any gray area as it muddies the
waters. I'd say we either make it 100% or leave it in the current
state of "best effort" which is what I believe your current example
falls into which is the status quo.

> What do you think, sirs?[2]
> Joan
>
>
> [1]: https://github.com/apache/couchdb/pull/753
> [2]: It's a Mystery Science Theatre 3000 Joel reference. :)

Re: [DISCUSSION] Disallow all merges of PRs to master that cause tests to fail

Posted by Andy Wenk <an...@apache.org>.
very late here but I am strongly +1. Here at sum.cumo we do not allow pushes to master directly and PR’s are only merged, when the feature branch is marked green by our CI. This improved the code quality massively and makes all developers life easier, when one is deploying to production.

All the best

Andy

-- 
Andy Wenk
Hamburg - Germany
RockIt!

GPG public key: 
http://pgp.mit.edu/pks/lookup?op=get&search=0x45D3565377F93D29



> On 17. Aug 2017, at 00:49, Joan Touzet <wo...@apache.org> wrote:
> 
> Seems there is general consensus.
> 
> Now, how do people feel about me asking Infra to make this change to the
> main repos (couchdb, couchdb-fauxton, etc.):
> 
> https://help.github.com/assets/images/help/repository/protecting-branch-loose-status.png
> 
> Specifically:
> 
>  Protect master branch (and any release branches like 2.1.x)
>  Require status checks to pass before merging
>  Require branches be up to date before merging
> 
> We can have an optional secondary discussion around enforcing:
> 
>  Require pull request reviews before merging
> 
> This would enforce our RTC model, but we *need* more active devs if this
> is going to pass. I've had to beg multiple times for many of my PRs in
> the 2.1.0 release cycle to be approved...even trivial documentation
> changes. It was very frustrating.
> 
> -Joan
> 
> ----- Original Message -----
> From: "Nick Vatamaniuc" <va...@gmail.com>
> To: dev@couchdb.apache.org
> Sent: Wednesday, 16 August, 2017 6:01:34 PM
> Subject: Re: [DISCUSSION] Disallow all merges of PRs to master that cause tests to fail
> 
> +1
> 
> On Aug 16, 2017 15:50, "Alexander Shorin" <kx...@gmail.com> wrote:
> 
>> It's strange to say something else than +1 or question the topic in any
>> way.
>> 
>> Good call, Joan!
>> --
>> ,,,^..^,,,
>> 
>> 
>> On Wed, Aug 16, 2017 at 6:46 AM, Joan Touzet <wo...@apache.org> wrote:
>>> Hi committers,
>>> 
>>> I'd like to propose a change to our policy on version control, namely
>>> that no check-ins be allowed on the master branch unless CI test runs
>>> against that PR are clean.
>>> 
>>> We've worked hard as a group to get runs clean. We need to protect
>>> that achievement and investment in our test suite. That means not
>>> letting rogue check-ins slip by because we are ignoring a red X in
>>> GitHub (GH) from the Travis run.
>>> 
>>> Things I see as exceptions:
>>> * Changes to things clearly not related to the test suite, i.e.
>>>  documentation, support scripts, rel/overlay/etc/ files, etc.
>>> * Changes already agreed upon in a previous PR/discussion for
>>>  administrative tasks
>>> 
>>> Interesting situation right now for a discussion: Garren has a PR up[1]
>>> that enables the mango tests to be part of the standard Travis/Jenkins
>>> runs. Unfortunately, it doesn't pass on one of our platforms right now
>>> and that needs investigation. Should we allow the PR to land and fix
>>> the problems in master, or should the PR hold-up until it can land along
>>> with the fixes for the failing mango tests? I can see both sides of this
>>> argument.
>>> 
>>> It may or may not be possible for our GH setup to actually prevent such
>>> checkins (the Apache GH setup is somewhat restricted, and various things
>>> like commit hooks and webhooks have to be configured by INFRA, not us).
>>> 
>>> I'd like to further discuss whether people feel such a hook would be
>>> acceptable, onerous or otherwise. Personally, I worry that such a setup
>>> might prevent us from checking in some of the exceptions above, but if
>>> there is a way around it, we could proceed down that path.
>>> 
>>> What do you think, sirs?[2]
>>> Joan
>>> 
>>> 
>>> [1]: https://github.com/apache/couchdb/pull/753
>>> [2]: It's a Mystery Science Theatre 3000 Joel reference. :)
>> 


Re: [DISCUSSION] Disallow all merges of PRs to master that cause tests to fail

Posted by Paul Davis <pa...@gmail.com>.
Yeah, +1 to +1'ing your own PR when its trivial. Minor annoyance but
its a paper trail of sorts anyway.

On Fri, Aug 18, 2017 at 10:55 AM, Joan Touzet <wo...@apache.org> wrote:
> I didn't realize you could review your own PR. That gives us the "escape
> hatch" that we need.
>
> -Joan
>
> ----- Original Message -----
> From: "Nick North" <no...@gmail.com>
> To: dev@couchdb.apache.org, "Joan Touzet" <wo...@apache.org>
> Sent: Friday, 18 August, 2017 9:48:40 AM
> Subject: Re: [DISCUSSION] Disallow all merges of PRs to master that cause tests to fail
>
>
> This is pretty much the set of restrictions we have on the master branch in my organisation, and it works well. We also require PR reviews before merging, but anyone in the team can do the review, including the PR author. This means the author has to make a conscious decision on whether the changes are trivial enough to sign off themselves, or whether someone else should review them, and there's an audit trail of that decision being made.
>
>
> Nick
>
>
>
> On Wed, 16 Aug 2017 at 23:49 Joan Touzet < wohali@apache.org > wrote:
>
>
> Seems there is general consensus.
>
> Now, how do people feel about me asking Infra to make this change to the
> main repos (couchdb, couchdb-fauxton, etc.):
>
> https://help.github.com/assets/images/help/repository/protecting-branch-loose-status.png
>
> Specifically:
>
> Protect master branch (and any release branches like 2.1.x)
> Require status checks to pass before merging
> Require branches be up to date before merging
>
> We can have an optional secondary discussion around enforcing:
>
> Require pull request reviews before merging
>
> This would enforce our RTC model, but we *need* more active devs if this
> is going to pass. I've had to beg multiple times for many of my PRs in
> the 2.1.0 release cycle to be approved...even trivial documentation
> changes. It was very frustrating.
>
> -Joan
>
> ----- Original Message -----
> From: "Nick Vatamaniuc" < vatamane@gmail.com >
> To: dev@couchdb.apache.org
> Sent: Wednesday, 16 August, 2017 6:01:34 PM
> Subject: Re: [DISCUSSION] Disallow all merges of PRs to master that cause tests to fail
>
> +1
>
> On Aug 16, 2017 15:50, "Alexander Shorin" < kxepal@gmail.com > wrote:
>
>> It's strange to say something else than +1 or question the topic in any
>> way.
>>
>> Good call, Joan!
>> --
>> ,,,^..^,,,
>>
>>
>> On Wed, Aug 16, 2017 at 6:46 AM, Joan Touzet < wohali@apache.org > wrote:
>> > Hi committers,
>> >
>> > I'd like to propose a change to our policy on version control, namely
>> > that no check-ins be allowed on the master branch unless CI test runs
>> > against that PR are clean.
>> >
>> > We've worked hard as a group to get runs clean. We need to protect
>> > that achievement and investment in our test suite. That means not
>> > letting rogue check-ins slip by because we are ignoring a red X in
>> > GitHub (GH) from the Travis run.
>> >
>> > Things I see as exceptions:
>> > * Changes to things clearly not related to the test suite, i.e.
>> > documentation, support scripts, rel/overlay/etc/ files, etc.
>> > * Changes already agreed upon in a previous PR/discussion for
>> > administrative tasks
>> >
>> > Interesting situation right now for a discussion: Garren has a PR up[1]
>> > that enables the mango tests to be part of the standard Travis/Jenkins
>> > runs. Unfortunately, it doesn't pass on one of our platforms right now
>> > and that needs investigation. Should we allow the PR to land and fix
>> > the problems in master, or should the PR hold-up until it can land along
>> > with the fixes for the failing mango tests? I can see both sides of this
>> > argument.
>> >
>> > It may or may not be possible for our GH setup to actually prevent such
>> > checkins (the Apache GH setup is somewhat restricted, and various things
>> > like commit hooks and webhooks have to be configured by INFRA, not us).
>> >
>> > I'd like to further discuss whether people feel such a hook would be
>> > acceptable, onerous or otherwise. Personally, I worry that such a setup
>> > might prevent us from checking in some of the exceptions above, but if
>> > there is a way around it, we could proceed down that path.
>> >
>> > What do you think, sirs?[2]
>> > Joan
>> >
>> >
>> > [1]: https://github.com/apache/couchdb/pull/753
>> > [2]: It's a Mystery Science Theatre 3000 Joel reference. :)
>>

Re: [PROPOSAL] Disallow all merges of PRs to master that cause tests to fail

Posted by Joan Touzet <wo...@apache.org>.
This ticket is now fixed. You should not be able to merge to master 
or any #.#.# branch if the tests are not passing now, and your
branch is not up to date with the latest changes from master.

If anyone finds different, please let me know.

-Joan

----- Original Message -----
From: "Joan Touzet" <wo...@apache.org>
To: dev@couchdb.apache.org
Sent: Wednesday, 30 August, 2017 5:37:47 PM
Subject: Re: [PROPOSAL] Disallow all merges of PRs to master that cause tests to fail

I have requested INFRA take the steps as outlined in this ticket:

https://issues.apache.org/jira/browse/INFRA-14991

-Joan

----- Original Message -----
From: "Nick North" <no...@gmail.com>
To: dev@couchdb.apache.org, "Joan Touzet" <wo...@apache.org>
Sent: Friday, 18 August, 2017 4:48:48 PM
Subject: Re: [PROPOSAL] Disallow all merges of PRs to master that cause tests to fail


Sorry to raise false hopes. I'm +1 on the proposal. 


Nick 


On Fri, 18 Aug 2017 at 19:05 Joan Touzet < wohali@apache.org > wrote: 


Nope, GitHub doesn't allow this - I just tried. 

So my proposal at present remains: 

> https://help.github.com/assets/images/help/repository/protecting-branch-loose-status.png 
> 
> Specifically: 
> 
> Protect master branch (and any release branches like 2.1.x) 
> Require status checks to pass before merging 
> Require branches be up to date before merging 

since this does not mandate 2 humans to get changes onto master. 

We can ratchet things down farther when our committer base gets more 
active in reviewing PRs with the "Require pull request reviews before 
merging" setting. 

If there are no objections raised over the weekend, I will file the 
INFRA ticket to have these settings changed on our primary repos 
where Travis CI is enabled: 

couchdb 
couchdb-fauxton 
couchdb-documentation 
couchdb-nano 
couchdb-docker 

I will be explicitly leaving out couchdb-pkg, since CI doesn't (yet) 
make sense for it. 

-Joan 

----- Original Message ----- 
From: "Nick North" < north.n@gmail.com > 
To: "Joan Touzet" < wohali@apache.org > 
Cc: dev@couchdb.apache.org 
Sent: Friday, 18 August, 2017 12:42:19 PM 
Subject: Re: [DISCUSSION] Disallow all merges of PRs to master that cause tests to fail 

I'm not sure if you can on GitHub, so that would need checking. We're using the Microsoft TFS Git system, for historical reasons. 

Nick 

> On 18 Aug 2017, at 16:55, Joan Touzet < wohali@apache.org > wrote: 
> 
> I didn't realize you could review your own PR. That gives us the "escape 
> hatch" that we need. 
> 
> -Joan 
> 
> ----- Original Message ----- 
> From: "Nick North" < north.n@gmail.com > 
> To: dev@couchdb.apache.org , "Joan Touzet" < wohali@apache.org > 
> Sent: Friday, 18 August, 2017 9:48:40 AM 
> Subject: Re: [DISCUSSION] Disallow all merges of PRs to master that cause tests to fail 
> 
> 
> This is pretty much the set of restrictions we have on the master branch in my organisation, and it works well. We also require PR reviews before merging, but anyone in the team can do the review, including the PR author. This means the author has to make a conscious decision on whether the changes are trivial enough to sign off themselves, or whether someone else should review them, and there's an audit trail of that decision being made. 
> 
> 
> Nick 
> 
> 
> 
> On Wed, 16 Aug 2017 at 23:49 Joan Touzet < wohali@apache.org > wrote: 
> 
> 
> Seems there is general consensus. 
> 
> Now, how do people feel about me asking Infra to make this change to the 
> main repos (couchdb, couchdb-fauxton, etc.): 
> 
> https://help.github.com/assets/images/help/repository/protecting-branch-loose-status.png 
> 
> Specifically: 
> 
> Protect master branch (and any release branches like 2.1.x) 
> Require status checks to pass before merging 
> Require branches be up to date before merging 
> 
> We can have an optional secondary discussion around enforcing: 
> 
> Require pull request reviews before merging 
> 
> This would enforce our RTC model, but we *need* more active devs if this 
> is going to pass. I've had to beg multiple times for many of my PRs in 
> the 2.1.0 release cycle to be approved...even trivial documentation 
> changes. It was very frustrating. 
> 
> -Joan 
> 
> ----- Original Message ----- 
> From: "Nick Vatamaniuc" < vatamane@gmail.com > 
> To: dev@couchdb.apache.org 
> Sent: Wednesday, 16 August, 2017 6:01:34 PM 
> Subject: Re: [DISCUSSION] Disallow all merges of PRs to master that cause tests to fail 
> 
> +1 
> 
>> On Aug 16, 2017 15:50, "Alexander Shorin" < kxepal@gmail.com > wrote: 
>> 
>> It's strange to say something else than +1 or question the topic in any 
>> way. 
>> 
>> Good call, Joan! 
>> -- 
>> ,,,^..^,,, 
>> 
>> 
>>> On Wed, Aug 16, 2017 at 6:46 AM, Joan Touzet < wohali@apache.org > wrote: 
>>> Hi committers, 
>>> 
>>> I'd like to propose a change to our policy on version control, namely 
>>> that no check-ins be allowed on the master branch unless CI test runs 
>>> against that PR are clean. 
>>> 
>>> We've worked hard as a group to get runs clean. We need to protect 
>>> that achievement and investment in our test suite. That means not 
>>> letting rogue check-ins slip by because we are ignoring a red X in 
>>> GitHub (GH) from the Travis run. 
>>> 
>>> Things I see as exceptions: 
>>> * Changes to things clearly not related to the test suite, i.e. 
>>> documentation, support scripts, rel/overlay/etc/ files, etc. 
>>> * Changes already agreed upon in a previous PR/discussion for 
>>> administrative tasks 
>>> 
>>> Interesting situation right now for a discussion: Garren has a PR up[1] 
>>> that enables the mango tests to be part of the standard Travis/Jenkins 
>>> runs. Unfortunately, it doesn't pass on one of our platforms right now 
>>> and that needs investigation. Should we allow the PR to land and fix 
>>> the problems in master, or should the PR hold-up until it can land along 
>>> with the fixes for the failing mango tests? I can see both sides of this 
>>> argument. 
>>> 
>>> It may or may not be possible for our GH setup to actually prevent such 
>>> checkins (the Apache GH setup is somewhat restricted, and various things 
>>> like commit hooks and webhooks have to be configured by INFRA, not us). 
>>> 
>>> I'd like to further discuss whether people feel such a hook would be 
>>> acceptable, onerous or otherwise. Personally, I worry that such a setup 
>>> might prevent us from checking in some of the exceptions above, but if 
>>> there is a way around it, we could proceed down that path. 
>>> 
>>> What do you think, sirs?[2] 
>>> Joan 
>>> 
>>> 
>>> [1]: https://github.com/apache/couchdb/pull/753 
>>> [2]: It's a Mystery Science Theatre 3000 Joel reference. :) 
>> 

Re: [PROPOSAL] Disallow all merges of PRs to master that cause tests to fail

Posted by Joan Touzet <wo...@apache.org>.
I have requested INFRA take the steps as outlined in this ticket:

https://issues.apache.org/jira/browse/INFRA-14991

-Joan

----- Original Message -----
From: "Nick North" <no...@gmail.com>
To: dev@couchdb.apache.org, "Joan Touzet" <wo...@apache.org>
Sent: Friday, 18 August, 2017 4:48:48 PM
Subject: Re: [PROPOSAL] Disallow all merges of PRs to master that cause tests to fail


Sorry to raise false hopes. I'm +1 on the proposal. 


Nick 


On Fri, 18 Aug 2017 at 19:05 Joan Touzet < wohali@apache.org > wrote: 


Nope, GitHub doesn't allow this - I just tried. 

So my proposal at present remains: 

> https://help.github.com/assets/images/help/repository/protecting-branch-loose-status.png 
> 
> Specifically: 
> 
> Protect master branch (and any release branches like 2.1.x) 
> Require status checks to pass before merging 
> Require branches be up to date before merging 

since this does not mandate 2 humans to get changes onto master. 

We can ratchet things down farther when our committer base gets more 
active in reviewing PRs with the "Require pull request reviews before 
merging" setting. 

If there are no objections raised over the weekend, I will file the 
INFRA ticket to have these settings changed on our primary repos 
where Travis CI is enabled: 

couchdb 
couchdb-fauxton 
couchdb-documentation 
couchdb-nano 
couchdb-docker 

I will be explicitly leaving out couchdb-pkg, since CI doesn't (yet) 
make sense for it. 

-Joan 

----- Original Message ----- 
From: "Nick North" < north.n@gmail.com > 
To: "Joan Touzet" < wohali@apache.org > 
Cc: dev@couchdb.apache.org 
Sent: Friday, 18 August, 2017 12:42:19 PM 
Subject: Re: [DISCUSSION] Disallow all merges of PRs to master that cause tests to fail 

I'm not sure if you can on GitHub, so that would need checking. We're using the Microsoft TFS Git system, for historical reasons. 

Nick 

> On 18 Aug 2017, at 16:55, Joan Touzet < wohali@apache.org > wrote: 
> 
> I didn't realize you could review your own PR. That gives us the "escape 
> hatch" that we need. 
> 
> -Joan 
> 
> ----- Original Message ----- 
> From: "Nick North" < north.n@gmail.com > 
> To: dev@couchdb.apache.org , "Joan Touzet" < wohali@apache.org > 
> Sent: Friday, 18 August, 2017 9:48:40 AM 
> Subject: Re: [DISCUSSION] Disallow all merges of PRs to master that cause tests to fail 
> 
> 
> This is pretty much the set of restrictions we have on the master branch in my organisation, and it works well. We also require PR reviews before merging, but anyone in the team can do the review, including the PR author. This means the author has to make a conscious decision on whether the changes are trivial enough to sign off themselves, or whether someone else should review them, and there's an audit trail of that decision being made. 
> 
> 
> Nick 
> 
> 
> 
> On Wed, 16 Aug 2017 at 23:49 Joan Touzet < wohali@apache.org > wrote: 
> 
> 
> Seems there is general consensus. 
> 
> Now, how do people feel about me asking Infra to make this change to the 
> main repos (couchdb, couchdb-fauxton, etc.): 
> 
> https://help.github.com/assets/images/help/repository/protecting-branch-loose-status.png 
> 
> Specifically: 
> 
> Protect master branch (and any release branches like 2.1.x) 
> Require status checks to pass before merging 
> Require branches be up to date before merging 
> 
> We can have an optional secondary discussion around enforcing: 
> 
> Require pull request reviews before merging 
> 
> This would enforce our RTC model, but we *need* more active devs if this 
> is going to pass. I've had to beg multiple times for many of my PRs in 
> the 2.1.0 release cycle to be approved...even trivial documentation 
> changes. It was very frustrating. 
> 
> -Joan 
> 
> ----- Original Message ----- 
> From: "Nick Vatamaniuc" < vatamane@gmail.com > 
> To: dev@couchdb.apache.org 
> Sent: Wednesday, 16 August, 2017 6:01:34 PM 
> Subject: Re: [DISCUSSION] Disallow all merges of PRs to master that cause tests to fail 
> 
> +1 
> 
>> On Aug 16, 2017 15:50, "Alexander Shorin" < kxepal@gmail.com > wrote: 
>> 
>> It's strange to say something else than +1 or question the topic in any 
>> way. 
>> 
>> Good call, Joan! 
>> -- 
>> ,,,^..^,,, 
>> 
>> 
>>> On Wed, Aug 16, 2017 at 6:46 AM, Joan Touzet < wohali@apache.org > wrote: 
>>> Hi committers, 
>>> 
>>> I'd like to propose a change to our policy on version control, namely 
>>> that no check-ins be allowed on the master branch unless CI test runs 
>>> against that PR are clean. 
>>> 
>>> We've worked hard as a group to get runs clean. We need to protect 
>>> that achievement and investment in our test suite. That means not 
>>> letting rogue check-ins slip by because we are ignoring a red X in 
>>> GitHub (GH) from the Travis run. 
>>> 
>>> Things I see as exceptions: 
>>> * Changes to things clearly not related to the test suite, i.e. 
>>> documentation, support scripts, rel/overlay/etc/ files, etc. 
>>> * Changes already agreed upon in a previous PR/discussion for 
>>> administrative tasks 
>>> 
>>> Interesting situation right now for a discussion: Garren has a PR up[1] 
>>> that enables the mango tests to be part of the standard Travis/Jenkins 
>>> runs. Unfortunately, it doesn't pass on one of our platforms right now 
>>> and that needs investigation. Should we allow the PR to land and fix 
>>> the problems in master, or should the PR hold-up until it can land along 
>>> with the fixes for the failing mango tests? I can see both sides of this 
>>> argument. 
>>> 
>>> It may or may not be possible for our GH setup to actually prevent such 
>>> checkins (the Apache GH setup is somewhat restricted, and various things 
>>> like commit hooks and webhooks have to be configured by INFRA, not us). 
>>> 
>>> I'd like to further discuss whether people feel such a hook would be 
>>> acceptable, onerous or otherwise. Personally, I worry that such a setup 
>>> might prevent us from checking in some of the exceptions above, but if 
>>> there is a way around it, we could proceed down that path. 
>>> 
>>> What do you think, sirs?[2] 
>>> Joan 
>>> 
>>> 
>>> [1]: https://github.com/apache/couchdb/pull/753 
>>> [2]: It's a Mystery Science Theatre 3000 Joel reference. :) 
>> 

Re: [PROPOSAL] Disallow all merges of PRs to master that cause tests to fail

Posted by Nick North <no...@gmail.com>.
Sorry to raise false hopes. I'm +1 on the proposal.

Nick

On Fri, 18 Aug 2017 at 19:05 Joan Touzet <wo...@apache.org> wrote:

> Nope, GitHub doesn't allow this - I just tried.
>
> So my proposal at present remains:
>
> >
> https://help.github.com/assets/images/help/repository/protecting-branch-loose-status.png
> >
> > Specifically:
> >
> > Protect master branch (and any release branches like 2.1.x)
> > Require status checks to pass before merging
> > Require branches be up to date before merging
>
> since this does not mandate 2 humans to get changes onto master.
>
> We can ratchet things down farther when our committer base gets more
> active in reviewing PRs with the "Require pull request reviews before
> merging" setting.
>
> If there are no objections raised over the weekend, I will file the
> INFRA ticket to have these settings changed on our primary repos
> where Travis CI is enabled:
>
> couchdb
> couchdb-fauxton
> couchdb-documentation
> couchdb-nano
> couchdb-docker
>
> I will be explicitly leaving out couchdb-pkg, since CI doesn't (yet)
> make sense for it.
>
> -Joan
>
> ----- Original Message -----
> From: "Nick North" <no...@gmail.com>
> To: "Joan Touzet" <wo...@apache.org>
> Cc: dev@couchdb.apache.org
> Sent: Friday, 18 August, 2017 12:42:19 PM
> Subject: Re: [DISCUSSION] Disallow all merges of PRs to master that cause
> tests to fail
>
> I'm not sure if you can on GitHub, so that would need checking. We're
> using the Microsoft TFS Git system, for historical reasons.
>
> Nick
>
> > On 18 Aug 2017, at 16:55, Joan Touzet <wo...@apache.org> wrote:
> >
> > I didn't realize you could review your own PR. That gives us the "escape
> > hatch" that we need.
> >
> > -Joan
> >
> > ----- Original Message -----
> > From: "Nick North" <no...@gmail.com>
> > To: dev@couchdb.apache.org, "Joan Touzet" <wo...@apache.org>
> > Sent: Friday, 18 August, 2017 9:48:40 AM
> > Subject: Re: [DISCUSSION] Disallow all merges of PRs to master that
> cause tests to fail
> >
> >
> > This is pretty much the set of restrictions we have on the master branch
> in my organisation, and it works well. We also require PR reviews before
> merging, but anyone in the team can do the review, including the PR author.
> This means the author has to make a conscious decision on whether the
> changes are trivial enough to sign off themselves, or whether someone else
> should review them, and there's an audit trail of that decision being made.
> >
> >
> > Nick
> >
> >
> >
> > On Wed, 16 Aug 2017 at 23:49 Joan Touzet < wohali@apache.org > wrote:
> >
> >
> > Seems there is general consensus.
> >
> > Now, how do people feel about me asking Infra to make this change to the
> > main repos (couchdb, couchdb-fauxton, etc.):
> >
> >
> https://help.github.com/assets/images/help/repository/protecting-branch-loose-status.png
> >
> > Specifically:
> >
> > Protect master branch (and any release branches like 2.1.x)
> > Require status checks to pass before merging
> > Require branches be up to date before merging
> >
> > We can have an optional secondary discussion around enforcing:
> >
> > Require pull request reviews before merging
> >
> > This would enforce our RTC model, but we *need* more active devs if this
> > is going to pass. I've had to beg multiple times for many of my PRs in
> > the 2.1.0 release cycle to be approved...even trivial documentation
> > changes. It was very frustrating.
> >
> > -Joan
> >
> > ----- Original Message -----
> > From: "Nick Vatamaniuc" < vatamane@gmail.com >
> > To: dev@couchdb.apache.org
> > Sent: Wednesday, 16 August, 2017 6:01:34 PM
> > Subject: Re: [DISCUSSION] Disallow all merges of PRs to master that
> cause tests to fail
> >
> > +1
> >
> >> On Aug 16, 2017 15:50, "Alexander Shorin" < kxepal@gmail.com > wrote:
> >>
> >> It's strange to say something else than +1 or question the topic in any
> >> way.
> >>
> >> Good call, Joan!
> >> --
> >> ,,,^..^,,,
> >>
> >>
> >>> On Wed, Aug 16, 2017 at 6:46 AM, Joan Touzet < wohali@apache.org >
> wrote:
> >>> Hi committers,
> >>>
> >>> I'd like to propose a change to our policy on version control, namely
> >>> that no check-ins be allowed on the master branch unless CI test runs
> >>> against that PR are clean.
> >>>
> >>> We've worked hard as a group to get runs clean. We need to protect
> >>> that achievement and investment in our test suite. That means not
> >>> letting rogue check-ins slip by because we are ignoring a red X in
> >>> GitHub (GH) from the Travis run.
> >>>
> >>> Things I see as exceptions:
> >>> * Changes to things clearly not related to the test suite, i.e.
> >>> documentation, support scripts, rel/overlay/etc/ files, etc.
> >>> * Changes already agreed upon in a previous PR/discussion for
> >>> administrative tasks
> >>>
> >>> Interesting situation right now for a discussion: Garren has a PR up[1]
> >>> that enables the mango tests to be part of the standard Travis/Jenkins
> >>> runs. Unfortunately, it doesn't pass on one of our platforms right now
> >>> and that needs investigation. Should we allow the PR to land and fix
> >>> the problems in master, or should the PR hold-up until it can land
> along
> >>> with the fixes for the failing mango tests? I can see both sides of
> this
> >>> argument.
> >>>
> >>> It may or may not be possible for our GH setup to actually prevent such
> >>> checkins (the Apache GH setup is somewhat restricted, and various
> things
> >>> like commit hooks and webhooks have to be configured by INFRA, not us).
> >>>
> >>> I'd like to further discuss whether people feel such a hook would be
> >>> acceptable, onerous or otherwise. Personally, I worry that such a setup
> >>> might prevent us from checking in some of the exceptions above, but if
> >>> there is a way around it, we could proceed down that path.
> >>>
> >>> What do you think, sirs?[2]
> >>> Joan
> >>>
> >>>
> >>> [1]: https://github.com/apache/couchdb/pull/753
> >>> [2]: It's a Mystery Science Theatre 3000 Joel reference. :)
> >>
>

[PROPOSAL] Disallow all merges of PRs to master that cause tests to fail

Posted by Joan Touzet <wo...@apache.org>.
Nope, GitHub doesn't allow this - I just tried.

So my proposal at present remains:

> https://help.github.com/assets/images/help/repository/protecting-branch-loose-status.png 
> 
> Specifically: 
> 
> Protect master branch (and any release branches like 2.1.x) 
> Require status checks to pass before merging 
> Require branches be up to date before merging 

since this does not mandate 2 humans to get changes onto master.

We can ratchet things down farther when our committer base gets more
active in reviewing PRs with the "Require pull request reviews before
merging" setting.

If there are no objections raised over the weekend, I will file the
INFRA ticket to have these settings changed on our primary repos
where Travis CI is enabled:

couchdb
couchdb-fauxton
couchdb-documentation
couchdb-nano
couchdb-docker

I will be explicitly leaving out couchdb-pkg, since CI doesn't (yet)
make sense for it.

-Joan

----- Original Message -----
From: "Nick North" <no...@gmail.com>
To: "Joan Touzet" <wo...@apache.org>
Cc: dev@couchdb.apache.org
Sent: Friday, 18 August, 2017 12:42:19 PM
Subject: Re: [DISCUSSION] Disallow all merges of PRs to master that cause tests to fail

I'm not sure if you can on GitHub, so that would need checking. We're using the Microsoft TFS Git system, for historical reasons.

Nick

> On 18 Aug 2017, at 16:55, Joan Touzet <wo...@apache.org> wrote:
> 
> I didn't realize you could review your own PR. That gives us the "escape
> hatch" that we need.
> 
> -Joan
> 
> ----- Original Message -----
> From: "Nick North" <no...@gmail.com>
> To: dev@couchdb.apache.org, "Joan Touzet" <wo...@apache.org>
> Sent: Friday, 18 August, 2017 9:48:40 AM
> Subject: Re: [DISCUSSION] Disallow all merges of PRs to master that cause tests to fail
> 
> 
> This is pretty much the set of restrictions we have on the master branch in my organisation, and it works well. We also require PR reviews before merging, but anyone in the team can do the review, including the PR author. This means the author has to make a conscious decision on whether the changes are trivial enough to sign off themselves, or whether someone else should review them, and there's an audit trail of that decision being made. 
> 
> 
> Nick 
> 
> 
> 
> On Wed, 16 Aug 2017 at 23:49 Joan Touzet < wohali@apache.org > wrote: 
> 
> 
> Seems there is general consensus. 
> 
> Now, how do people feel about me asking Infra to make this change to the 
> main repos (couchdb, couchdb-fauxton, etc.): 
> 
> https://help.github.com/assets/images/help/repository/protecting-branch-loose-status.png 
> 
> Specifically: 
> 
> Protect master branch (and any release branches like 2.1.x) 
> Require status checks to pass before merging 
> Require branches be up to date before merging 
> 
> We can have an optional secondary discussion around enforcing: 
> 
> Require pull request reviews before merging 
> 
> This would enforce our RTC model, but we *need* more active devs if this 
> is going to pass. I've had to beg multiple times for many of my PRs in 
> the 2.1.0 release cycle to be approved...even trivial documentation 
> changes. It was very frustrating. 
> 
> -Joan 
> 
> ----- Original Message ----- 
> From: "Nick Vatamaniuc" < vatamane@gmail.com > 
> To: dev@couchdb.apache.org 
> Sent: Wednesday, 16 August, 2017 6:01:34 PM 
> Subject: Re: [DISCUSSION] Disallow all merges of PRs to master that cause tests to fail 
> 
> +1 
> 
>> On Aug 16, 2017 15:50, "Alexander Shorin" < kxepal@gmail.com > wrote: 
>> 
>> It's strange to say something else than +1 or question the topic in any 
>> way. 
>> 
>> Good call, Joan! 
>> -- 
>> ,,,^..^,,, 
>> 
>> 
>>> On Wed, Aug 16, 2017 at 6:46 AM, Joan Touzet < wohali@apache.org > wrote: 
>>> Hi committers, 
>>> 
>>> I'd like to propose a change to our policy on version control, namely 
>>> that no check-ins be allowed on the master branch unless CI test runs 
>>> against that PR are clean. 
>>> 
>>> We've worked hard as a group to get runs clean. We need to protect 
>>> that achievement and investment in our test suite. That means not 
>>> letting rogue check-ins slip by because we are ignoring a red X in 
>>> GitHub (GH) from the Travis run. 
>>> 
>>> Things I see as exceptions: 
>>> * Changes to things clearly not related to the test suite, i.e. 
>>> documentation, support scripts, rel/overlay/etc/ files, etc. 
>>> * Changes already agreed upon in a previous PR/discussion for 
>>> administrative tasks 
>>> 
>>> Interesting situation right now for a discussion: Garren has a PR up[1] 
>>> that enables the mango tests to be part of the standard Travis/Jenkins 
>>> runs. Unfortunately, it doesn't pass on one of our platforms right now 
>>> and that needs investigation. Should we allow the PR to land and fix 
>>> the problems in master, or should the PR hold-up until it can land along 
>>> with the fixes for the failing mango tests? I can see both sides of this 
>>> argument. 
>>> 
>>> It may or may not be possible for our GH setup to actually prevent such 
>>> checkins (the Apache GH setup is somewhat restricted, and various things 
>>> like commit hooks and webhooks have to be configured by INFRA, not us). 
>>> 
>>> I'd like to further discuss whether people feel such a hook would be 
>>> acceptable, onerous or otherwise. Personally, I worry that such a setup 
>>> might prevent us from checking in some of the exceptions above, but if 
>>> there is a way around it, we could proceed down that path. 
>>> 
>>> What do you think, sirs?[2] 
>>> Joan 
>>> 
>>> 
>>> [1]: https://github.com/apache/couchdb/pull/753 
>>> [2]: It's a Mystery Science Theatre 3000 Joel reference. :) 
>> 

Re: [DISCUSSION] Disallow all merges of PRs to master that cause tests to fail

Posted by Nick North <no...@gmail.com>.
I'm not sure if you can on GitHub, so that would need checking. We're using the Microsoft TFS Git system, for historical reasons.

Nick

> On 18 Aug 2017, at 16:55, Joan Touzet <wo...@apache.org> wrote:
> 
> I didn't realize you could review your own PR. That gives us the "escape
> hatch" that we need.
> 
> -Joan
> 
> ----- Original Message -----
> From: "Nick North" <no...@gmail.com>
> To: dev@couchdb.apache.org, "Joan Touzet" <wo...@apache.org>
> Sent: Friday, 18 August, 2017 9:48:40 AM
> Subject: Re: [DISCUSSION] Disallow all merges of PRs to master that cause tests to fail
> 
> 
> This is pretty much the set of restrictions we have on the master branch in my organisation, and it works well. We also require PR reviews before merging, but anyone in the team can do the review, including the PR author. This means the author has to make a conscious decision on whether the changes are trivial enough to sign off themselves, or whether someone else should review them, and there's an audit trail of that decision being made. 
> 
> 
> Nick 
> 
> 
> 
> On Wed, 16 Aug 2017 at 23:49 Joan Touzet < wohali@apache.org > wrote: 
> 
> 
> Seems there is general consensus. 
> 
> Now, how do people feel about me asking Infra to make this change to the 
> main repos (couchdb, couchdb-fauxton, etc.): 
> 
> https://help.github.com/assets/images/help/repository/protecting-branch-loose-status.png 
> 
> Specifically: 
> 
> Protect master branch (and any release branches like 2.1.x) 
> Require status checks to pass before merging 
> Require branches be up to date before merging 
> 
> We can have an optional secondary discussion around enforcing: 
> 
> Require pull request reviews before merging 
> 
> This would enforce our RTC model, but we *need* more active devs if this 
> is going to pass. I've had to beg multiple times for many of my PRs in 
> the 2.1.0 release cycle to be approved...even trivial documentation 
> changes. It was very frustrating. 
> 
> -Joan 
> 
> ----- Original Message ----- 
> From: "Nick Vatamaniuc" < vatamane@gmail.com > 
> To: dev@couchdb.apache.org 
> Sent: Wednesday, 16 August, 2017 6:01:34 PM 
> Subject: Re: [DISCUSSION] Disallow all merges of PRs to master that cause tests to fail 
> 
> +1 
> 
>> On Aug 16, 2017 15:50, "Alexander Shorin" < kxepal@gmail.com > wrote: 
>> 
>> It's strange to say something else than +1 or question the topic in any 
>> way. 
>> 
>> Good call, Joan! 
>> -- 
>> ,,,^..^,,, 
>> 
>> 
>>> On Wed, Aug 16, 2017 at 6:46 AM, Joan Touzet < wohali@apache.org > wrote: 
>>> Hi committers, 
>>> 
>>> I'd like to propose a change to our policy on version control, namely 
>>> that no check-ins be allowed on the master branch unless CI test runs 
>>> against that PR are clean. 
>>> 
>>> We've worked hard as a group to get runs clean. We need to protect 
>>> that achievement and investment in our test suite. That means not 
>>> letting rogue check-ins slip by because we are ignoring a red X in 
>>> GitHub (GH) from the Travis run. 
>>> 
>>> Things I see as exceptions: 
>>> * Changes to things clearly not related to the test suite, i.e. 
>>> documentation, support scripts, rel/overlay/etc/ files, etc. 
>>> * Changes already agreed upon in a previous PR/discussion for 
>>> administrative tasks 
>>> 
>>> Interesting situation right now for a discussion: Garren has a PR up[1] 
>>> that enables the mango tests to be part of the standard Travis/Jenkins 
>>> runs. Unfortunately, it doesn't pass on one of our platforms right now 
>>> and that needs investigation. Should we allow the PR to land and fix 
>>> the problems in master, or should the PR hold-up until it can land along 
>>> with the fixes for the failing mango tests? I can see both sides of this 
>>> argument. 
>>> 
>>> It may or may not be possible for our GH setup to actually prevent such 
>>> checkins (the Apache GH setup is somewhat restricted, and various things 
>>> like commit hooks and webhooks have to be configured by INFRA, not us). 
>>> 
>>> I'd like to further discuss whether people feel such a hook would be 
>>> acceptable, onerous or otherwise. Personally, I worry that such a setup 
>>> might prevent us from checking in some of the exceptions above, but if 
>>> there is a way around it, we could proceed down that path. 
>>> 
>>> What do you think, sirs?[2] 
>>> Joan 
>>> 
>>> 
>>> [1]: https://github.com/apache/couchdb/pull/753 
>>> [2]: It's a Mystery Science Theatre 3000 Joel reference. :) 
>> 

Re: [DISCUSSION] Disallow all merges of PRs to master that cause tests to fail

Posted by Joan Touzet <wo...@apache.org>.
I didn't realize you could review your own PR. That gives us the "escape
hatch" that we need.

-Joan

----- Original Message -----
From: "Nick North" <no...@gmail.com>
To: dev@couchdb.apache.org, "Joan Touzet" <wo...@apache.org>
Sent: Friday, 18 August, 2017 9:48:40 AM
Subject: Re: [DISCUSSION] Disallow all merges of PRs to master that cause tests to fail


This is pretty much the set of restrictions we have on the master branch in my organisation, and it works well. We also require PR reviews before merging, but anyone in the team can do the review, including the PR author. This means the author has to make a conscious decision on whether the changes are trivial enough to sign off themselves, or whether someone else should review them, and there's an audit trail of that decision being made. 


Nick 



On Wed, 16 Aug 2017 at 23:49 Joan Touzet < wohali@apache.org > wrote: 


Seems there is general consensus. 

Now, how do people feel about me asking Infra to make this change to the 
main repos (couchdb, couchdb-fauxton, etc.): 

https://help.github.com/assets/images/help/repository/protecting-branch-loose-status.png 

Specifically: 

Protect master branch (and any release branches like 2.1.x) 
Require status checks to pass before merging 
Require branches be up to date before merging 

We can have an optional secondary discussion around enforcing: 

Require pull request reviews before merging 

This would enforce our RTC model, but we *need* more active devs if this 
is going to pass. I've had to beg multiple times for many of my PRs in 
the 2.1.0 release cycle to be approved...even trivial documentation 
changes. It was very frustrating. 

-Joan 

----- Original Message ----- 
From: "Nick Vatamaniuc" < vatamane@gmail.com > 
To: dev@couchdb.apache.org 
Sent: Wednesday, 16 August, 2017 6:01:34 PM 
Subject: Re: [DISCUSSION] Disallow all merges of PRs to master that cause tests to fail 

+1 

On Aug 16, 2017 15:50, "Alexander Shorin" < kxepal@gmail.com > wrote: 

> It's strange to say something else than +1 or question the topic in any 
> way. 
> 
> Good call, Joan! 
> -- 
> ,,,^..^,,, 
> 
> 
> On Wed, Aug 16, 2017 at 6:46 AM, Joan Touzet < wohali@apache.org > wrote: 
> > Hi committers, 
> > 
> > I'd like to propose a change to our policy on version control, namely 
> > that no check-ins be allowed on the master branch unless CI test runs 
> > against that PR are clean. 
> > 
> > We've worked hard as a group to get runs clean. We need to protect 
> > that achievement and investment in our test suite. That means not 
> > letting rogue check-ins slip by because we are ignoring a red X in 
> > GitHub (GH) from the Travis run. 
> > 
> > Things I see as exceptions: 
> > * Changes to things clearly not related to the test suite, i.e. 
> > documentation, support scripts, rel/overlay/etc/ files, etc. 
> > * Changes already agreed upon in a previous PR/discussion for 
> > administrative tasks 
> > 
> > Interesting situation right now for a discussion: Garren has a PR up[1] 
> > that enables the mango tests to be part of the standard Travis/Jenkins 
> > runs. Unfortunately, it doesn't pass on one of our platforms right now 
> > and that needs investigation. Should we allow the PR to land and fix 
> > the problems in master, or should the PR hold-up until it can land along 
> > with the fixes for the failing mango tests? I can see both sides of this 
> > argument. 
> > 
> > It may or may not be possible for our GH setup to actually prevent such 
> > checkins (the Apache GH setup is somewhat restricted, and various things 
> > like commit hooks and webhooks have to be configured by INFRA, not us). 
> > 
> > I'd like to further discuss whether people feel such a hook would be 
> > acceptable, onerous or otherwise. Personally, I worry that such a setup 
> > might prevent us from checking in some of the exceptions above, but if 
> > there is a way around it, we could proceed down that path. 
> > 
> > What do you think, sirs?[2] 
> > Joan 
> > 
> > 
> > [1]: https://github.com/apache/couchdb/pull/753 
> > [2]: It's a Mystery Science Theatre 3000 Joel reference. :) 
> 

Re: [DISCUSSION] Disallow all merges of PRs to master that cause tests to fail

Posted by Nick North <no...@gmail.com>.
This is pretty much the set of restrictions we have on the master branch in
my organisation, and it works well. We also require PR reviews before
merging, but anyone in the team can do the review, including the PR author.
This means the author has to make a conscious decision on whether the
changes are trivial enough to sign off themselves, or whether someone else
should review them, and there's an audit trail of that decision being made.

Nick

On Wed, 16 Aug 2017 at 23:49 Joan Touzet <wo...@apache.org> wrote:

> Seems there is general consensus.
>
> Now, how do people feel about me asking Infra to make this change to the
> main repos (couchdb, couchdb-fauxton, etc.):
>
>
> https://help.github.com/assets/images/help/repository/protecting-branch-loose-status.png
>
> Specifically:
>
>   Protect master branch (and any release branches like 2.1.x)
>   Require status checks to pass before merging
>   Require branches be up to date before merging
>
> We can have an optional secondary discussion around enforcing:
>
>   Require pull request reviews before merging
>
> This would enforce our RTC model, but we *need* more active devs if this
> is going to pass. I've had to beg multiple times for many of my PRs in
> the 2.1.0 release cycle to be approved...even trivial documentation
> changes. It was very frustrating.
>
> -Joan
>
> ----- Original Message -----
> From: "Nick Vatamaniuc" <va...@gmail.com>
> To: dev@couchdb.apache.org
> Sent: Wednesday, 16 August, 2017 6:01:34 PM
> Subject: Re: [DISCUSSION] Disallow all merges of PRs to master that cause
> tests to fail
>
> +1
>
> On Aug 16, 2017 15:50, "Alexander Shorin" <kx...@gmail.com> wrote:
>
> > It's strange to say something else than +1 or question the topic in any
> > way.
> >
> > Good call, Joan!
> > --
> > ,,,^..^,,,
> >
> >
> > On Wed, Aug 16, 2017 at 6:46 AM, Joan Touzet <wo...@apache.org> wrote:
> > > Hi committers,
> > >
> > > I'd like to propose a change to our policy on version control, namely
> > > that no check-ins be allowed on the master branch unless CI test runs
> > > against that PR are clean.
> > >
> > > We've worked hard as a group to get runs clean. We need to protect
> > > that achievement and investment in our test suite. That means not
> > > letting rogue check-ins slip by because we are ignoring a red X in
> > > GitHub (GH) from the Travis run.
> > >
> > > Things I see as exceptions:
> > > * Changes to things clearly not related to the test suite, i.e.
> > >   documentation, support scripts, rel/overlay/etc/ files, etc.
> > > * Changes already agreed upon in a previous PR/discussion for
> > >   administrative tasks
> > >
> > > Interesting situation right now for a discussion: Garren has a PR up[1]
> > > that enables the mango tests to be part of the standard Travis/Jenkins
> > > runs. Unfortunately, it doesn't pass on one of our platforms right now
> > > and that needs investigation. Should we allow the PR to land and fix
> > > the problems in master, or should the PR hold-up until it can land
> along
> > > with the fixes for the failing mango tests? I can see both sides of
> this
> > > argument.
> > >
> > > It may or may not be possible for our GH setup to actually prevent such
> > > checkins (the Apache GH setup is somewhat restricted, and various
> things
> > > like commit hooks and webhooks have to be configured by INFRA, not us).
> > >
> > > I'd like to further discuss whether people feel such a hook would be
> > > acceptable, onerous or otherwise. Personally, I worry that such a setup
> > > might prevent us from checking in some of the exceptions above, but if
> > > there is a way around it, we could proceed down that path.
> > >
> > > What do you think, sirs?[2]
> > > Joan
> > >
> > >
> > > [1]: https://github.com/apache/couchdb/pull/753
> > > [2]: It's a Mystery Science Theatre 3000 Joel reference. :)
> >
>

Re: [DISCUSSION] Disallow all merges of PRs to master that cause tests to fail

Posted by Joan Touzet <wo...@apache.org>.
Seems there is general consensus.

Now, how do people feel about me asking Infra to make this change to the
main repos (couchdb, couchdb-fauxton, etc.):

https://help.github.com/assets/images/help/repository/protecting-branch-loose-status.png

Specifically:

  Protect master branch (and any release branches like 2.1.x)
  Require status checks to pass before merging
  Require branches be up to date before merging

We can have an optional secondary discussion around enforcing:

  Require pull request reviews before merging

This would enforce our RTC model, but we *need* more active devs if this
is going to pass. I've had to beg multiple times for many of my PRs in
the 2.1.0 release cycle to be approved...even trivial documentation
changes. It was very frustrating.

-Joan

----- Original Message -----
From: "Nick Vatamaniuc" <va...@gmail.com>
To: dev@couchdb.apache.org
Sent: Wednesday, 16 August, 2017 6:01:34 PM
Subject: Re: [DISCUSSION] Disallow all merges of PRs to master that cause tests to fail

+1

On Aug 16, 2017 15:50, "Alexander Shorin" <kx...@gmail.com> wrote:

> It's strange to say something else than +1 or question the topic in any
> way.
>
> Good call, Joan!
> --
> ,,,^..^,,,
>
>
> On Wed, Aug 16, 2017 at 6:46 AM, Joan Touzet <wo...@apache.org> wrote:
> > Hi committers,
> >
> > I'd like to propose a change to our policy on version control, namely
> > that no check-ins be allowed on the master branch unless CI test runs
> > against that PR are clean.
> >
> > We've worked hard as a group to get runs clean. We need to protect
> > that achievement and investment in our test suite. That means not
> > letting rogue check-ins slip by because we are ignoring a red X in
> > GitHub (GH) from the Travis run.
> >
> > Things I see as exceptions:
> > * Changes to things clearly not related to the test suite, i.e.
> >   documentation, support scripts, rel/overlay/etc/ files, etc.
> > * Changes already agreed upon in a previous PR/discussion for
> >   administrative tasks
> >
> > Interesting situation right now for a discussion: Garren has a PR up[1]
> > that enables the mango tests to be part of the standard Travis/Jenkins
> > runs. Unfortunately, it doesn't pass on one of our platforms right now
> > and that needs investigation. Should we allow the PR to land and fix
> > the problems in master, or should the PR hold-up until it can land along
> > with the fixes for the failing mango tests? I can see both sides of this
> > argument.
> >
> > It may or may not be possible for our GH setup to actually prevent such
> > checkins (the Apache GH setup is somewhat restricted, and various things
> > like commit hooks and webhooks have to be configured by INFRA, not us).
> >
> > I'd like to further discuss whether people feel such a hook would be
> > acceptable, onerous or otherwise. Personally, I worry that such a setup
> > might prevent us from checking in some of the exceptions above, but if
> > there is a way around it, we could proceed down that path.
> >
> > What do you think, sirs?[2]
> > Joan
> >
> >
> > [1]: https://github.com/apache/couchdb/pull/753
> > [2]: It's a Mystery Science Theatre 3000 Joel reference. :)
>

Re: [DISCUSSION] Disallow all merges of PRs to master that cause tests to fail

Posted by Nick Vatamaniuc <va...@gmail.com>.
+1

On Aug 16, 2017 15:50, "Alexander Shorin" <kx...@gmail.com> wrote:

> It's strange to say something else than +1 or question the topic in any
> way.
>
> Good call, Joan!
> --
> ,,,^..^,,,
>
>
> On Wed, Aug 16, 2017 at 6:46 AM, Joan Touzet <wo...@apache.org> wrote:
> > Hi committers,
> >
> > I'd like to propose a change to our policy on version control, namely
> > that no check-ins be allowed on the master branch unless CI test runs
> > against that PR are clean.
> >
> > We've worked hard as a group to get runs clean. We need to protect
> > that achievement and investment in our test suite. That means not
> > letting rogue check-ins slip by because we are ignoring a red X in
> > GitHub (GH) from the Travis run.
> >
> > Things I see as exceptions:
> > * Changes to things clearly not related to the test suite, i.e.
> >   documentation, support scripts, rel/overlay/etc/ files, etc.
> > * Changes already agreed upon in a previous PR/discussion for
> >   administrative tasks
> >
> > Interesting situation right now for a discussion: Garren has a PR up[1]
> > that enables the mango tests to be part of the standard Travis/Jenkins
> > runs. Unfortunately, it doesn't pass on one of our platforms right now
> > and that needs investigation. Should we allow the PR to land and fix
> > the problems in master, or should the PR hold-up until it can land along
> > with the fixes for the failing mango tests? I can see both sides of this
> > argument.
> >
> > It may or may not be possible for our GH setup to actually prevent such
> > checkins (the Apache GH setup is somewhat restricted, and various things
> > like commit hooks and webhooks have to be configured by INFRA, not us).
> >
> > I'd like to further discuss whether people feel such a hook would be
> > acceptable, onerous or otherwise. Personally, I worry that such a setup
> > might prevent us from checking in some of the exceptions above, but if
> > there is a way around it, we could proceed down that path.
> >
> > What do you think, sirs?[2]
> > Joan
> >
> >
> > [1]: https://github.com/apache/couchdb/pull/753
> > [2]: It's a Mystery Science Theatre 3000 Joel reference. :)
>

Re: [DISCUSSION] Disallow all merges of PRs to master that cause tests to fail

Posted by Alexander Shorin <kx...@gmail.com>.
It's strange to say something else than +1 or question the topic in any way.

Good call, Joan!
--
,,,^..^,,,


On Wed, Aug 16, 2017 at 6:46 AM, Joan Touzet <wo...@apache.org> wrote:
> Hi committers,
>
> I'd like to propose a change to our policy on version control, namely
> that no check-ins be allowed on the master branch unless CI test runs
> against that PR are clean.
>
> We've worked hard as a group to get runs clean. We need to protect
> that achievement and investment in our test suite. That means not
> letting rogue check-ins slip by because we are ignoring a red X in
> GitHub (GH) from the Travis run.
>
> Things I see as exceptions:
> * Changes to things clearly not related to the test suite, i.e.
>   documentation, support scripts, rel/overlay/etc/ files, etc.
> * Changes already agreed upon in a previous PR/discussion for
>   administrative tasks
>
> Interesting situation right now for a discussion: Garren has a PR up[1]
> that enables the mango tests to be part of the standard Travis/Jenkins
> runs. Unfortunately, it doesn't pass on one of our platforms right now
> and that needs investigation. Should we allow the PR to land and fix
> the problems in master, or should the PR hold-up until it can land along
> with the fixes for the failing mango tests? I can see both sides of this
> argument.
>
> It may or may not be possible for our GH setup to actually prevent such
> checkins (the Apache GH setup is somewhat restricted, and various things
> like commit hooks and webhooks have to be configured by INFRA, not us).
>
> I'd like to further discuss whether people feel such a hook would be
> acceptable, onerous or otherwise. Personally, I worry that such a setup
> might prevent us from checking in some of the exceptions above, but if
> there is a way around it, we could proceed down that path.
>
> What do you think, sirs?[2]
> Joan
>
>
> [1]: https://github.com/apache/couchdb/pull/753
> [2]: It's a Mystery Science Theatre 3000 Joel reference. :)