git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Emily Shaffer <nasamuffin@google.com>
To: "brian m. carlson" <sandals@crustytoothpaste.net>,
	Emily Shaffer <nasamuffin@google.com>,
	 Emily Shaffer <emilyshaffer@google.com>,
	git@vger.kernel.org,
	 "Randall S. Becker" <rsbecker@nexbridge.com>,
	Taylor Blau <me@ttaylorr.com>,
	 Junio C Hamano <gitster@pobox.com>
Subject: Re: [PATCH] Documentation: add platform support policy
Date: Mon, 15 Jul 2024 15:23:46 -0700	[thread overview]
Message-ID: <CAJoAoZmgXRT3162bWkCpu4R4JME9XydPnvuZn6L8fs5G68Bbtw@mail.gmail.com> (raw)
In-Reply-To: <ZpGFHWZTWAQUXGCe@tapette.crustytoothpaste.net>

On Fri, Jul 12, 2024 at 12:33 PM brian m. carlson
<sandals@crustytoothpaste.net> wrote:
>
> On 2024-07-11 at 23:15:35, Emily Shaffer wrote:
> > On Thu, Jul 11, 2024 at 3:24 PM brian m. carlson
> > <sandals@crustytoothpaste.net> wrote:
> > > Some older OSes require kernel features that aren't compiled in by
> > > default, so containers are out.  For example, CentOS 6 won't run on a
> > > modern kernel because it lacks whatever the predecessor to the vDSO was
> > > (which can be recompiled into the kernel, but nobody does that).
> >
> > Is this hinting that we should mention a minimum kernel version for
> > Linux-kernel-based OSes?
>
> This is actually a feature that still exists in the kernel and could be
> enabled for newer kernels, but because distros don't use it (they use
> the vDSO instead), they don't compile it in.
>
> I'm not sure a minimum kernel version is helpful, because most of the
> LTS distro kernels backport features, like Red Hat backported getrandom
> for example.  In the interests of getting to a useful agreement, I think
> for now we should just punt on this and having a 10 year lifespan will
> probably do the trick, and we can determine in the future if we need to
> apply more stringent measures.

Sounds good, thanks!

>
> > > We also don't really want to be on the hook for trying to support OSes
> > > Ubuntu is still derived from Debian.  It is likely that things which
> > > work in one will work in another, but not guaranteed.
> > >
> > > I mention Debian is because it has a large variety of supported
> > > architectures.  I absolutely don't want to say, "Oh, you have MIPS
> > > hardware, too bad if Git doesn't work for you."  (I assure you the
> > > distro maintainers will be displeased if we break Git on less common
> > > architectures, as will I.)  In fact, MIPS is an architecture that
> > > requires natural alignment and can be big-endian, so it's very useful in
> > > helping us find places we wrote invalid or unportable C.
> > >
> > > The reason I'm very hesitant to require that we run everything in GitHub
> > > Actions because it only supports two architectures.  ARM64 and RISC-V
> > > are really popular, and I can tell you that running even a Linux
> > > container in emulation is really quite slow.  I do it for my projects,
> > > but Git LFS only builds one set of non-x86 packages (the latest Debian)
> > > because emulation is far too slow to build the normal suite of five or
> > > six packages.
> >
> > Does that restriction apply to just GitHub-hosted runners, though?
> > Would it be possible for an interested party to set up self-hosted
> > runners (configured via GH Actions) that are using AMD or POWER or
> > whatever? (For example, I think it would be quite feasible for Google
> > to donate some compute for this, though no promises).
>
> Self-hosted runners on public code are very hard to secure.  You're
> basically letting arbitrary people on the Internet run code on those
> machines and make outgoing network connections (due to the fact that you
> can push whatever into a PR branch), with all of the potential for abuse
> that that involves (and as my colleagues can tell you, there's a whole
> lot of it).  GitHub has taken extensive pains to secure GitHub Actions
> runners in the cloud, and while we use self-hosted runners for some
> internal projects, they are absolutely not allowed for any public
> project for that reason.
>
> I would be delighted if Google were willing to do that, but I think
> you're going to need help from teams like Google Cloud who are going to
> be used to dealing with abuse at scale, like cryptocurrency miners and
> such.  Unfortunately, there are many people who act in a less than
> lovely way and will exploit whatever they can to make a buck.
>
> I will also note that the official Actions runner is in C# and only runs
> on a handful of platforms due to the lack of portability of C#.  (It
> might theoretically run on Mono, which would increase its portability,
> but I must profess my complete ignorance on anything about that code.) I
> also know of an unofficial one in Go[0], which I'm for obvious reasons
> unable to endorse, encourage, or speak about authoritatively in any way,
> but that would still exclude some platforms and architectures which
> don't support Go.

Do you think it's worth us linking out to some helpful doc (like the
official one, and someone who doesn't work at GH adding a link to some
unofficial Golang thing)? I sort of feel like since "you can also DIY
a scraper that looks at the mailing list if you want" is included, the
gist makes it across, so I'm tempted not to go into a bunch of
prescriptive detail here.

