)]}'
{
  "commit": "b92927d86ca202c72bd981d208149fd788511b6d",
  "tree": "60d0ddca3767074b4c546b7b8e32601888ea8a97",
  "parents": [
    "93eda704fe252af0213ad71fad566c3c0b4f3660"
  ],
  "author": {
    "name": "Ignas Anikevicius",
    "email": "240938+aignas@users.noreply.github.com",
    "time": "Sun Sep 22 14:11:13 2024 +0900"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sun Sep 22 05:11:13 2024 +0000"
  },
  "message": "feat(bzlmod): add python.override APIs (#2222)\n\nBefore this PR the users could not override how the hermetic toolchain\nis downloaded when in `bzlmod`. However, the same APIs would be\navailable to users using `WORKSPACE`. With this we also allow root\nmodules to restrict which toolchain versions the non-root modules, which\nmay be helpful when optimizing the CI runtimes so that we don\u0027t waste\ntime downloading multiple `micro` versions of the same `3.X` python\nversion, which most of the times have identical behavior.\n\nWhilst at it, tweak the `semver` implementation to allow for testing of\nabsence of values in the original input.\n\nWork towards #2081 and this should be one of the last items that are\nblocking #1361 from the API point of view.\n\nReplaces #2151.\n\n---------\n\nCo-authored-by: Richard Levasseur \u003crichardlev@gmail.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b484751c3c235dde37996bb354050527b192a468",
      "old_mode": 33188,
      "old_path": ".bazelrc",
      "new_id": "1ca469cd75584b0f2ebf438dba46f3cf23df84f1",
      "new_mode": 33188,
      "new_path": ".bazelrc"
    },
    {
      "type": "modify",
      "old_id": "88a8378cd167c6aa7ab33e275333e40cac364d02",
      "old_mode": 33188,
      "old_path": "CHANGELOG.md",
      "new_id": "0fd84923eead64a64493fbcec321a3aef2c99783",
      "new_mode": 33188,
      "new_path": "CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "424b4f84c14f6c3d207c30fc86c94f4d92e496f2",
      "old_mode": 33188,
      "old_path": "MODULE.bazel",
      "new_id": "58c7ae229b5b00a50da94118327872a32362116a",
      "new_mode": 33188,
      "new_path": "MODULE.bazel"
    },
    {
      "type": "modify",
      "old_id": "2ac0099304f852508358fb0a743ad00a0d06209f",
      "old_mode": 33188,
      "old_path": "docs/toolchains.md",
      "new_id": "6df6f22a2aa86b1800fc7f036e5d4f4cdcbd7e70",
      "new_mode": 33188,
      "new_path": "docs/toolchains.md"
    },
    {
      "type": "modify",
      "old_id": "b7b46b7dba905053d84649d28257d2ccf003463b",
      "old_mode": 33188,
      "old_path": "examples/bzlmod/MODULE.bazel",
      "new_id": "4ac81910516018bd9841dee9a67c5d739dea6eb9",
      "new_mode": 33188,
      "new_path": "examples/bzlmod/MODULE.bazel"
    },
    {
      "type": "modify",
      "old_id": "234dc46cab08ebfd29dfe99e16aaf4a39056e577",
      "old_mode": 33188,
      "old_path": "examples/bzlmod/MODULE.bazel.lock",
      "new_id": "cb8fbe287c70f189e54fef14feffe1228c7f9bda",
      "new_mode": 33188,
      "new_path": "examples/bzlmod/MODULE.bazel.lock"
    },
    {
      "type": "modify",
      "old_id": "4148d9087752eded2344bbc2e84abf7c015926fb",
      "old_mode": 33188,
      "old_path": "python/extensions/python.bzl",
      "new_id": "0f0da006a7779365b235e59c4e7b35ebd9d50381",
      "new_mode": 33188,
      "new_path": "python/extensions/python.bzl"
    },
    {
      "type": "modify",
      "old_id": "5fa551454eac5e820fa75e6b0382c7adca9687c4",
      "old_mode": 33188,
      "old_path": "python/private/BUILD.bazel",
      "new_id": "bfe3764296361ae8a3da9eb5d819369d0970ad4d",
      "new_mode": 33188,
      "new_path": "python/private/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "dd40f76a00e7eb7c8566cec4e0e80df52db4d18e",
      "old_mode": 33188,
      "old_path": "python/private/common/py_runtime_rule.bzl",
      "new_id": "b339425099dd216c1777e8ff8a20006e131005d3",
      "new_mode": 33188,
      "new_path": "python/private/common/py_runtime_rule.bzl"
    },
    {
      "type": "modify",
      "old_id": "ace3750a2b135c2b540da62f282da3a3e9e8a684",
      "old_mode": 33188,
      "old_path": "python/private/py_repositories.bzl",
      "new_id": "8ddcb5d3a78fe4708e55ebd83e475e5b1fb10618",
      "new_mode": 33188,
      "new_path": "python/private/py_repositories.bzl"
    },
    {
      "type": "modify",
      "old_id": "2b25bfbfb4aea8029392ffa3c4d61527c3c4a960",
      "old_mode": 33188,
      "old_path": "python/private/pypi/BUILD.bazel",
      "new_id": "8cfd3d6525c866a01aec4162387fbd34d585d948",
      "new_mode": 33188,
      "new_path": "python/private/pypi/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "98b089f7ca9e2751774690fab89139680a30582d",
      "old_mode": 33188,
      "old_path": "python/private/python.bzl",
      "new_id": "cedf39a5c7749b5bc4f6df3b827d648b0084aa39",
      "new_mode": 33188,
      "new_path": "python/private/python.bzl"
    },
    {
      "type": "modify",
      "old_id": "7638d76313e475e5e07004aab7c12a7665c8b18e",
      "old_mode": 33188,
      "old_path": "python/private/python_register_toolchains.bzl",
      "new_id": "d20e0496102322fa1db6a39a895126a2b8f4745e",
      "new_mode": 33188,
      "new_path": "python/private/python_register_toolchains.bzl"
    },
    {
      "type": "modify",
      "old_id": "28a2c959ddd9634ca4dc301002f823d6de1869dd",
      "old_mode": 33188,
      "old_path": "python/private/python_repository.bzl",
      "new_id": "2710299b39c92f79959ad1f9922baa9e370af2f5",
      "new_mode": 33188,
      "new_path": "python/private/python_repository.bzl"
    },
    {
      "type": "modify",
      "old_id": "d77249ff9f428ca3ae10bb1c3658fa91d7027e39",
      "old_mode": 33188,
      "old_path": "python/private/semver.bzl",
      "new_id": "73d6b130aed3a92b5e012c920ea9d8611b8f7a4c",
      "new_mode": 33188,
      "new_path": "python/private/semver.bzl"
    },
    {
      "type": "modify",
      "old_id": "528b86fc3bf32d1e501abe047222513054c6bc5f",
      "old_mode": 33188,
      "old_path": "python/private/toolchains_repo.bzl",
      "new_id": "4fae987c74642f8048903baed0395ae6e82734c4",
      "new_mode": 33188,
      "new_path": "python/private/toolchains_repo.bzl"
    },
    {
      "type": "modify",
      "old_id": "98715b32ec2e81eab5732313682d8383195976a1",
      "old_mode": 33188,
      "old_path": "tests/integration/ignore_root_user_error/bzlmod_test.py",
      "new_id": "128341598777e9e01aaad10ded6a0424c3ff9403",
      "new_mode": 33188,
      "new_path": "tests/integration/ignore_root_user_error/bzlmod_test.py"
    },
    {
      "type": "modify",
      "old_id": "acbd6676dc9261c358d28ba5e68fd79a6b69d2c1",
      "old_mode": 33188,
      "old_path": "tests/python/python_tests.bzl",
      "new_id": "101313da4fda391b8904ba7ae0ece5184111dd04",
      "new_mode": 33188,
      "new_path": "tests/python/python_tests.bzl"
    },
    {
      "type": "modify",
      "old_id": "63956398100843d4939a407b2fcabcb2d943c631",
      "old_mode": 33188,
      "old_path": "tests/semver/semver_test.bzl",
      "new_id": "9d13402c9210edfd327ede59df9618337cca7983",
      "new_mode": 33188,
      "new_path": "tests/semver/semver_test.bzl"
    }
  ]
}
