git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] BreakingChanges: early adopter option
@ 2024-09-19 19:33 Junio C Hamano
  2024-09-20 21:33 ` Junio C Hamano
  2024-10-11 21:49 ` [PATCH v2] " Junio C Hamano
  0 siblings, 2 replies; 14+ messages in thread
From: Junio C Hamano @ 2024-09-19 19:33 UTC (permalink / raw)
  To: git; +Cc: Patrick Steinhardt, Derrick Stolee

Discussing the desire to make breaking changes, declaring that
breaking changes are made at a certain version boundary, and
recording these decisions in this document, are necessary but not
sufficient.  We need to make sure that we can implement, test, and
deploy such impactful changes.

Formalize the mechanism based on the `feature.*` configuration
variable to allow early adopters to opt into the breaking change in
a version of Git before the planned version for the breaking change.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---

 * Before I forget.  I'll find time to rewrite the "we no longer
   honor core.preferSymlinkRefs" topic to follow this new guideline
   when we see a rough concensus that both the procedure outlined
   here and the idea to remove core.preferSymlinkRefs are good.

 Documentation/BreakingChanges.txt | 23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git i/Documentation/BreakingChanges.txt w/Documentation/BreakingChanges.txt
index 2b64665694..9f1e9a0fb8 100644
--- i/Documentation/BreakingChanges.txt
+++ w/Documentation/BreakingChanges.txt
@@ -59,10 +59,31 @@ over time. If circumstances change, an earlier decision to deprecate or change
 something may need to be revisited from time to time. So do not take items on
 this list to mean "it is settled, do not waste our time bringing it up again".
 
+== Procedure
+
+Discussing the desire to make breaking changes, declaring that breaking
+changes are made at a certain version boundary, and recording these
+decisions in this document, are necessary but not sufficient.
+Because such changes are expected to be numerous, and the design and
+implementation of them are expected to span over time, they have to
+be deployable trivially at such a version boundary.
+
+The breaking changes MUST be guarded with the configuration
+variable, `feature.git<version>` to help this process.  Each
+individual breaking change must be implemented in such a way that
+for a user who has this configuration variable set to true, it goes
+in effect even before Git <version>.  Note that setting the
+configuration to `false` MUST have no effect, either before or AFTER
+Git <version>.  In other words, this is purely an option to recruit
+early adopters and not a mechanism to keep the old behaviour after
+the announced version boundary for breaking changes.
+
+
 == Git 3.0
 
 The following subsections document upcoming breaking changes for Git 3.0. There
-is no planned release date for this breaking version yet.
+is no planned release date for this breaking version yet.  The early
+adopter configuration used for changes for this release is `feature.git3`.
 
 Proposed changes and removals only include items which are "ready" to be done.
 In other words, this is not supposed to be a wishlist of features that should

^ permalink raw reply related	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2025-03-03 16:32 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-19 19:33 [PATCH] BreakingChanges: early adopter option Junio C Hamano
2024-09-20 21:33 ` Junio C Hamano
2024-09-22 17:51   ` Junio C Hamano
2024-09-26 11:57     ` Patrick Steinhardt
2024-09-26 14:16       ` Phillip Wood
2024-09-26 16:25         ` Junio C Hamano
2024-09-26 16:26         ` Junio C Hamano
2024-09-26 15:57       ` Junio C Hamano
2024-10-11 21:49 ` [PATCH v2] " Junio C Hamano
2024-10-16  7:22   ` Patrick Steinhardt
2024-10-16 22:07     ` Taylor Blau
2025-02-28 17:28       ` Re* " Junio C Hamano
2025-03-03 10:30         ` Patrick Steinhardt
2025-03-03 16:32           ` Junio C Hamano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).