)]}'
{
  "commit": "5eff339f75ea663151b9df7e68c18c417ea91d62",
  "tree": "9c3c60e4d1555ec6f9a4a9b1480e9d972bb70bc9",
  "parents": [
    "dac8a5fb78645ba20b0332f22621c1a004cbe85a"
  ],
  "author": {
    "name": "Ignas Anikevicius",
    "email": "240938+aignas@users.noreply.github.com",
    "time": "Thu Aug 22 18:39:32 2024 +0300"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Aug 22 15:39:32 2024 +0000"
  },
  "message": "fix(bzlmod): keep the lockfile platform independent when resolving python (#2135)\n\nBefore this PR the lockfile would become platform dependent when the\n`requirements` file would have env markers. This was not caught because\nwe do not have MODULE.bazel.lock checked into the `rules_python`\nrepository because the CI is running against many versions and the lock\nfile is different, therefore we would not be able to run with\n`bazel build --lockfile_mode\u003derror`.\n\nWith this change we use the label to `BUILD.bazel` which is living next\nto the `python` symlink and since the `BUILD.bazel` is the same on all\nplatforms, the lockfile will remain the same.\n\nSummary\n* refactor(uv): create a reusable macro for using uv for locking reqs.\n* test(bzlmod): enable testing the MODULE.bazel.lock breakage across\nplatforms.\n* test(bzlmod): use a universal requirements file for 3.9.\nThis breaks the CI, because the python interpreter file hash is added to\nthe lock file.\n* fix(bzlmod): keep the lockfile platform independent when resolving\npython\n\n\nFixes #1105 and #1868 for real this time.\nImplements an additional helper for #1975.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b778ac49a4a442d6d7dd42d6bb50ceb9189916d5",
      "old_mode": 33188,
      "old_path": ".bazelci/presubmit.yml",
      "new_id": "43c52f411480a6962c1eca6838394bc0315545ae",
      "new_mode": 33188,
      "new_path": ".bazelci/presubmit.yml"
    },
    {
      "type": "modify",
      "old_id": "863b0e9c3f0fcdcd6910bd5991573c98ee5ce7e2",
      "old_mode": 33188,
      "old_path": ".gitignore",
      "new_id": "92b5801a529028d3f94b46f9fadc7a779b899434",
      "new_mode": 33188,
      "new_path": ".gitignore"
    },
    {
      "type": "modify",
      "old_id": "2e29017535ca4e9e24ff2f41dc9a6ad03f13ebe2",
      "old_mode": 33188,
      "old_path": "CHANGELOG.md",
      "new_id": "029de8ae110a895dc5a4654901e31b3fda01476f",
      "new_mode": 33188,
      "new_path": "CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "56bca8838f2ab19dfadf53f6d37d9bd2b4505c01",
      "old_mode": 33188,
      "old_path": "docs/BUILD.bazel",
      "new_id": "0c815940bab68d39dd0e7d23cf8b932d3306e716",
      "new_mode": 33188,
      "new_path": "docs/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "f6372eabec86e8182103a26013c1074e418b6c52",
      "old_mode": 33188,
      "old_path": "examples/BUILD.bazel",
      "new_id": "92ca8e7199ab4047ba6289959131479b3df27f9a",
      "new_mode": 33188,
      "new_path": "examples/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "578342d7ee6937354ffdf01ee0adef34e023914d",
      "old_mode": 33188,
      "old_path": "examples/bzlmod/.bazelrc",
      "new_id": "64e17c3175935f1eb6ceb5f13029441dc61582fb",
      "new_mode": 33188,
      "new_path": "examples/bzlmod/.bazelrc"
    },
    {
      "type": "modify",
      "old_id": "bb16f98a6f6aaccc234ae2fbc178dd2cecd5d181",
      "old_mode": 33188,
      "old_path": "examples/bzlmod/BUILD.bazel",
      "new_id": "d684b9c31d694522318ed9a514b130c388f822c5",
      "new_mode": 33188,
      "new_path": "examples/bzlmod/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "3da17a6eb24db5adbd85e42d32c9d3c5862181f2",
      "old_mode": 33188,
      "old_path": "examples/bzlmod/MODULE.bazel",
      "new_id": "b7b46b7dba905053d84649d28257d2ccf003463b",
      "new_mode": 33188,
      "new_path": "examples/bzlmod/MODULE.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e542f43b0a4c1a10545e07fc2b45f22d19961f76",
      "new_mode": 33188,
      "new_path": "examples/bzlmod/MODULE.bazel.lock"
    },
    {
      "type": "modify",
      "old_id": "e6aaa992fb5f8cc3cc5640b587bc3500df551f7a",
      "old_mode": 33188,
      "old_path": "examples/bzlmod/requirements_lock_3_9.txt",
      "new_id": "bfabfd5fa5ea1bea901805582f0ce42c513ef032",
      "new_mode": 33188,
      "new_path": "examples/bzlmod/requirements_lock_3_9.txt"
    },
    {
      "type": "delete",
      "old_id": "636b4dfc3e91dbc3c5364b0abe82a7e3f03f1ce9",
      "old_mode": 33188,
      "old_path": "examples/bzlmod/requirements_windows_3_9.txt",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "da449b4b506761a58b489fc7896667bf4dee7cdb",
      "old_mode": 33188,
      "old_path": "python/private/pypi/pypi_repo_utils.bzl",
      "new_id": "196431636f336bfcbbcb25de0cb987a0c329c4b8",
      "new_mode": 33188,
      "new_path": "python/private/pypi/pypi_repo_utils.bzl"
    },
    {
      "type": "modify",
      "old_id": "aab0325a49e2671a55996e05ce67cd1319125fdf",
      "old_mode": 33188,
      "old_path": "python/private/repo_utils.bzl",
      "new_id": "e0bf69acac9f82b878000933f04a3e177cd8cf48",
      "new_mode": 33188,
      "new_path": "python/private/repo_utils.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f0a66a1a93e4adf984fc97fa18327129a57f7aa9",
      "new_mode": 33188,
      "new_path": "python/uv/private/lock.bzl"
    }
  ]
}
