)]}'
{
  "commit": "df7a931b99e42e38b8681ecf17d3e0129e6ad06c",
  "tree": "ec6ce63742dff1812b2cf291a77f97228d911642",
  "parents": [
    "0f85e3088874f1929456b418c773d19061c4b1bd"
  ],
  "author": {
    "name": "Steven Troxler",
    "email": "stroxler@meta.com",
    "time": "Tue Aug 18 09:49:56 2026 -0700"
  },
  "committer": {
    "name": "Facebook GitHub Bot",
    "email": "facebook-github-bot@users.noreply.github.com",
    "time": "Tue Aug 18 09:49:56 2026 -0700"
  },
  "message": "Run conformance tests in GitHub CI (#4579)\n\nSummary:\n\nThe typing conformance suite only runs inside Meta, via the `conformance_output_test` Buck target. On GitHub nothing invokes it, so a PR that changes pyrefly\u0027s conformance output goes green while leaving the checked-in `conformance.exp` stale. The mismatch only surfaces later, when the change is imported internally and fails there.\n\nAdd a step to the `pyrefly` workflow that runs `conformance_output.py --mode check` against the release binary that job already built, matching what internal CI checks. The step is restricted to Linux: the generated output does not vary by platform, so one OS suffices, and the check cannot run on Windows because it keys results by splitting paths on `/`.\n\nThe check-mode failure message told the reader to re-generate the output with `buck2`, which a GitHub contributor has no way to run. It now branches on whether `--executable` was passed, since that flag is precisely the signal that the caller is outside Buck, and prints the corresponding cargo-based command.\n\nReviewed By: ndmitchell, rchen152\n\nDifferential Revision: D116394357\n\n\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6546e0eae35ce08efa749faf6c19f16836cb6770",
      "old_mode": 33188,
      "old_path": ".github/workflows/pyrefly.yml",
      "new_id": "2d23bdc21d0ced6668175f69c14debff12d07d11",
      "new_mode": 33188,
      "new_path": ".github/workflows/pyrefly.yml"
    },
    {
      "type": "modify",
      "old_id": "3c5eb008e8a564b5bf982d4f19cc5d1b9cd6ab9e",
      "old_mode": 33188,
      "old_path": "conformance/conformance_output.py",
      "new_id": "4540ea67d9f2d39679c48e07e84c28b2fa34d83e",
      "new_mode": 33188,
      "new_path": "conformance/conformance_output.py"
    }
  ]
}
