)]}'
{
  "commit": "6da7aa0442c1f79194ffff1300face951d42ccb9",
  "tree": "3b0d7104200f556b9c19eb90c43d1afa4a24b7f2",
  "parents": [
    "618c0916a358db1db5ac0ef608ff34d7d77ec303"
  ],
  "author": {
    "name": "Xiaoyi",
    "email": "ashi009@users.noreply.github.com",
    "time": "Tue Jul 28 01:26:44 2026 +0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Jul 27 17:26:44 2026 +0000"
  },
  "message": "crate_universe: move build-script dep to extra_deps (#4090)\n\nFixes #4089.\n\nA crate with a build script depends on its own `build_script_build`\ntarget. That edge was stored in `common_attrs.deps`, which\n`Context::workspace_member_deps()` collects to emit crate-hub aliases —\nso a library crate with a build script got a dead crate-hub alias for\nitself.\n\nStore the edge in `common_attrs.extra_deps` instead:\n`workspace_member_deps()` does not read `extra_deps`, so the\nself-reference no longer yields an alias. (`extra_deps` holds resolved\nlabels, so the edge becomes a relative `:build_script_build` — same\ntarget, same package.)\n\nCo-authored-by: UebelAndre \u003cgithub@uebelandre.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2c2ec03c9a276cc7dcd1757ff29e9a18d7ac0ede",
      "old_mode": 33188,
      "old_path": "crate_universe/src/context.rs",
      "new_id": "de5225b24ece2285dda3bd3b3374d9954c33d8c9",
      "new_mode": 33188,
      "new_path": "crate_universe/src/context.rs"
    },
    {
      "type": "modify",
      "old_id": "97eeee3949a9d12f4d66dbc6f72895d775e15e3b",
      "old_mode": 33188,
      "old_path": "crate_universe/src/context/crate_context.rs",
      "new_id": "f76b20a63c34c891864499ffcfe7cfc0dd8ddfa4",
      "new_mode": 33188,
      "new_path": "crate_universe/src/context/crate_context.rs"
    }
  ]
}
