)]}'
{
  "commit": "7d7959bdbe9745e3b78f791e900e6ad6781a746d",
  "tree": "31dad05ce09267e0592aec4f6033fa1aaf33efab",
  "parents": [
    "d6f5be3f356de3096cea6c72376d56d450cc8002"
  ],
  "author": {
    "name": "Johannes Schindelin",
    "email": "johannes.schindelin@gmx.de",
    "time": "Fri Sep 11 19:08:50 2026 +0000"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Fri Sep 11 13:59:58 2026 -0700"
  },
  "message": "ci(windows): build with Rust\n\nThe Windows runners used by Git\u0027s GitHub workflow\u0027s `windows-build` job\nship `rustup` plus a `*-pc-windows-msvc` default toolchain (see\nhttps://github.com/actions/runner-images/blob/main/images/windows/Windows2022-Readme.md\nand\nhttps://github.com/actions/partner-runner-images/blob/main/images/arm-windows-11-image.md),\nbut no precompiled `std` for `*-pc-windows-gnu` or\n`*-pc-windows-gnullvm`. With the Makefile now picking a GCC-compatible\ntarget triple based on `$(MSYSTEM)`, the build step needs that\nprecompiled `std` to be installed before invoking `make`, otherwise\n`cargo build --target \u003ctriple\u003e` fails to find a usable `std` for the\nchosen target.\n\nAdd a step between the SDK setup and the `make` invocation that selects\nthe matching triple from `$MSYSTEM` (which\n`git-for-windows/setup-git-for-windows-sdk` exports for every subsequent\nstep) and runs `rustup target add` for it. The mapping mirrors what\n`config.mak.uname` derives from `$(MSYSTEM)` and `$(HOST_CPU)`, just\nenumerated explicitly here since CI has direct knowledge of which MSYS2\nsubsystems the matrix actually exercises (`CLANGARM64` for the ARM64\nrunner, `MINGW64` for the x86_64 runner). Technically, we only need to\nhandle MINGW64 at present, but the switch to UCRT64 is imminent, and the\nother case arms serve as a very fine documentation of what people should\ndo for other MSYSTEM values.\n\nFor a `staticlib` crate-type `cargo build` does not invoke an external\nlinker, so no further toolchain components (e.g. the `gnullvm` LLVM\nlinker) need to be installed; `rustup target add` alone is sufficient.\n\nAssisted-by: Claude Opus 4.7\nHelped-by: Junio C Hamano \u003cgitster@pobox.com\u003e\nSigned-off-by: Johannes Schindelin \u003cjohannes.schindelin@gmx.de\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "85cfedf5b0e0a46e460c833ad3933f9920a7f78d",
      "old_mode": 33188,
      "old_path": ".github/workflows/main.yml",
      "new_id": "097254739571545175450500d9eec2c5040bfbd5",
      "new_mode": 33188,
      "new_path": ".github/workflows/main.yml"
    },
    {
      "type": "modify",
      "old_id": "6c52154eac11e90980bbe5cff5d4af10ab44c6a8",
      "old_mode": 33261,
      "old_path": "ci/lib.sh",
      "new_id": "c6ccbf8c171dd785a9b7be734ac101df73bcd260",
      "new_mode": 33261,
      "new_path": "ci/lib.sh"
    }
  ]
}
