From e3e3588e0e9c7f59caef694a7756bb33c94c5cf7 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Tue, 2 Aug 2016 21:07:53 -0700 Subject: [PATCH] meta: clarify process for breaking changes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes: https://github.com/nodejs/node/issues/7848 PR-URL: https://github.com/nodejs/node/pull/7955 Reviewed-By: James M Snell Reviewed-By: Сковорода Никита Андреевич Reviewed-By: Julien Gilli Reviewed-By: Anna Henningsen Reviewed-By: Brian White Reviewed-By: Michael Dawson --- COLLABORATOR_GUIDE.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/COLLABORATOR_GUIDE.md b/COLLABORATOR_GUIDE.md index 90d73e80e9679b..2bab2e203145f0 100644 --- a/COLLABORATOR_GUIDE.md +++ b/COLLABORATOR_GUIDE.md @@ -60,12 +60,20 @@ and work schedules. Trivial changes (e.g. those which fix minor bugs or improve performance without affecting API or causing other wide-reaching impact) may be landed after a shorter delay. -Where there is no disagreement amongst Collaborators, a pull request -may be landed given appropriate review. Where there is discussion +For non-breaking changes, if there is no disagreement amongst Collaborators, a +pull request may be landed given appropriate review. Where there is discussion amongst Collaborators, consensus should be sought if possible. The lack of consensus may indicate the need to elevate discussion to the CTC for resolution (see below). +Breaking changes (that is, pull requests that require an increase in the +major version number, known as `semver-major` changes) must be elevated for +review by the CTC. This does not necessarily mean that the PR must be put onto +the CTC meeting agenda. If multiple CTC members approve (`LGTM`) the PR and no +Collaborators oppose the PR, it can be landed. Where there is disagreement among +CTC members or objections from one or more Collaborators, `semver-major` pull +requests should be put on the CTC meeting agenda. + All bugfixes require a test case which demonstrates the defect. The test should *fail* before the change, and *pass* after the change.