<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/ci, branch v2.52.0</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.52.0</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.52.0'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2025-11-17T15:00:12Z</updated>
<entry>
<title>Merge branch 'jc/ci-use-arm64-p4-on-macos'</title>
<updated>2025-11-17T15:00:12Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2025-11-17T15:00:12Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=7f79dc3562bad79a6452e3f350206191f4b95923'/>
<id>urn:sha1:7f79dc3562bad79a6452e3f350206191f4b95923</id>
<content type='text'>
We replaced deprecated macos-13 with macos-14 image in GitHub
Actions CI, but we forgot that the image is for arm64.  We have
been seeing a lot of test failures ever since.  Switch to arm64
binary for Perforce tests.

* jc/ci-use-arm64-p4-on-macos:
  Use Perforce arm64 binary on macOS CI jobs
</content>
</entry>
<entry>
<title>Use Perforce arm64 binary on macOS CI jobs</title>
<updated>2025-11-16T23:11:41Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2025-11-16T23:10:28Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=ffff0bb0dac1f1b5e559ab61ca55616dda1e87c6'/>
<id>urn:sha1:ffff0bb0dac1f1b5e559ab61ca55616dda1e87c6</id>
<content type='text'>
The previous step replaced deprecated macos-13 image with macos-14
image on GitHub Actions CI.  While x86-64 binaries can work there,
because macos-14 images are arm64 based (we could replace it with
macos-14-large that is x86-64), it makes more sense to use arm64
binary there.  Without this change, we have been getting unusually
higher rate of failures from random macOS CI jobs railing to run
t98xx series of tests.

Helped-by: Koji Nakamaru &lt;koji.nakamaru@gree.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'ps/ci-rust'</title>
<updated>2025-10-28T17:29:09Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2025-10-28T17:29:09Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=fe95c55549380c2bb52a839f127886702d7f1f4a'/>
<id>urn:sha1:fe95c55549380c2bb52a839f127886702d7f1f4a</id>
<content type='text'>
CI improvements to handle the recent Rust integration better.

* ps/ci-rust:
  rust: support for Windows
  ci: verify minimum supported Rust version
  ci: check for common Rust mistakes via Clippy
  rust/varint: add safety comments
  ci: check formatting of our Rust code
  ci: deduplicate calls to `apt-get update`
</content>
</entry>
<entry>
<title>ci: verify minimum supported Rust version</title>
<updated>2025-10-15T15:10:17Z</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2025-10-15T06:04:09Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=1b43384f41d8303324e8e6717dcf109e8846c214'/>
<id>urn:sha1:1b43384f41d8303324e8e6717dcf109e8846c214</id>
<content type='text'>
In the current state of our Rust code base we don't really have any
requirements for the minimum supported Rust version yet, as we don't use
any features introduced by a recent version of Rust. Consequently, we
have decided that we want to aim for a rather old version and edition of
Rust, where the hope is that using an old version will make alternatives
like gccrs viable earlier for compiling Git.

But while we specify the Rust edition, we don't yet specify a Rust
version. And even if we did, the Rust version would only be enforced for
our own code, but not for any of our dependencies.

We don't yet have any dependencies at the current point in time. But
let's add some safeguards by specifying the minimum supported Rust
version and using cargo-msrv(1) to verify that this version can be
satisfied for all of our dependencies.

Note that we fix the version of cargo-msrv(1) at v0.18.1. This is the
latest release supported by Ubuntu's Rust version.

Signed-off-by: Patrick Steinhardt &lt;ps@pks.im&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>ci: check for common Rust mistakes via Clippy</title>
<updated>2025-10-15T15:10:17Z</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2025-10-15T06:04:08Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=4b44c46432744a4975432eabba16ad60cb39e089'/>
<id>urn:sha1:4b44c46432744a4975432eabba16ad60cb39e089</id>
<content type='text'>
Introduce a CI check that uses Clippy to perform checks for common
mistakes and suggested code improvements. Clippy is the official static
analyser of the Rust project and thus the de-facto standard.

Signed-off-by: Patrick Steinhardt &lt;ps@pks.im&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>ci: check formatting of our Rust code</title>
<updated>2025-10-15T15:10:17Z</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2025-10-15T06:04:06Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=e75cd059001ab49bd92040418660bcdfc7981c84'/>
<id>urn:sha1:e75cd059001ab49bd92040418660bcdfc7981c84</id>
<content type='text'>
Introduce a CI check that verifies that our Rust code is well-formatted.
This check uses `cargo fmt`, which is a wrapper around rustfmt(1) that
executes formatting for all Rust source files. rustfmt(1) itself is the
de-facto standard for formatting code in the Rust ecosystem.

