)]}'
{
  "commit": "1769bbc171f0a7eed0c9d32d907d176fe9dff510",
  "tree": "c3dbfa719d9757f72a6d33f6b8b795b546ea344a",
  "parents": [
    "903fc839b21d11015abbc5a44f1068f5e6bb3d8f"
  ],
  "author": {
    "name": "Hajime Hoshi",
    "email": "hajimehoshi@gmail.com",
    "time": "Mon Aug 10 22:38:58 2026 +0900"
  },
  "committer": {
    "name": "Hajime Hoshi",
    "email": "hajimehoshi@gmail.com",
    "time": "Tue Aug 11 09:30:00 2026 -0700"
  },
  "message": "cmd/gomobile: emit replace directives without a version\n\nbind builds the bindings in a generated module and reconstructs its\nbuild list from \u0027go list -m -json all\u0027 run in the original module. For\na replaced module it emitted the replacement scoped to the version the\noriginal module selected, and emitted no requirement at all.\n\nThe generated module requires a different set of modules than the\noriginal one does, so minimal version selection can select a higher\nversion: requirements that module graph pruning hides in the original\nmodule become direct requirements of the generated module. The scoped\ndirective then matches nothing, and the module is fetched from the\nmodule proxy instead of the replacement. Nothing reports an error; the\nbuild just compiles sources other than the ones the original module\nresolves to.\n\nEmit replacements without a version so that they stay effective\nwhichever version is selected, and record the selected version as a\nrequirement.\n\nExtract the translation into parseModuleVersions so that it can be\ntested without running the go command.\n\nFixes golang/go#80816\n\nChange-Id: Ifd93b8b5ed8b216982a804ff9f4bfdf6aa439209\nReviewed-on: https://go-review.googlesource.com/c/mobile/+/812720\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Dmitri Shuralyov \u003cdmitshur@google.com\u003e\nReviewed-by: Mark Freeman \u003cmarkfreeman@google.com\u003e\nReviewed-by: Dmitri Shuralyov \u003cdmitshur@golang.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "785e433b7af931396309fef32f7ee7564343613a",
      "old_mode": 33188,
      "old_path": "cmd/gomobile/bind.go",
      "new_id": "f942246cc662ed95cfd0548cfa57c34d3930e275",
      "new_mode": 33188,
      "new_path": "cmd/gomobile/bind.go"
    },
    {
      "type": "modify",
      "old_id": "e466d712422eb47ac5ac819ac0f79f8cf9e769aa",
      "old_mode": 33188,
      "old_path": "cmd/gomobile/bind_test.go",
      "new_id": "77386a98ae29ec2be4c0e594e2086be5fab72ab1",
      "new_mode": 33188,
      "new_path": "cmd/gomobile/bind_test.go"
    }
  ]
}
