From: "brian m. carlson" <sandals@crustytoothpaste.net>
To: Emily Shaffer <emilyshaffer@google.com>
Cc: git@vger.kernel.org, "Randall S. Becker" <rsbecker@nexbridge.com>,
Taylor Blau <me@ttaylorr.com>, Junio C Hamano <gitster@pobox.com>,
Emily Shaffer <nasamuffin@google.com>
Subject: Re: [PATCH] Documentation: add platform support policy
Date: Tue, 9 Jul 2024 23:16:14 +0000 [thread overview]
Message-ID: <Zo3EvvSI999ngrLn@tapette.crustytoothpaste.net> (raw)
In-Reply-To: <20240709225042.2005233-1-emilyshaffer@google.com>
[-- Attachment #1: Type: text/plain, Size: 3323 bytes --]
On 2024-07-09 at 22:50:42, Emily Shaffer wrote:
> Right now, this doc talks about "guarantees." I used that phrasing based on
> what I've observed to be an implicit expectation that we guarantee support; it
> could be this isn't actually a guarantee that the community is willing to make,
> so I am hoping we can discuss it and come up with the right term.
I think it might be helpful to look at what some other projects do. Rust
has a concept of tiered support, and it requires platforms to have
maintainers who will commit to support an OS. I don't think we
necessarily need to be so formal, but if nobody's stepping up to monitor
an OS or architecture, it may break at any time and we won't be able to
consider it when deciding on features we require from the platform (such
as Rust, C versions, or POSIX versions).
I think it's also worth discussing what we require from a platform we're
willing to support. For example, we might require that the platform
pass the entire testsuite (ignoring irrelevant tests or tests for things
that platform doesn't use, such as Perl) or be actively pursuing an
attempt to do so. We may also want to require that an OS be actively
receiving security support so that we don't have people asking us to
carry patches for actively obsolete OSes, such as CentOS 6. Finally,
some sort of time limit may be helpful, since some Linux vendors are now
offering 15 years of support, and we really may not want to target
really ancient versions of things like libcurl.
At the same time, we do have people actively building Git on a variety
of platforms and a huge number of architectures, including most Linux
distros and the BSDs, and we will want to be cognizant that we should
avoid breaking those environments when possible, even though, say, the
porters for some of those OSes or architectures may not actively follow
the list (due to limited porters and lots of porting work). I imagine
we might say that released architectures on certain distros (Debian
comes to mind as a very portable option) might be implicitly supported.
> +Compatible on `next`
> +--------------------
> +
> +To guarantee that `next` will work for your platform, avoiding reactive
> +debugging and fixing:
> +
> +* You should add a runner for your platform to the GitHub Actions CI suite.
> +This suite is run when any Git developer proposes a new patch, and having a
> +runner for your platform/configuration means every developer will know if they
> +break you, immediately.
I think this is a particularly helpful approach. I understand the Linux
runners support nested virtualization, so it's possible to run tests in
a VM on a Linux runner on OSes that Actions doesn't natively support. I
do this for several of my Rust projects[0] on FreeBSD and NetBSD, for
example, and it should work on platforms that support Vagrant and run on
x86-64.
That won't catch things like alignment problems which don't affect
x86-64, but it does catch a lot of general portability problems that are
OS-related.
I'm in agreement with all of your suggestions, by the way, and I
appreciate you opening this discussion.
[0] An example for the curious is muter: https://github.com/bk2204/muter.
--
brian m. carlson (they/them or he/him)
Toronto, Ontario, CA
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 262 bytes --]
next prev parent reply other threads:[~2024-07-09 23:16 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 [this message]
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
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=Zo3EvvSI999ngrLn@tapette.crustytoothpaste.net \
--to=sandals@crustytoothpaste.net \
--cc=emilyshaffer@google.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=me@ttaylorr.com \
--cc=nasamuffin@google.com \
--cc=rsbecker@nexbridge.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).