)]}'
{
  "commit": "aa92053d04e929075aee237740bce9c0cc46590b",
  "tree": "6395912542a7e15a637d766c16637bd488a5d320",
  "parents": [
    "6bcedae5720dd8919b06f181aa906082d713d32a"
  ],
  "author": {
    "name": "Kai Ninomiya",
    "email": "kainino@chromium.org",
    "time": "Mon Jul 06 22:59:34 2026 -0700"
  },
  "committer": {
    "name": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Jul 06 22:59:34 2026 -0700"
  },
  "message": "Add script to run clang-tidy over all code\n\n- Add a DEP on the repo that contains the Tricium script to run\n  clang-tidy (because for some reason we don\u0027t have the \"official\"\n  run-clang-tidy.py, and it\u0027s not practical to invoke directly).\n- Add a wrapper script that limits clang-tidy to running only on our\n  source files.\n- Update the instructions and add a bunch of info on how to do things.\n- Switch .clang-tidy to a more maintainable format.\n  - Disable readability-use-concise-preprocessor-directives because it\n    triggers a lot and isn\u0027t important.\n\nExample output:\n\n$ tools/run-tricium-clang-tidy.py\nusage: run-tricium-clang-tidy.py [-h] --clean | --no-clean [--stdout-only]\n                                 outdir (--default | --all | sources ...)\nrun-tricium-clang-tidy.py: error: the following arguments are required: --clean/--no-clean, outdir\n\n$ tools/run-tricium-clang-tidy.py --help\nusage: run-tricium-clang-tidy.py [-h] --clean | --no-clean [--stdout-only]\n                                 outdir (--default | --all | sources ...)\n\nRun clang-tidy on Dawn source files and directories.\n\npositional arguments:\n  outdir               The build directory, e.g., out/debug\n  sources              Specific source files and/or directories to run clang-tidy on.\n\noptions:\n  -h, --help           show this help message and exit\n  --clean, --no-clean  Pass --clean to clean the build before building and running clang-tidy.\n                       Pass --no-clean to skip that, and promise there are no leftover no-\n                       longer-used generated files from old Dawn revisions.\n  --stdout-only        Print the summary to stdout instead of saving the JSON and summary files\n                       to disk. Useful when iterating on a specific small directory of files.\n  --default            Use default sources (all of our source files).\n  --all                Run across all C/C++ files known to ninja (not recommended).\n\n$ tools/run-tricium-clang-tidy.py --no-clean out/d src/utils\n...\nFull findings JSON saved to clang-tidy-2026-06-30_222318-findings.json\nReadable summary saved to clang-tidy-2026-06-30_222318-summary.txt\n\n$ cat clang-tidy-2026-06-30_222318-summary.txt\nCommand line:\n  tools/run-tricium-clang-tidy.py --no-clean out/d src/utils\n\nFiles that failed with no associated diagnostics:\n\nCompiler diagnostics (clang-diagnostic-*):\n\nClang-Tidy diagnostics:\n  src/utils/assert.cc:46: do not use inline assembler in safety-critical code [portability-no-assembler]\n  src/utils/chromium_test_compat/chromium_test_compat.cc:62: C-style casts are discouraged; use static_cast [modernize-avoid-c-style-cast]\n  src/utils/span.h:170: single-argument constructors must be marked explicit to avoid unintentional implicit conversions [cppcoreguidelines-explicit-constructor]\n  src/utils/span.h:175: single-argument constructors must be marked explicit to avoid unintentional implicit conversions [cppcoreguidelines-explicit-constructor]\n  src/utils/underlying_type.h:62: redundant \u0027typename\u0027 [readability-redundant-typename]\n  src/utils/underlying_type.h:67: redundant \u0027typename\u0027 [readability-redundant-typename]\n\nBug: 501491694\nChange-Id: Ieae94b4bf7f68cf613bcbec6c1116a1dcafc02cf\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/314375\nReviewed-by: dan sinclair \u003cdsinclair@chromium.org\u003e\nCommit-Queue: Kai Ninomiya \u003ckainino@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5689b27ff92dc33ed39e6751c611ce1c0b4558e7",
      "old_mode": 33188,
      "old_path": ".clang-tidy",
      "new_id": "36d0bcc31d60a5ff44ea9fc817211bea72eb8e5b",
      "new_mode": 33188,
      "new_path": ".clang-tidy"
    },
    {
      "type": "modify",
      "old_id": "2a7da1d7f881f7340bb70f44deee35aaa0c07368",
      "old_mode": 33188,
      "old_path": ".gitignore",
      "new_id": "d3c2fe12f2065dea219c21c19a8cbbe6b9722e07",
      "new_mode": 33188,
      "new_path": ".gitignore"
    },
    {
      "type": "modify",
      "old_id": "923dfa5298d2107a006b20ab66397964a92ead44",
      "old_mode": 33188,
      "old_path": ".gitmodules",
      "new_id": "71073f9bf7346a115c0bb6187a5325d53f00971b",
      "new_mode": 33188,
      "new_path": ".gitmodules"
    },
    {
      "type": "modify",
      "old_id": "3f0978e754e9e1877459269b8ad6ee9c4550a809",
      "old_mode": 33188,
      "old_path": "DEPS",
      "new_id": "e004a88003064e390c26bc087e2ec8e0e21c9f20",
      "new_mode": 33188,
      "new_path": "DEPS"
    },
    {
      "type": "modify",
      "old_id": "e2f9738c7fde67f03d2037fbc91db04c2aa126b2",
      "old_mode": 33188,
      "old_path": "docs/clang-tidy.md",
      "new_id": "338c03d16d942778bfc42ad4e70a1d4d00f91dcd",
      "new_mode": 33188,
      "new_path": "docs/clang-tidy.md"
    },
    {
      "type": "modify",
      "old_id": "5dbeded18c1e0f66804033e53677ffa5d744db00",
      "old_mode": 33261,
      "old_path": "scripts/roll_chromium_deps.py",
      "new_id": "85e35c43a4e8dd82ce5add39ea559d2789968b43",
      "new_mode": 33261,
      "new_path": "scripts/roll_chromium_deps.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4e0efce45b87b3f218a89691a81da6cd09d3f1e1",
      "new_mode": 57344,
      "new_path": "third_party/chromium-tools-build/src"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "01f4441aee3aa15646fb1c1b6051fe0bc50bc484",
      "new_mode": 33261,
      "new_path": "tools/run-tricium-clang-tidy.py"
    }
  ]
}
