From: Jon Simons <jon@jonsimons.org>
To: git@vger.kernel.org,
Kristoffer Haugsbakk <kristofferhaugsbakk@fastmail.com>,
Junio C Hamano <gitster@pobox.com>,
Patrick Steinhardt <ps@pks.im>
Cc: Jon Simons <jon@jonsimons.org>
Subject: [PATCH] SubmittingPatches: avoid add-failing-test-then-fix anti-pattern
Date: Sun, 11 Oct 2026 11:32:06 -0400 [thread overview]
Message-ID: <20261011153206.72386-1-jon@jonsimons.org> (raw)
Document the preference to avoid the 'add a failing test and fix it in a
subsequent commit' anti-pattern. Although such a sequence is fine for
local development, reviewers instead prefer a single commit that
introduces the test together with its code change.
The goal of this addition is to capture the preference in writing, with
hopes of optimizing future review flows by reducing back-and-forths to
the list.
Signed-off-by: Jon Simons <jon@jonsimons.org>
---
Documentation/SubmittingPatches | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/Documentation/SubmittingPatches b/Documentation/SubmittingPatches
index c60855f706..27b53d2b31 100644
--- a/Documentation/SubmittingPatches
+++ b/Documentation/SubmittingPatches
@@ -271,6 +271,16 @@ fixed by accident to avoid regression. Also, try merging your work to
that are still in flight may have unexpected interactions with what
you are trying to do in your topic.
+When fixing a bug, you may find it useful to first write a test using
+`test_expect_failure` to confirm that the test exposes the bug.
+However, unless there is a strong reason not to, submit the test as
+`test_expect_success` in the same commit as your code change that
+fixes the bug. A separate commit that only changes `test_expect_failure`
+to `test_expect_success` can leave the behavior being tested out of the
+diff context, making the fix harder to review. Reviewers who want to
+verify that your test reproduces the bug can temporarily undo the code
+changes while keeping the test.
+
Pushing to a fork of https://github.com/git/git will use their CI
integration to test your changes on Linux, Mac and Windows. See the
<<GHCI,GitHub CI>> section for details.
--
2.55.0
next reply other threads:[~2026-10-11 16:51 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-11 15:32 Jon Simons [this message]
2026-10-11 16:21 ` [PATCH] SubmittingPatches: avoid add-failing-test-then-fix anti-pattern Kristoffer Haugsbakk
2026-10-11 23:44 ` Junio C Hamano
2026-10-12 1:46 ` Jon Simons
2026-10-12 3:00 ` [PATCH v2] " Jon Simons
2026-10-12 14:34 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261011153206.72386-1-jon@jonsimons.org \
--to=jon@jonsimons.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=kristofferhaugsbakk@fastmail.com \
--cc=ps@pks.im \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox