git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Samuel Ferencik <sferencik@gmail.com>
To: Chris Torek <chris.torek@gmail.com>
Cc: "Johannes Schindelin" <Johannes.Schindelin@gmx.de>,
	"Junio C Hamano" <gitster@pobox.com>,
	"Philip Oakley" <philipoakley@iee.email>,
	"Johannes Schindelin via GitGitGadget" <gitgitgadget@gmail.com>,
	git@vger.kernel.org, "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
	"Phillip Wood" <phillip.wood123@gmail.com>
Subject: Re: [PATCH v2] config: introduce an Operating System-specific `includeIf` condition
Date: Wed, 19 Apr 2023 16:32:06 +0200	[thread overview]
Message-ID: <CABwTEiSd1_WB_BXpT9BqkO3+rb2+FaZ7fFhGLo=CW=feKG2gUw@mail.gmail.com> (raw)
In-Reply-To: <CAPx1GvcsxFbdUBZayzAU0U1MNMUN2NqaBLfZ6C1M=SykWQ_CHg@mail.gmail.com>

[resending my previous response, which I had sent only to the PR, not the
mailing list; composed before dscho@'s last email]

> > 2. casing (use of `/i`)
>
> My preference is to do this case sensitively (in other words, start
> stupid) and if somebody wants to use "/i", add it later after the
> dust settles.

Fantastic.

> > 6. what's the use-case?

> > * Note all of the use-cases above would cope with WSL reporting "Linux",
> >   except of `merge.tool`.
>
> I think that this is the most important question to ask, and from
> here, we'd see how #3 above should be resolved (I suspect that you
> may want to have at least two layers to allow WSL to be grouped
> together with MinGW and Cygwin at one level, and at the same time
> allow it to be grouped together with Ubuntu at a different level).

Actually, I take that back: I can install the Linux version of BeyondCompare
into WSL, use my license, and I'm fine with WSL reporting that it's Linux.
(This is just to correct my previous claim. More below.)

> > 3. handling Windows (MinGW, WSL)
>
> The answer depends on which layer you care about.  The underlying
> kernel and system may be Windows, and some characteristics of the
> underlying system may seep through the abstraction, but these
> systems aim to give user experience of something like GNU/Linux.

Fair point. I think we only care about the top-most layer (the one nearest to
the user).

The "seeping through" aspect means things often aren't clear-cut, but I also
think we can make practical decisions. The closer the top layer approximates an
OS, the more we can say it *is* that OS without compromising correctness. For
example, a Linux container on Windows should report (uname) it's a Linux, and
`includeIf` should go by this. So should WSL2, I think, because it provides a
Linux kernel. Maybe there is a use-case for git config (`includeIf`) to behave
differently in WSL because the host OS is Windows, but I'm not aware of such a
use-case. In contrast, "Git bash" and Cygwin report something other than "Linux"
(`MINGW64_NT-<version>`, `CYGWIN_NT-<version>`) because they are not Linuxes,
and that's also fine. Interestingly, though, they don't report the host OS
(Windows) either.

So I propose that we limit ourselves to the top-most layer. Can we come up with
a name (`os` or another) that would capture this concept?

- Felipe proposed `platform`. I'm afraid this may be confused with the hardware
  platform (as reported by `uname -m`).
- Phillip proposed `uname-s`. It's self-documenting in a way, but it's also
  wrong on Windows and describes the tool rather than the concept.
- Philip proposed `sysname`. It's slightly better but still very much a pointer
  to `utsname.sysname`.
- dscho@ proposed `os`. I like it for its obviousness. The issues with the name
  are marginal (not bigger than with any other name) and can be sufficiently
  addressed by good documentation.

If we can agree on the name, I can help fix up the documentation, the tests, and
remove the case insensitivity. Thoughts?

  reply	other threads:[~2023-04-19 14:32 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-21 13:39 [PATCH] config: introduce an Operating System-specific `includeIf` condition Johannes Schindelin via GitGitGadget
2022-11-21 13:51 ` Ævar Arnfjörð Bjarmason
2022-11-21 15:51   ` Phillip Wood
2022-11-21 19:18     ` Johannes Schindelin
2022-11-21 19:19 ` [PATCH v2] " Johannes Schindelin via GitGitGadget
2022-11-21 23:32   ` Jeff King
2022-11-23 11:54     ` Đoàn Trần Công Danh
2022-11-24  0:56       ` Jeff King
2022-11-22 14:01   ` Ævar Arnfjörð Bjarmason
2022-11-22 14:31     ` Phillip Wood
2022-11-23  0:16       ` Junio C Hamano
2022-11-23 15:07         ` Phillip Wood
2022-11-23 23:51           ` Junio C Hamano
2022-11-22 18:40   ` Philippe Blain
2022-11-23 10:40   ` Philip Oakley
2022-11-25  7:31     ` Junio C Hamano
2023-04-17  7:04       ` Samuel Ferencik
2023-04-17 18:46         ` Junio C Hamano
2023-04-18  2:04           ` Felipe Contreras
2023-04-19 12:22           ` Johannes Schindelin
2023-04-19 14:26             ` Chris Torek
2023-04-19 14:32               ` Samuel Ferencik [this message]
2023-04-19 15:21             ` rsbecker
2023-04-19 16:07             ` Junio C Hamano
2023-04-19 16:14             ` Junio C Hamano
2022-11-22  0:03 ` [PATCH] " 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='CABwTEiSd1_WB_BXpT9BqkO3+rb2+FaZ7fFhGLo=CW=feKG2gUw@mail.gmail.com' \
    --to=sferencik@gmail.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=avarab@gmail.com \
    --cc=chris.torek@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitgitgadget@gmail.com \
    --cc=gitster@pobox.com \
    --cc=philipoakley@iee.email \
    --cc=phillip.wood123@gmail.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
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;
as well as URLs for NNTP newsgroup(s).