)]}'
{
  "commit": "f633325d323c68127b0c61af6c347a9b8c60bd99",
  "tree": "f7a29f3d3fed80bda69cd7732b1c085386155088",
  "parents": [
    "31bbda0288f19fe06d395a325589e470d53bc6a1"
  ],
  "author": {
    "name": "Aidan Wolter",
    "email": "awolter@google.com",
    "time": "Fri Jun 05 09:05:53 2026 -0700"
  },
  "committer": {
    "name": "fuchsia-internal-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "fuchsia-internal-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Fri Jun 05 09:05:53 2026 -0700"
  },
  "message": "[project] Implement package cache for main tree\n\nImplement a package cache to avoid downloading/copying packages\nmultiple times. This will also support sharing packages across\nworktrees (a feature coming soon).\n\n- Add configuration to jiri.X for enabling the cache.\n- Implement caching and transition logic in project/cache.go.\n  When enabled, packages are cached under .jiri_root/packages/\u003chash\u003e\n  and symlinked to their destination. Transition (migration/restoration)\n  is performed dynamically during the fetch/download process.\n- Add unit and integration tests for transitions.\n\nThe cache can be enabled/disabled using:\n  jiri init -package-cache\u003dtrue|false\n\nManually tested by:\n1) Start with package cache disabled.\n2) Run \u0027jiri update\u0027.\n3) Enable package cache: \u0027jiri init -package-cache\u003dtrue\u0027.\n4) Run \u0027jiri update\u0027.\n5) Disable package cache: \u0027jiri init -package-cache\u003dfalse\u0027.\n6) Run \u0027jiri update\u0027.\n\nTest: go test ./...\nBug: 516876349\nChange-Id: I2a49f7f1fdc6499e38d5663d5562f71ddca75813\nReviewed-on: https://fuchsia-review.googlesource.com/c/jiri/+/1627999\nReviewed-by: Oliver Newman \u003colivernewman@google.com\u003e\nFuchsia-Auto-Submit: Aidan Wolter \u003cawolter@google.com\u003e\nCommit-Queue: Aidan Wolter \u003cawolter@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7fd28f7e2fdaf532a4478b0e9136985eb41e580c",
      "old_mode": 33188,
      "old_path": "cmd/jiri/subcommands/init.go",
      "new_id": "af4962240a43d886dedddca6a0846bcf4e20b788",
      "new_mode": 33188,
      "new_path": "cmd/jiri/subcommands/init.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "57ff55aea2a16b235396d90ecf53a9b16a847578",
      "new_mode": 33188,
      "new_path": "integrationtests/package_cache_toggle_test.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ed4bb96edb571b3fdd4b62df62a94bab63e343e1",
      "new_mode": 33188,
      "new_path": "project/cache.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "88b3546f6d8ad59c6c861e845aac33a563419767",
      "new_mode": 33188,
      "new_path": "project/cache_test.go"
    },
    {
      "type": "modify",
      "old_id": "6ff656e724bea242748849c897b04a2c6a240ec6",
      "old_mode": 33188,
      "old_path": "project/internal_test.go",
      "new_id": "bbdac2cd87cb13944237930ec88b5e876943586e",
      "new_mode": 33188,
      "new_path": "project/internal_test.go"
    },
    {
      "type": "modify",
      "old_id": "2ee063ef47a3ca2561195e0164d77d9371b978c6",
      "old_mode": 33188,
      "old_path": "project/manifest.go",
      "new_id": "d5076265abc5c191ea419b743d7078986a45e10a",
      "new_mode": 33188,
      "new_path": "project/manifest.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cb9145b45e5cced0a79f4998fb3db0d6734d59ac",
      "new_mode": 33188,
      "new_path": "project/transition_test.go"
    },
    {
      "type": "modify",
      "old_id": "ffbc8bbf1df3e413bb249cc94f8b07eae08cedc0",
      "old_mode": 33188,
      "old_path": "x.go",
      "new_id": "4431bcec00f9b51c2bd1b2226ab45815b2157228",
      "new_mode": 33188,
      "new_path": "x.go"
    },
    {
      "type": "modify",
      "old_id": "a4b6dff19fbdbd8555e7e418ee243d3470eaff1c",
      "old_mode": 33188,
      "old_path": "x_test.go",
      "new_id": "57a590de5e1c197af5220e55a9787f7620554742",
      "new_mode": 33188,
      "new_path": "x_test.go"
    }
  ]
}
