git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Patrick Steinhardt <ps@pks.im>
To: Elijah Newren <newren@gmail.com>
Cc: git@vger.kernel.org,
	"Haelwenn (lanodan) Monnier" <contact@hacktivis.me>,
	"brian m. carlson" <sandals@crustytoothpaste.net>,
	Ben Knoble <ben.knoble@gmail.com>,
	Christian Brabandt <cb@256bit.org>,
	Collin Funk <collin.funk1@gmail.com>,
	Eli Schwartz <eschwartz@gentoo.org>,
	Ezekiel Newren <ezekielnewren@gmail.com>,
	Johannes Schindelin <Johannes.Schindelin@gmx.de>,
	Junio C Hamano <gitster@pobox.com>,
	Phillip Wood <phillip.wood123@gmail.com>,
	Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>,
	Sam James <sam@gentoo.org>, Taylor Blau <me@ttaylorr.com>
Subject: Re: [PATCH RFC v2 1/7] meson: add infrastructure to build internal Rust library
Date: Mon, 8 Sep 2025 08:42:13 +0200	[thread overview]
Message-ID: <aL56xRcJTCU2wttG@pks.im> (raw)
In-Reply-To: <CABPp-BGF9Ds=9bLKbWFEuatGmGycemwTMiyez_s3XMJR=M6xQw@mail.gmail.com>

On Sat, Sep 06, 2025 at 09:54:18PM -0700, Elijah Newren wrote:
> On Fri, Sep 5, 2025 at 4:51 AM Patrick Steinhardt <ps@pks.im> wrote:
> >
> > Add the infrastructure into Meson to build an internal Rust library.
> > Building the Rust parts of Git are for now entirely optional, as they
> > are mostly intended as a test balloon for both Git developers, but also
> > for distributors of Git. So for now, they may contain:
> >
> >   - New features that are not mission critical to Git and that users can
> >     easily live without.
> >
> >   - Alternative implementations of small subsystems.
> >
> > If these test balloons are successful, we will eventually make Rust a
> > mandatory dependency for our build process in Git 3.0.
> 
> Okay.
> 
> > The availability of a Rust toolchain will be auto-detected by Meson at
> > setup time. This behaviour can be tweaked via the `-Drust=` feature
> > toggle.
> 
> This goes against what you said above, because it turns it into
> something other than a test balloon.  As I've said elsewhere, I don't
> think this part is helpful; it reduces the amount of notice that
> distributors and platforms have about our intent to make Rust
> mandatory.

See the BreakingChanges document later in this series, which talks about
this. Makes me wonder whether I should reverse the order of patches so
that the BreakingChanges are more prominent.

> > diff --git a/src/meson.build b/src/meson.build
> > new file mode 100644
> > index 00000000000..eb752651d35
> > --- /dev/null
> > +++ b/src/meson.build
> > @@ -0,0 +1,15 @@
> > +libgit_rs = static_library('git_rs',
> > +  sources: [
> > +    'lib.rs',
> > +  ],
> > +  rust_crate_type: 'staticlib',
> > +)
> > +libgit_libraries += libgit_rs
> > +
> > +# The 'rust' module was only introduced in Meson 1.0. Furthermore, the module
> > +# does not seem to work on macOS as expected right now. As such, we only
> > +# conditionally enable tests.
> > +if meson.version().version_compare('>=1.0.0') and host_machine.system() != 'darwin'
> > +  rustmod = import('rust')
> > +  rustmod.test('rust', libgit_rs)
> > +endif
> 
> Would it make sense to invoke 'cargo test' as one step of 'meson test'
> on mac as an alternative, so that mac users also can run the tests?

Maybe. I'll revisit the Meson code anyway to figure out how to get Cargo
support in there natively.

Patrick

  reply	other threads:[~2025-09-08  6:42 UTC|newest]

