)]}'
{
  "commit": "fc9eb556dc101340f98784536ccf35bd98fda638",
  "tree": "b802aaba5ff2b5d2801e9a49d60b95cd9eec1be2",
  "parents": [
    "bc2e038634ebb5d87a6df650a97a0f151550d286"
  ],
  "author": {
    "name": "Jon Roelofs",
    "email": "jonathan_roelofs@apple.com",
    "time": "Fri Aug 01 17:36:38 2025 -0700"
  },
  "committer": {
    "name": "Jon Roelofs",
    "email": "jonathan_roelofs@apple.com",
    "time": "Fri Aug 01 18:00:14 2025 -0700"
  },
  "message": "[GreenDragon] Duplicate and templatize clang-stage2-Rthinlto for bisection\n\nThe new approach modularizes and templatizes the job so that we can\nautomatically bisect build failures down to the commit responsible for them. The\nnew jobs written in this style use the name-inspecting symlink trick that clang\nitself uses to determine driver mode, for organizational simplicity and\ndeduplication of configuration. For now, I am duplicating the job wholesale,\nuntil we\u0027re comfortable with replacing all of the existing clang-* jobs with\nthis style.\n\nAs part of this, we\u0027re adding a templatized bisection job and corresponding\nrunner. Currently, these cooperate to bisect the clang-stage2-Rthinlto-v2 job\u0027s\nfailures, but going forward we should be set up to re-use that for any other\njob\u0027s bisection needs. We will also be well set up to add a test bisection\nrunner, which could leverage the artifacts saved to S3 as a caching mechanism to\nspeed up the search.\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5bfe79e903630a4bb6065978b8233e1e0dcc5363",
      "new_mode": 33188,
      "new_path": "zorg/jenkins/jobs/jobs/build-bisect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "70d0caccc49689149e81b447fdf38bcb79b88bbc",
      "new_mode": 33188,
      "new_path": "zorg/jenkins/jobs/jobs/build-bisect-run"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "220028ad24ad423d3dbd5f4a023911df6ee0391d",
      "new_mode": 40960,
      "new_path": "zorg/jenkins/jobs/jobs/clang-stage2-Rthinlto-v2"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d628126f9274ef2e53bf2ebb542db74d5a8cf187",
      "new_mode": 33188,
      "new_path": "zorg/jenkins/jobs/jobs/templated-clang-job.groovy"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7c81165ca47d55e00701541787d3b88d30a7b7d5",
      "new_mode": 33188,
      "new_path": "zorg/jenkins/lib/builders/ClangBuilder.groovy"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3bed98c4c1f453d05b028f3a84e6a1e7b5ef5fe2",
      "new_mode": 33188,
      "new_path": "zorg/jenkins/lib/templates/clang-stage2-Rthinlto.groovy"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c558703b8804097ebf91d9cb2aef854b13e3b75a",
      "new_mode": 33188,
      "new_path": "zorg/jenkins/lib/utils/BisectionUtils.groovy"
    }
  ]
}
