)]}'
{
  "commit": "c184795fc0eaf660b4fc06e7ee63aa9c136ff1aa",
  "tree": "986108117b8451fcba2a5b11dfdc8c15fcd1138a",
  "parents": [
    "2462961280690837670d997bde64bd4ebf8ae66d"
  ],
  "author": {
    "name": "Patrick Steinhardt",
    "email": "ps@pks.im",
    "time": "Thu Oct 02 09:29:26 2025 +0200"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Thu Oct 02 09:32:31 2025 -0700"
  },
  "message": "meson: add infrastructure to build internal Rust library\n\nAdd the infrastructure into Meson to build an internal Rust library.\nBuilding the Rust parts of Git are for now entirely optional, as they\nare mostly intended as a test balloon for both Git developers, but also\nfor distributors of Git. So for now, they may contain:\n\n  - New features that are not mission critical to Git and that users can\n    easily live without.\n\n  - Alternative implementations of small subsystems.\n\nIf these test balloons are successful, we will eventually make Rust a\nmandatory dependency for our build process in Git 3.0.\n\nThe availability of a Rust toolchain will be auto-detected by Meson at\nsetup time. This behaviour can be tweaked via the `-Drust\u003d` feature\ntoggle.\n\nNext to the linkable Rust library, also wire up tests that can be\nexecuted via `meson test`. This allows us to use the native unit testing\ncapabilities of Rust.\n\nNote that the Rust edition is currently set to 2018. This edition is\nsupported by Rust 1.49, which is the target for the upcoming gcc-rs\nbackend. For now we don\u0027t use any features of Rust that would require a\nnewer version, so settling on this old version makes sense so that\ngcc-rs may become an alternative backend for compiling Git. If we _do_\nwant to introduce features that were added in more recent editions of\nRust though we should reevaluate that choice.\n\nInspired-by: Ezekiel Newren \u003cezekielnewren@gmail.com\u003e\nSigned-off-by: Patrick Steinhardt \u003cps@pks.im\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "45c9b34981abb311866666d3ef495611b28ffa3b",
      "new_mode": 33188,
      "new_path": "Cargo.toml"
    },
    {
      "type": "modify",
      "old_id": "e8ec0eca1650a5ace7558f71bbe7e133a8f596b6",
      "old_mode": 33188,
      "old_path": "meson.build",
      "new_id": "234a9e9d6fd4613798d95ecf3acf1617f462c144",
      "new_mode": 33188,
      "new_path": "meson.build"
    },
    {
      "type": "modify",
      "old_id": "1668f260a1858cd834234d0b69d9f75780b09a0b",
      "old_mode": 33188,
      "old_path": "meson_options.txt",
      "new_id": "143dee9237cb41727c937bea5cc5ee2f77aa39bc",
      "new_mode": 33188,
      "new_path": "meson_options.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "99400986d935098045b07a94d30f640625cb0d4f",
      "new_mode": 33261,
      "new_path": "src/cargo-meson.sh"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "src/lib.rs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c8d874b2106176f386ac6b33ad007ad37e3225fe",
      "new_mode": 33188,
      "new_path": "src/meson.build"
    }
  ]
}