Thread overview: 207+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-04 14:26 [PATCH RFC 0/3] Introduce Rust and announce that it will become mandatorty Patrick Steinhardt
2025-09-04 14:26 ` [PATCH RFC 1/3] meson: add infrastructure to build internal Rust library Patrick Steinhardt
2025-09-04 18:50   ` Junio C Hamano
2025-09-05  7:53     ` Patrick Steinhardt
2025-09-04 22:06   ` brian m. carlson
2025-09-04 22:46     ` Junio C Hamano
2025-09-05  7:49       ` Patrick Steinhardt
2025-09-05  1:16     ` Eli Schwartz
2025-09-05  7:50       ` Patrick Steinhardt
2025-09-05 13:20         ` Eli Schwartz
2025-09-04 14:26 ` [PATCH RFC 2/3] rust: implement a test balloon via the "varint" subsystem Patrick Steinhardt
2025-09-04 22:37   ` brian m. carlson
2025-09-05  7:54     ` Patrick Steinhardt
2025-09-04 23:39   ` Ezekiel Newren
2025-09-05  2:00     ` Eli Schwartz
2025-09-05  7:54       ` Patrick Steinhardt
2025-09-05 13:39         ` Eli Schwartz
2025-09-07 20:07   ` Ben Knoble
2025-09-08  4:39     ` Junio C Hamano
2025-09-08 11:39       ` Patrick Steinhardt
2025-09-09  0:49       ` Ben Knoble
2025-09-09 15:27         ` Junio C Hamano
2025-09-08  6:44     ` Patrick Steinhardt
2025-09-04 14:26 ` [PATCH RFC 3/3] BreakingChanges: announce Rust becoming mandatory Patrick Steinhardt
2025-09-04 17:38   ` Eric Sunshine
2025-09-05  7:54     ` Patrick Steinhardt
2025-09-05 11:50 ` [PATCH RFC v2 0/7] Introduce Rust and announce that it will become mandatorty Patrick Steinhardt
2025-09-05 11:50   ` [PATCH RFC v2 1/7] meson: add infrastructure to build internal Rust library Patrick Steinhardt
2025-09-05 17:47     ` Justin Tobler
2025-09-08  6:42       ` Patrick Steinhardt
2025-09-07  4:54     ` Elijah Newren
2025-09-08  6:42       ` Patrick Steinhardt [this message]
2025-09-05 11:50   ` [PATCH RFC v2 2/7] Makefile: introduce " Patrick Steinhardt
2025-09-05 20:21     ` brian m. carlson
2025-09-08  6:40       ` Patrick Steinhardt
2025-09-07  4:58     ` Elijah Newren
2025-09-08  6:41       ` Patrick Steinhardt
2025-09-07 15:26     ` SZEDER Gábor
2025-09-08  6:41       ` Patrick Steinhardt
2025-09-05 11:50   ` [PATCH RFC v2 3/7] help: report on whether or not Rust is enabled Patrick Steinhardt
2025-09-05 19:51     ` brian m. carlson
2025-09-07  5:00       ` Elijah Newren
2025-09-05 11:51   ` [PATCH RFC v2 4/7] rust: implement a test balloon via the "varint" subsystem Patrick Steinhardt
2025-09-05 21:46     ` Junio C Hamano
2025-09-05 22:39       ` Junio C Hamano
2025-09-05 23:04         ` brian m. carlson
2025-09-05 11:51   ` [PATCH RFC v2 5/7] BreakingChanges: announce Rust becoming mandatory Patrick Steinhardt
2025-09-05 12:45     ` Matthias Aßhauer
2025-09-05 13:38       ` Patrick Steinhardt
2025-09-05 14:38         ` Eli Schwartz
2025-09-08  6:42           ` Patrick Steinhardt
2025-09-07  5:31         ` Elijah Newren
2025-09-08  6:42           ` Patrick Steinhardt
2025-09-05 14:22       ` Phillip Wood
2025-09-05 14:32       ` Eli Schwartz
2025-09-05 19:34         ` brian m. carlson
2025-09-07  5:25     ` Elijah Newren
2025-09-05 11:51   ` [PATCH RFC v2 6/7] ci: convert "pedantic" job into full build with breaking changes Patrick Steinhardt
2025-09-07  0:21     ` Junio C Hamano
2025-09-08  6:41       ` Patrick Steinhardt
2025-09-05 11:51   ` [PATCH RFC v2 7/7] ci: enable Rust for breaking-changes jobs Patrick Steinhardt
2025-09-05 19:56     ` brian m. carlson
2025-09-08  6:40       ` Patrick Steinhardt
2025-09-05 21:00     ` Junio C Hamano
2025-09-08  6:40       ` Patrick Steinhardt
2025-09-05 14:14   ` [PATCH RFC v2 0/7] Introduce Rust and announce that it will become mandatorty Phillip Wood
2025-09-05 14:28     ` Patrick Steinhardt
2025-09-07  4:31       ` Elijah Newren
2025-09-08  6:44         ` Patrick Steinhardt
2025-09-08 23:00           ` brian m. carlson
2025-09-10  8:21             ` Patrick Steinhardt
2025-09-09  6:33           ` Elijah Newren
2025-09-10  8:21             ` Patrick Steinhardt
2025-09-09  9:12       ` Phillip Wood
2025-09-10  8:21         ` Patrick Steinhardt
2025-09-10  9:32           ` Phillip Wood
2025-09-10 10:49             ` Patrick Steinhardt
2025-09-08 14:13 ` [PATCH RFC v3 0/8] " Patrick Steinhardt
2025-09-08 14:13   ` [PATCH RFC v3 1/8] meson: add infrastructure to build internal Rust library Patrick Steinhardt
2025-09-08 22:09     ` brian m. carlson
2025-09-09  1:03       ` brian m. carlson
2025-09-10  8:22       ` Patrick Steinhardt
2025-09-08 14:13   ` [PATCH RFC v3 2/8] Makefile: reorder sources after includes Patrick Steinhardt
2025-09-08 14:13   ` [PATCH RFC v3 3/8] Makefile: introduce infrastructure to build internal Rust library Patrick Steinhardt
2025-09-08 14:13   ` [PATCH RFC v3 4/8] help: report on whether or not Rust is enabled Patrick Steinhardt
2025-09-08 14:13   ` [PATCH RFC v3 5/8] rust: implement a test balloon via the "varint" subsystem Patrick Steinhardt
2025-09-08 17:19     ` Ezekiel Newren
2025-09-08 22:22       ` brian m. carlson
2025-09-10  8:22         ` Patrick Steinhardt
2025-09-08 14:13   ` [PATCH RFC v3 6/8] BreakingChanges: announce Rust becoming mandatory Patrick Steinhardt
2025-09-08 14:13   ` [PATCH RFC v3 7/8] ci: convert "pedantic" job into full build with breaking changes Patrick Steinhardt
2025-09-08 14:13   ` [PATCH RFC v3 8/8] ci: enable Rust for breaking-changes jobs Patrick Steinhardt
2025-09-08 14:20   ` [PATCH RFC v3 0/8] Introduce Rust and announce that it will become mandatorty Kristoffer Haugsbakk
2025-09-10 15:35 ` [PATCH RFC v4 0/9] Introduce Rust and announce that it will become mandatory Patrick Steinhardt
2025-09-10 15:35   ` [PATCH RFC v4 1/9] meson: add infrastructure to build internal Rust library Patrick Steinhardt
2025-09-11 21:33     ` brian m. carlson
2025-09-10 15:35   ` [PATCH RFC v4 2/9] Makefile: reorder sources after includes Patrick Steinhardt
2025-09-10 15:35   ` [PATCH RFC v4 3/9] Makefile: introduce infrastructure to build internal Rust library Patrick Steinhardt
2025-09-10 15:35   ` [PATCH RFC v4 4/9] help: report on whether or not Rust is enabled Patrick Steinhardt
2025-09-10 15:35   ` [PATCH RFC v4 5/9] varint: use explicit width for integers Patrick Steinhardt
2025-09-10 21:04     ` Junio C Hamano
2025-09-10 15:35   ` [PATCH RFC v4 6/9] varint: reimplement as test balloon for Rust Patrick Steinhardt
2025-09-10 15:35   ` [PATCH RFC v4 7/9] BreakingChanges: announce Rust becoming mandatory Patrick Steinhardt
2025-09-10 21:20     ` Junio C Hamano
2025-09-15 10:53       ` Patrick Steinhardt
2025-09-22 16:24         ` Junio C Hamano
2025-09-23  5:32           ` Patrick Steinhardt
2025-09-23  8:53             ` LTS "lieutenant", was " Johannes Schindelin
2025-09-24 13:47               ` Patrick Steinhardt
2025-09-23 14:31             ` Junio C Hamano
2025-09-24 12:53               ` Patrick Steinhardt
2025-09-24 17:43                 ` Junio C Hamano
2025-09-10 21:42     ` Kristoffer Haugsbakk
2025-09-15 10:53       ` Patrick Steinhardt
2025-09-10 15:35   ` [PATCH RFC v4 8/9] ci: convert "pedantic" job into full build with breaking changes Patrick Steinhardt
2025-09-10 15:35   ` [PATCH RFC v4 9/9] ci: enable Rust for breaking-changes jobs Patrick Steinhardt
2025-09-11 21:55   ` [PATCH RFC v4 0/9] Introduce Rust and announce that it will become mandatory brian m. carlson
2025-09-15 10:53     ` Patrick Steinhardt
2025-09-12 15:45   ` SZEDER Gábor
2025-09-12 16:32     ` Junio C Hamano
2025-09-15 10:50       ` Patrick Steinhardt
2025-09-15 11:22 ` [PATCH v5 " Patrick Steinhardt
2025-09-15 11:22   ` [PATCH v5 1/9] meson: add infrastructure to build internal Rust library Patrick Steinhardt
2025-09-15 11:22   ` [PATCH v5 2/9] Makefile: reorder sources after includes Patrick Steinhardt
2025-09-15 11:22   ` [PATCH v5 3/9] Makefile: introduce infrastructure to build internal Rust library Patrick Steinhardt
2025-09-15 11:22   ` [PATCH v5 4/9] help: report on whether or not Rust is enabled Patrick Steinhardt
2025-09-15 11:22   ` [PATCH v5 5/9] varint: use explicit width for integers Patrick Steinhardt
2025-09-15 11:22   ` [PATCH v5 6/9] varint: reimplement as test balloon for Rust Patrick Steinhardt
2025-09-15 11:22   ` [PATCH v5 7/9] BreakingChanges: announce Rust becoming mandatory Patrick Steinhardt
2025-09-17 22:09     ` SZEDER Gábor
2025-09-18  1:19       ` brian m. carlson
2025-09-22 19:34         ` SZEDER Gábor
2025-09-22 20:59           ` Junio C Hamano
2025-09-22 22:15             ` brian m. carlson
2025-09-22 22:56               ` Junio C Hamano
2025-09-23  1:59                 ` Elijah Newren
2025-09-23  4:54                 ` Patrick Steinhardt
2025-09-23 14:17                   ` Junio C Hamano
2025-09-23  0:43             ` Ezekiel Newren
2025-09-19 13:59     ` Phillip Wood
2025-09-22 13:01       ` Patrick Steinhardt
2025-09-22 14:07         ` Phillip Wood
2025-09-22 14:38           ` Patrick Steinhardt
2025-09-15 11:22   ` [PATCH v5 8/9] ci: convert "pedantic" job into full build with breaking changes Patrick Steinhardt
2025-09-15 11:22   ` [PATCH v5 9/9] ci: enable Rust for breaking-changes jobs Patrick Steinhardt
2025-09-15 17:12   ` [PATCH v5 0/9] Introduce Rust and announce that it will become mandatory Junio C Hamano
2025-09-16  2:03   ` Ezekiel Newren
2025-09-16 10:06     ` Patrick Steinhardt
2025-09-17 12:07       ` Sam James
2025-09-17 17:30         ` Ezekiel Newren
2025-09-16 22:25     ` Ramsay Jones
2025-09-16 23:38       ` Ezekiel Newren
2025-09-17 18:32         ` Ramsay Jones
2025-09-18  3:47   ` Elijah Newren
2025-09-25  1:10   ` what's missing from newer C? [was: [PATCH v5 0/9] Introduce Rust ....] Eric Wong
2025-09-26 22:17     ` Ezekiel Newren
2025-10-04  1:02       ` Eric Wong
2025-10-06  9:13         ` Pierre-Emmanuel Patry
2025-09-19 18:41 ` [PATCH RFC 0/3] Introduce Rust and announce that it will become mandatorty John Paul Adrian Glaubitz
2025-09-22 13:01   ` Patrick Steinhardt
2025-09-23  9:45 ` [PATCH v6 0/9] Introduce Rust and announce that it will become mandatory Patrick Steinhardt
2025-09-23  9:45   ` [PATCH v6 1/9] meson: add infrastructure to build internal Rust library Patrick Steinhardt
2025-09-23  9:45   ` [PATCH v6 2/9] Makefile: reorder sources after includes Patrick Steinhardt
2025-09-23  9:45   ` [PATCH v6 3/9] Makefile: introduce infrastructure to build internal Rust library Patrick Steinhardt
2025-09-23  9:45   ` [PATCH v6 4/9] help: report on whether or not Rust is enabled Patrick Steinhardt
2025-09-23  9:45   ` [PATCH v6 5/9] varint: use explicit width for integers Patrick Steinhardt
2025-09-23  9:45   ` [PATCH v6 6/9] varint: reimplement as test balloon for Rust Patrick Steinhardt
2025-09-23  9:45   ` [PATCH v6 7/9] BreakingChanges: announce Rust becoming mandatory Patrick Steinhardt
2025-09-23 15:29     ` Phillip Wood
2025-09-23 17:29       ` Junio C Hamano
2025-09-24  5:03         ` Patrick Steinhardt
2025-09-23  9:45   ` [PATCH v6 8/9] ci: convert "pedantic" job into full build with breaking changes Patrick Steinhardt
2025-09-23  9:45   ` [PATCH v6 9/9] ci: enable Rust for breaking-changes jobs Patrick Steinhardt
2025-09-23 20:15   ` [PATCH v6 0/9] Introduce Rust and announce that it will become mandatory Ezekiel Newren
2025-09-24  5:02     ` Patrick Steinhardt
2025-09-24 14:34       ` Ezekiel Newren
2025-09-25  6:30 ` [PATCH v7 " Patrick Steinhardt
2025-09-25  6:30   ` [PATCH v7 1/9] meson: add infrastructure to build internal Rust library Patrick Steinhardt
2025-09-25  6:30   ` [PATCH v7 2/9] Makefile: reorder sources after includes Patrick Steinhardt
2025-09-25 21:33     ` Ramsay Jones
2025-09-25  6:30   ` [PATCH v7 3/9] Makefile: introduce infrastructure to build internal Rust library Patrick Steinhardt
2025-09-25  6:30   ` [PATCH v7 4/9] help: report on whether or not Rust is enabled Patrick Steinhardt
2025-09-25  6:30   ` [PATCH v7 5/9] varint: use explicit width for integers Patrick Steinhardt
2025-09-30 13:34     ` Kristoffer Haugsbakk
2025-10-01 17:22       ` Ezekiel Newren
2025-10-02  7:30         ` Patrick Steinhardt
2025-09-25  6:30   ` [PATCH v7 6/9] varint: reimplement as test balloon for Rust Patrick Steinhardt
2025-10-01 17:21     ` Ezekiel Newren
2025-10-01 19:44       ` Junio C Hamano
2025-09-25  6:30   ` [PATCH v7 7/9] BreakingChanges: announce Rust becoming mandatory Patrick Steinhardt
2025-09-25  6:30   ` [PATCH v7 8/9] ci: convert "pedantic" job into full build with breaking changes Patrick Steinhardt
2025-09-25  6:30   ` [PATCH v7 9/9] ci: enable Rust for breaking-changes jobs Patrick Steinhardt
2025-09-25 16:35   ` [PATCH v7 0/9] Introduce Rust and announce that it will become mandatory Junio C Hamano
2025-10-01 18:43     ` Ezekiel Newren
2025-10-02  7:29 ` [PATCH v8 " Patrick Steinhardt
2025-10-02  7:29   ` [PATCH v8 1/9] meson: add infrastructure to build internal Rust library Patrick Steinhardt
2025-10-02  7:29   ` [PATCH v8 2/9] Makefile: reorder sources after includes Patrick Steinhardt
2025-10-02  7:29   ` [PATCH v8 3/9] Makefile: introduce infrastructure to build internal Rust library Patrick Steinhardt
2025-10-02  7:29   ` [PATCH v8 4/9] help: report on whether or not Rust is enabled Patrick Steinhardt
2025-10-02  7:29   ` [PATCH v8 5/9] varint: use explicit width for integers Patrick Steinhardt
2025-10-02  7:29   ` [PATCH v8 6/9] varint: reimplement as test balloon for Rust Patrick Steinhardt
2025-10-02  7:29   ` [PATCH v8 7/9] BreakingChanges: announce Rust becoming mandatory Patrick Steinhardt
2025-10-02  7:29   ` [PATCH v8 8/9] ci: convert "pedantic" job into full build with breaking changes Patrick Steinhardt
2025-10-02  7:29   ` [PATCH v8 9/9] ci: enable Rust for breaking-changes jobs Patrick Steinhardt
2025-10-02 16:38   ` [PATCH v8 0/9] Introduce Rust and announce that it will become mandatory Junio C Hamano
2025-10-07  9:59     ` Patrick Steinhardt
2025-10-02 23:35   ` Ezekiel Newren

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=aL56xRcJTCU2wttG@pks.im \
    --to=ps@pks.im \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=ben.knoble@gmail.com \
    --cc=cb@256bit.org \
    --cc=collin.funk1@gmail.com \
    --cc=contact@hacktivis.me \
    --cc=eschwartz@gentoo.org \
    --cc=ezekielnewren@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=me@ttaylorr.com \
    --cc=newren@gmail.com \
    --cc=phillip.wood123@gmail.com \
    --cc=pierre-emmanuel.patry@embecosm.com \
    --cc=sam@gentoo.org \
    --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).