>
> > The appeal is not "because GitHub Actions are great!" for me - the
> > appeal is "because most Git developers run the CI this way if they
> > remember to or use GGG, and Junio runs it on `seen` all the time". If
> > there's some other recommendation for self-service CI runs that don't
> > need some careful reminding or secret knowledge to run, I'm happy with
> > that too. (For example, if someone wants to set up some bot that looks
> > for new [PATCH]-shaped emails, applies, builds, runs tests, and mails
> > test results to the author after run, that would fit into the spirit
> > of this point, although that sounds like a lot of setup to me.)
>
> Yeah, I understand what you're going for.  If there were some super easy
> way to get everything running in an automatic CI, I'm all for it.  I
> think CI is the easiest way to make sure we don't break anything.
>
> I think it's worth trying to get CI set up for whatever we can, and if
> CI is a possibility somewhere, it becomes a lot easier to say yes.
>
> > Should have a reroll in the next 30min, it was ready to go and then I
> > got this mail :)
>
> Sounds good.  I don't think anything in this email should affect that
> reroll.
>
> [0] https://github.com/ChristopherHX/github-act-runner
> --
> brian m. carlson (they/them or he/him)
> Toronto, Ontario, CA

  parent reply	other threads:[~2024-07-15 22:23 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-09 22:50 [PATCH] Documentation: add platform support policy Emily Shaffer
2024-07-09 23:16 ` brian m. carlson
2024-07-11 18:14   ` Emily Shaffer
2024-07-11 20:12     ` Kyle Lippincott
2024-07-11 20:24       ` rsbecker
2024-07-11 20:57       ` Emily Shaffer
2024-07-11 22:24     ` brian m. carlson
2024-07-11 23:15       ` Emily Shaffer
2024-07-12 19:33         ` brian m. carlson
2024-07-12 19:46           ` rsbecker
2024-07-15 22:28             ` Emily Shaffer
2024-07-15 22:50               ` rsbecker
2024-07-15 22:23           ` Emily Shaffer [this message]
2024-07-10  0:57 ` Junio C Hamano
2024-07-10 18:55   ` Emily Shaffer
2024-07-10 20:13     ` Junio C Hamano
2024-07-11 18:26       ` Emily Shaffer
2024-07-10 20:20     ` rsbecker
2024-07-11 18:19       ` Emily Shaffer
2024-07-11 18:53         ` rsbecker
2024-07-10 19:11 ` Kyle Lippincott
2024-07-11 18:37   ` Emily Shaffer
2024-07-11 19:36     ` Junio C Hamano
2024-07-11 19:55       ` Junio C Hamano
2024-07-11 20:25     ` Kyle Lippincott
2024-07-11 23:24 ` [PATCH v2] " Emily Shaffer
2024-07-12 18:15   ` Junio C Hamano
2024-07-15 22:20     ` Emily Shaffer
2024-07-15 23:46       ` Junio C Hamano
2024-07-16 17:58         ` Emily Shaffer
2024-07-16 18:20           ` rsbecker
2024-07-17 18:16           ` Junio C Hamano
2024-07-18 17:38   ` [PATCH v3] " Emily Shaffer
2024-07-18 18:22     ` Emily Shaffer
2024-07-18 21:47       ` Junio C Hamano
2024-07-18 22:46     ` Junio C Hamano
2024-07-18 23:45       ` rsbecker
2024-07-25 16:53         ` Emily Shaffer
2024-07-25 18:52       ` Emily Shaffer
2024-07-25 19:34         ` Junio C Hamano
2024-07-25 19:40         ` rsbecker
2024-07-23  9:02     ` Patrick Steinhardt
2024-07-25 20:27       ` Emily Shaffer
2024-07-23 21:49     ` Josh Steadmon
2024-07-25 20:31       ` Emily Shaffer
2024-07-30 17:54     ` [PATCH v4] " Emily Shaffer
2024-07-30 19:26       ` Junio C Hamano
2024-07-30 20:41         ` Emily Shaffer
2024-07-30 21:24           ` Junio C Hamano
2024-07-30 22:40             ` rsbecker
2024-07-31 17:20               ` Emily Shaffer
2024-07-31 20:58                 ` rsbecker
2024-08-02 22:19       ` [PATCH v5] " Emily Shaffer
2024-08-02 23:31         ` Junio C Hamano
2024-08-02 23:32           ` rsbecker

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=CAJoAoZmgXRT3162bWkCpu4R4JME9XydPnvuZn6L8fs5G68Bbtw@mail.gmail.com \
    --to=nasamuffin@google.com \
    --cc=emilyshaffer@google.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=me@ttaylorr.com \
    --cc=rsbecker@nexbridge.com \
    --cc=sandals@crustytoothpaste.net \
    /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).