git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: Jeff King <peff@peff.net>
Cc: git@vger.kernel.org, Junio C Hamano <gitster@pobox.com>,
	Takashi Iwai <tiwai@suse.de>,
	Brandon Williams <bmwill@google.com>,
	Stefan Beller <sbeller@google.com>
Subject: Re: [PATCH 3/4] Makefile: use the sha1collisiondetection submodule by default
Date: Tue, 05 Dec 2017 11:22:08 +0100	[thread overview]
Message-ID: <87bmjdscdr.fsf@evledraar.booking.com> (raw)
In-Reply-To: <20171205070249.GC4788@sigill.intra.peff.net>


[Forgot to CC Stefan & Brandon who were involved in previous
discussions]

On Tue, Dec 05 2017, Jeff King jotted:

> On Tue, Nov 28, 2017 at 09:32:13PM +0000, Ævar Arnfjörð Bjarmason wrote:
>
>> Change the build process so that instead of needing to supply
>> DC_SHA1_SUBMODULE=YesPlease to use the sha1collisiondetection
>> submodule instead of the copy of the same code shipped in the sha1dc
>> directory, it uses the submodule by default unless
>> NO_DC_SHA1_SUBMODULE=UnfortunatelyYes is supplied.
>>
>> This reverses the logic added by me in 86cfd61e6b ("sha1dc: optionally
>> use sha1collisiondetection as a submodule", 2017-07-01). Git has now
>> shipped with the submodule in git.git for two major releases, if we're
>> ever going to migrate to fully using it instead of perpetually
>> maintaining both sha1collisiondetection and the sha1dc directory this
>> is a logical first step.
>>
>> This change removes the "auto" logic Junio added in
>> cac87dc01d ("sha1collisiondetection: automatically enable when
>> submodule is populated", 2017-07-01), I feel that automatically
>> falling back to using sha1dc would defeat the point, which is to smoke
>> out any remaining users of git.git who have issues cloning the
>> submodule for whatever reason.
>
> I'm not sure how I feel about this. I see your point that there's no
> real value in maintaining two systems indefinitely.  At the same time, I
> wonder how much value the submodule strategy is actually bringing us.
>
> IOW, are we agreed that the path forward is to get everybody using the
> submodule?
>
> It seems like it's going to cause some minor pain for CI and packaging
> systems that now need to care about submodules (so at least flipping the
> switch, but maybe also dealing with having a network dependency for the
> build that was not already there).
>
> I'll admit I'm more sensitive to this than most people, since I happen
> to maintain a fork of Git that I run through an internal CI system. And
> that CI otherwise depends only on the locally-held fork, not any
> external resources. But I'm probably in a fairly unique situation there.

In no particular order:

 * I don't feel strongly about 2-4/4 in this series. I just hacked this
   up because it occurred to me that I'd left this sha1dc stuff in some
   in-between state and we'd talked about eventually moving forward with
   this.

   We've had two releases with the submodule being purely optional, if
   we're going to keep it it seems logical to start at least using it by
   default.

   The main thing I want is for the answer to "why do we have the same
   code twice in git.git" to not be "Ævar added a submodule and never
   followed up" :)

 * The main benefit of doing 3-4/4 is to get the git project itself to
   dogfood submodules & have the entire community enjoy the resulting
   fixes that'll come out of that. Not that it's a big bother for us to
   maintain the sha1dc/ & sha1collisiondetection/ directories and we
   need to have a submodule for our own use.

 * We'll never find out whether submodules are a hassle for downstream
   git.git consumers without something like 3/4, where you'll need to at
   least supply NO_DC_SHA1_SUBMODULE=UnfortunatelyYes so we'll get
   people coming out of the woodworks complaining that we've broken
   their workflows, right now with "auto" they won't even notice.

 * The network dependency for internal builds is a bit of a pain, but
   with this 3/4 you can still just supply
   NO_DC_SHA1_SUBMODULE=UnfortunatelyYes and it'll work. With 4/4 and a
   hard dependency it won't be so easy, you'll need to clone
   sha1collisiondetection internally somewhere and use url.X.insteadOf=Y
   to rewrite the submodule URL.

 * I forgot to note: Since git-archive doesn't include submodules
   (missing that feature) 4/4 is blocking on either just hacking the
   "make dist" target in git.git to monkeypatch it into the tarball (we
   already do this for other stuff), or making git-archive support a
   --recurse-submodules option.

  reply	other threads:[~2017-12-05 10:22 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-28 21:32 [PATCH 0/4] SHA1DC fixes & fully moving to a git.git submodule Ævar Arnfjörð Bjarmason
2017-11-28 21:32 ` [PATCH 1/4] Makefile: don't error out under DC_SHA1_EXTERNAL if DC_SHA1_SUBMODULE=auto Ævar Arnfjörð Bjarmason
2017-12-05  6:53   ` Jeff King
2017-11-28 21:32 ` [PATCH 2/4] sha1dc_git.h: re-arrange an ifdef chain for a subsequent change Ævar Arnfjörð Bjarmason
2017-12-05  6:55   ` Jeff King
2017-11-28 21:32 ` [PATCH 3/4] Makefile: use the sha1collisiondetection submodule by default Ævar Arnfjörð Bjarmason
2017-12-05  7:02   ` Jeff King
2017-12-05 10:22     ` Ævar Arnfjörð Bjarmason [this message]
2017-12-05 13:08       ` Junio C Hamano
2017-12-05 14:16         ` Ævar Arnfjörð Bjarmason
2017-12-09 12:30     ` Kevin Daudt
2017-12-09 12:53       ` Kevin Daudt
2017-12-05 16:32   ` Junio C Hamano
     [not found] ` <20171128213214.12477-5-avarab@gmail.com>
2017-12-05  7:10   ` [PATCH 4/4] sha1dc: remove in favor of using sha1collisiondetection as a submodule Jeff King
2017-12-08 22:29 ` [PATCH v2 0/5] SHA1DC fixes & fully moving to a git.git submodule Ævar Arnfjörð Bjarmason
2017-12-09 13:08   ` Kevin Daudt
2017-12-08 22:29 ` [PATCH v2 1/5] Makefile: don't error out under DC_SHA1_EXTERNAL if DC_SHA1_SUBMODULE=auto Ævar Arnfjörð Bjarmason
2017-12-08 22:29 ` [PATCH v2 2/5] Makefile: under "make dist", include the sha1collisiondetection submodule Ævar Arnfjörð Bjarmason
2017-12-08 22:48   ` Junio C Hamano
2017-12-08 23:15     ` Ævar Arnfjörð Bjarmason
2017-12-19 19:10       ` Junio C Hamano
2017-12-08 22:29 ` [PATCH v2 3/5] sha1dc_git.h: re-arrange an ifdef chain for a subsequent change Ævar Arnfjörð Bjarmason
2017-12-08 22:30 ` [PATCH v2 4/5] Makefile: use the sha1collisiondetection submodule by default Ævar Arnfjörð Bjarmason
2017-12-08 22:53   ` Junio C Hamano
2017-12-08 23:21     ` Junio C Hamano
2017-12-09  0:31       ` Jeff King
2017-12-08 23:30     ` Ævar Arnfjörð Bjarmason

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=87bmjdscdr.fsf@evledraar.booking.com \
    --to=avarab@gmail.com \
    --cc=bmwill@google.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=peff@peff.net \
    --cc=sbeller@google.com \
    --cc=tiwai@suse.de \
    /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.
Code repositories for project(s) associated with this public inbox

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

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 read-only IMAP folder(s) and NNTP newsgroup(s).