The rustfmt(1) tool allows to tweak the final format in theory. In
practice though, the Rust ecosystem has aligned on style "editions".
These editions only exist to ensure that any potential changes to the
style don't cause reformats to existing code bases. Other than that,
most Rust projects out there accept this default style of a specific
edition.

Let's do the same and use that default style. It may not be anyone's
favorite, but it is consistent and by making it part of our CI we also
enforce it right from the start.

Note that we don't have to pick a specific style edition here, as the
edition is automatically derived from the edition we have specified in
our "Cargo.toml" file.

The implemented script looks somewhat weird as we perfom manual error
handling instead of using something like `set -e`. The intent here is
that subsequent commits will add more checks, and we want to execute all
of these checks regardless of whether or not a previous check failed.

Signed-off-by: Patrick Steinhardt &lt;ps@pks.im&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>ci: deduplicate calls to `apt-get update`</title>
<updated>2025-10-15T15:10:16Z</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2025-10-15T06:04:05Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=0de14fe3f3c821fe6dcaf3f86cdfaea427f5ca70'/>
<id>urn:sha1:0de14fe3f3c821fe6dcaf3f86cdfaea427f5ca70</id>
<content type='text'>
When installing dependencies we first check for the distribution that is
in use and then we check for the specific job. In the first step we
already install all dependencies required to build and test Git, whereas
the second step installs a couple of additional dependencies that are
only required to perform job-specific tasks.

In both steps we use `apt-get update` to update our repository sources.
This is unnecessary though: all platforms that use Aptitude would have
already executed this command in the distro-specific step anyway.

Drop the redundant calls.

Signed-off-by: Patrick Steinhardt &lt;ps@pks.im&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'ps/ci-avoid-broken-sudo-on-ubuntu'</title>
<updated>2025-10-14T05:00:35Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2025-10-14T05:00:34Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=7ac17316205e8313948a94379ce185065517d87d'/>
<id>urn:sha1:7ac17316205e8313948a94379ce185065517d87d</id>
<content type='text'>
Our CI script requires "sudo" that can be told to preserve
environment, but Ubuntu replaced with "sudo" with an implementation
that lacks the feature.  Work this around by reinstalling the
original version.

* ps/ci-avoid-broken-sudo-on-ubuntu:
  ci: fix broken jobs on Ubuntu 25.10 caused by switch to sudo-rs(1)
</content>
</entry>
<entry>
<title>ci: fix broken jobs on Ubuntu 25.10 caused by switch to sudo-rs(1)</title>
<updated>2025-10-11T17:10:34Z</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2025-10-10T09:41:14Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=fddb4842552b70a8b46a9dd8a2a450b973d3dd1e'/>
<id>urn:sha1:fddb4842552b70a8b46a9dd8a2a450b973d3dd1e</id>
<content type='text'>
Ubuntu 25.10 has been released. One prominent change in this version of
Ubuntu is the switch to some Rust-based utilities. Part of this switch
is also that Ubuntu now defaults to sudo-rs(1).

Unfortunately, this breaks our CI because sudo-rs(1) does not support
the `--preserve-env` flag. Let's revert back to the C-based sudo(1)
implementation to fix this.

Signed-off-by: Patrick Steinhardt &lt;ps@pks.im&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'ps/rust-balloon'</title>
<updated>2025-10-08T19:17:55Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2025-10-08T19:17:55Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=75f8dfabaa2f071ac2b527d225b0312d70f94e64'/>
<id>urn:sha1:75f8dfabaa2f071ac2b527d225b0312d70f94e64</id>
<content type='text'>
Dip our toes a bit to (optionally) use Rust implemented helper
called from our C code.

* ps/rust-balloon:
  ci: enable Rust for breaking-changes jobs
  ci: convert "pedantic" job into full build with breaking changes
  BreakingChanges: announce Rust becoming mandatory
  varint: reimplement as test balloon for Rust
  varint: use explicit width for integers
  help: report on whether or not Rust is enabled
  Makefile: introduce infrastructure to build internal Rust library
  Makefile: reorder sources after includes
  meson: add infrastructure to build internal Rust library
</content>
</entry>
</feed>
