)]}'
{
  "commit": "159b6c2067ca96fd3aeaff8800601b16c28ac343",
  "tree": "a7fc9bbda1de6dcd8373aa5e3266d3e99dc073c3",
  "parents": [
    "75ecc2f5796d65ff32f3511af8f71f9e33f546aa"
  ],
  "author": {
    "name": "Richard Levasseur",
    "email": "richardlev@gmail.com",
    "time": "Sat Oct 24 00:21:09 2026 +0000"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sat Oct 24 00:21:09 2026 +0000"
  },
  "message": "fix(toolchains): use target Python version for exec tools on Bazel 10 (#4335)\n\nBazel 10 enables\n`--incompatible_exclude_starlark_flags_from_exec_config` by default\n(bazelbuild/bazel#26909), which resets Starlark flags to their defaults\nin the exec configuration unless they set `scope \u003d \"universal\"`. The\n`//python/config_settings:python_version` flag had no scope, so exec\ntools, such as the precompiler, ran with the default Python version\ninstead of the target\u0027s, e.g. compiling pyc files for the wrong Python\nversion.\n\nTo fix, give the `python_version` flag universal scope so its value\nreaches the exec configuration again, as it did before Bazel 10. The\nflag target sets the scope explicitly because Bazel ignores rule-level\nscope defaults for flags set on the command line\n(bazelbuild/bazel#31806).\n\nAlong the way, run the bazel-in-bazel integration tests with Bazel\n10.0.0rc2, accept Bazel 10\u0027s reworded \"no matching toolchains\" error\nin an integration test, and disable\n`--incompatible_no_implicit_file_export` in the gazelle dev workspace\nbecause the pinned rules_go version isn\u0027t compatible with it.\n\nFixes #3566\nFixes #3613\nWork towards #3581",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8e7e9b649e456e4a6a838ebfb66a066c28515c39",
      "old_mode": 33188,
      "old_path": "MODULE.bazel",
      "new_id": "a03eb49a01e0ec2f9784a7aab3eb37ecd3f5b968",
      "new_mode": 33188,
      "new_path": "MODULE.bazel"
    },
    {
      "type": "modify",
      "old_id": "e30216814a55a43745bba156942ed2a1a21dbfda",
      "old_mode": 33188,
      "old_path": "gazelle/.bazelrc",
      "new_id": "c098d0c392e9f1b2cf75d8e1dbaa32b0aeb32a2b",
      "new_mode": 33188,
      "new_path": "gazelle/.bazelrc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "301765b62b9dcef27434201b567773f64097b008",
      "new_mode": 33188,
      "new_path": "news/3566.fixed.md"
    },
    {
      "type": "modify",
      "old_id": "e4f2cac9b5b5026736fc485762e35afd3d456d8c",
      "old_mode": 33188,
      "old_path": "python/private/config_settings.bzl",
      "new_id": "8711f204eb7bbb255ac22a4e2118c896dd224cdc",
      "new_mode": 33188,
      "new_path": "python/private/config_settings.bzl"
    },
    {
      "type": "modify",
      "old_id": "a0c9d42fc38220a2269553c05c324bd2aa7d5213",
      "old_mode": 33188,
      "old_path": "tests/integration/toolchain_target_settings_test.py",
      "new_id": "4be7d542900493df6cc759d09bed5b0a4e69c06d",
      "new_mode": 33188,
      "new_path": "tests/integration/toolchain_target_settings_test.py"
    }
  ]
}
