git@vger.kernel.org list mirror (unofficial, one of many)
 help / color / mirror / Atom feed
From: Felipe Contreras <felipe.contreras@gmail.com>
To: Git <git@vger.kernel.org>
Cc: Junio C Hamano <gitster@pobox.com>,
	Johannes Schindelin <Johannes.Schindelin@gmx.de>,
	Don Goodman-Wilson <don@goodman-wilson.com>
Subject: The master branch rename, and avoiding another v1.6.0 git-foo fiasco
Date: Thu, 12 Nov 2020 18:04:23 -0600
Message-ID: <CAMP44s3BJ3dGsLJ-6yA-Po459=+m826KD9an4+P3qOY1vkbxZg@mail.gmail.com> (raw)

Hello,

Some of you may remember the fiasco that was the v1.6.0 release, which
obsoleted all the git-foo commands, and caused a huge revolt among
users.

What you may not remember is the suggestion I gave Linus Torvalds to
avoid such issues in the future: [1]

  What other projects do is make very visible when something is
  deprecated, like a big, annoying, unbearable warning. Next time you
  deprecated a command it might be a good idea to add the warning each
  time the command is used, and obsolete it later on.

  Also, if it's a big change like this git- stuff, then do a major
  version bump.

  If you had marked 1.6 as 2.0, and added warnings when you deprecated
  the git-foo stuff then the users would have no excuse. It would have
  been obvious and this huge thread would have been avoided.

https://lore.kernel.org/git/94a0d4530808290712s2044dd03pb93cb4a829dc56b0@mail.gmail.com/

[It's worthwhile to read (or reread) the thread to consider the
arguments back and forth.]

This is precisely what was done for Git 2.0, with the addition of
configurations such as "push.default" that enabled the new behavior,
and if unset, a huge warning was issued.

The deprecation period allowed users to become aware of the upcoming
changes, test them, complain about them, or simply disable the
warning, and continue as they were.

The Git project learned its lesson, and the transition to Git 2.0 was
much smoother than v1.6.

Now with the master branch rename we are treading on dangerous waters again.

Regardless of the reasoning behind (of which I didn't see much
discussion, and I can provide strong arguments against), the move will
affect *all* users. Such huge changes are meant for major
versions--like Git 3.0 (which we are due for).

It is not a question of changing one line of code, it's about updating
hundreds--probably thousands--of instances in various documentations
that assume the name of the branch to be "master". This is what I
argued back in 2008 when I pushed against the sudden move to "git
foo", although apparently too late to be considered. [2]

*If* we are going to rename the master branch, it should be with a
good reason, after discussing it appropriately, in a major release
(i.e. Git 3.0), after a period of deprecation, and a big warning to
invite users to provide feedback about the important upcoming change.
We can hedge these types of changes with a "core.mode=next"
configuration, as I argued back in 2013. [3]

If we don't, we are inviting what happened back in 2008 to happen again.

"Those who cannot remember the past are condemned to repeat it." --
George Santayana

Cheers.

[1] https://lore.kernel.org/git/94a0d4530808290712s2044dd03pb93cb4a829dc56b0@mail.gmail.com/
[2] https://lore.kernel.org/git/94a0d4530808271709s4e96c5a7ie6152b2937f2234b@mail.gmail.com/
[3] https://lore.kernel.org/git/1381561485-20252-1-git-send-email-felipe.contreras@gmail.com/

-- 
Felipe Contreras

             reply	other threads:[~2020-11-13  0:04 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-13  0:04 Felipe Contreras [this message]
2020-11-13  1:01 ` brian m. carlson
2020-11-13  4:27   ` Felipe Contreras
2020-11-13  5:14     ` Theodore Y. Ts'o
2020-11-13  6:28       ` Felipe Contreras
2020-11-13 14:58         ` Theodore Y. Ts'o
2020-11-13 15:37           ` Felipe Contreras
2020-11-13 16:08           ` Michal Suchánek
2020-11-14 14:19           ` Lukasz Niemier
2020-11-15  3:46             ` Theodore Y. Ts'o
2020-11-15  4:27               ` Felipe Contreras
2020-11-19  1:02               ` Brandon Casey
2020-11-19  4:16                 ` Peter Hadlaw
2020-11-19 13:37                 ` Konstantin Ryabitsev
2020-11-19 21:25                   ` Junio C Hamano
2020-11-19 23:29                     ` Felipe Contreras
2020-11-20 19:14                     ` Konstantin Ryabitsev
2020-11-19 21:29                   ` Brandon Casey
2020-11-20  0:34                     ` Felipe Contreras
2020-11-13  6:09     ` Don Goodman-Wilson
     [not found]     ` <nbCkLegnP_kb-16UzAuDChE0p68ZtRD_3ZN3o3BJHYBYpUxTWuKjvhCSKT7zRZl_sckHrkyJl2fwePFUBR-HtDcEV0rHuac6Ygg-FrrYsYI=@goodman-wilson.com>
2020-11-13  6:47       ` Felipe Contreras
2020-11-13 13:53         ` Philippe Blain
2020-11-13 15:49           ` Felipe Contreras
2020-11-23 15:39           ` Whinis
2020-11-20 18:38     ` Ismael Luceno

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

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAMP44s3BJ3dGsLJ-6yA-Po459=+m826KD9an4+P3qOY1vkbxZg@mail.gmail.com' \
    --to=felipe.contreras@gmail.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=don@goodman-wilson.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    /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

git@vger.kernel.org list mirror (unofficial, one of many)

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://public-inbox.org/git
	git clone --mirror http://ou63pmih66umazou.onion/git
	git clone --mirror http://czquwvybam4bgbro.onion/git
	git clone --mirror http://hjrcffqmbrq6wope.onion/git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V1 git git/ https://public-inbox.org/git \
		git@vger.kernel.org
	public-inbox-index git

Example config snippet for mirrors.
Newsgroups are available over NNTP:
	nntp://news.public-inbox.org/inbox.comp.version-control.git
	nntp://ou63pmih66umazou.onion/inbox.comp.version-control.git
	nntp://czquwvybam4bgbro.onion/inbox.comp.version-control.git
	nntp://hjrcffqmbrq6wope.onion/inbox.comp.version-control.git
	nntp://news.gmane.io/gmane.comp.version-control.git
 note: .onion URLs require Tor: https://www.torproject.org/

code repositories for the project(s) associated with this inbox:

	https://80x24.org/mirrors/git.git

AGPL code for this site: git clone https://public-inbox.org/public-inbox.git