From b7b4e3fe19e2e5a3401cca05add5b407e5694551 Mon Sep 17 00:00:00 2001 From: Aaron Turon <aturon@mozilla.com> Date: Fri, 16 Feb 2018 08:53:57 -0800 Subject: [PATCH 1/2] Loosen FCP restrictions Allows an item to enter FCP when a majority of team members has approved and *no* team member has objected. This retains the consensus process, but makes it so that FCP isn't blocked *by default*. Rather, members who object to the proposal need to register a concern to block it. --- src/github/nag.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/github/nag.rs b/src/github/nag.rs index 07fec81c..50a24acb 100644 --- a/src/github/nag.rs +++ b/src/github/nag.rs @@ -223,7 +223,8 @@ fn evaluate_nags() -> DashResult<()> { } }; - let num_active_reviews = reviews.iter().filter(|&&(_, ref r)| !r.reviewed).count(); + let num_outstanding_reviews = reviews.iter().filter(|&&(_, ref r)| !r.reviewed).count(); + let num_complete_reviews = reviews.len() - num_outstanding_reviews; let num_active_concerns = concerns .iter() .filter(|&&(_, ref c)| c.fk_resolved_comment.is_none()) @@ -255,7 +256,9 @@ fn evaluate_nags() -> DashResult<()> { }; } - if num_active_reviews == 0 && num_active_concerns == 0 { + let majority_complete = num_outstanding_reviews < num_complete_reviews; + + if num_active_concerns == 0 && majority_complete && num_outstanding_reviews < 3 { // TODO only record the fcp as started if we know that we successfully commented // i.e. either the comment claims to have posted, or we get a comment back to reconcile From ed8b781bb843ef86f01c9b6939107320710ab9c8 Mon Sep 17 00:00:00 2001 From: Aaron Turon <aturon@mozilla.com> Date: Fri, 16 Feb 2018 12:45:46 -0800 Subject: [PATCH 2/2] Tweak fcp message --- src/github/nag.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/github/nag.rs b/src/github/nag.rs index 50a24acb..e1d5ea58 100644 --- a/src/github/nag.rs +++ b/src/github/nag.rs @@ -908,7 +908,7 @@ impl<'a> RfcBotComment<'a> { } } - msg.push_str("\nOnce these reviewers reach consensus, this will enter its final "); + msg.push_str("\nOnce a majority of reviewers approve (and none object), this will enter its final "); msg.push_str("comment period. If you spot a major issue that hasn't been raised "); msg.push_str("at any point in this process, please speak up!\n");