)]}'
{
  "commit": "3347a4b86bb914cb565f0cbda19c06e109513300",
  "tree": "dbdbdbc62ff88cd8931550391255f311cc4a3b0d",
  "parents": [
    "c6f68ac5038b24a027b969dc1bf681a09f138da6"
  ],
  "author": {
    "name": "Jordan Bayles",
    "email": "bayles.jordan@gmail.com",
    "time": "Thu Aug 20 15:44:45 2026 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Aug 20 15:44:45 2026 -0700"
  },
  "message": "docs: modernize doxygen build and publish from this repository (#1711)\n\n* docs: modernize doxygen build and publish from this repository\n\nThe API docs were last published to the separate jsoncpp-docs repo in\nJanuary 2021 (for 1.9.4) and the local doxygen build has been broken\nsince the versioning rework removed the top-level `version` file.\n\nBuild fixes:\n- doxybuild.py reads the version from include/json/version.h instead of\n  a `version` file that CMake only generates in the build directory.\n- doc/doxyfile.in is reduced to the non-default settings (the 2013-era\n  1.8.5 template triggered 17 obsolete-tag warnings on current doxygen)\n  and now sets WARN_AS_ERROR so documentation regressions fail the build.\n- JSONCPP_DEPRECATED/JSON_API are stripped during preprocessing and\n  __cplusplus\u003d201703L is predefined, so deprecated members and the\n  std::string_view overloads are documented.\n\nDocumentation fixes:\n- reader.h / writer.h: a mismatched \u0027settings_` quote opened a backtick\n  span that swallowed the rest of each header, leaving CharReaderBuilder\n  and StreamWriterBuilder effectively undocumented.\n- value.h: document the remaining parameters of Value::get and\n  Value::removeMember.\n- json_value.cpp: hide the private Value::CZString implementation from\n  doxygen with \\cond.\n\nOutput:\n- Style with doxygen-awesome-css v2.4.2 (vendored, MIT) in place of the\n  1.8.13-era header/footer templates; enable tree view and search.\n- Use README.md as the main page; jsoncpp.dox becomes a \"Quick start\"\n  page with the dead SourceForge links removed. Drop the 3-line roadmap\n  stub and the redundant web_doxyfile.in.\n\nPublishing:\n- New docs workflow builds on pull requests (as a warning check) and\n  deploys to GitHub Pages on pushes to master with a pinned,\n  checksum-verified doxygen 1.18.0. README links now point at\n  https://open-source-parsers.github.io/jsoncpp/.\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n\n* docs: pin workflow actions, drop fragile caller graphs\n\nzizmor requires actions pinned to commit SHAs and persist-credentials\noff. The caller graph for Json::Value::Value exceeded doxygen\u0027s node\nlimit in CI, which WARN_AS_ERROR turned into a failure; caller graphs of\nthe implementation add little to API docs, so drop them and leave\nheadroom in DOT_GRAPH_MAX_NODES for the remaining graphs.\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n\n* docs: restrict Pages deploy to master, fix --tarball sources\n\nworkflow_dispatch from a non-master branch could previously publish that\nbranch\u0027s docs over the production site. The tarball list also still\nreferenced NEWS.txt and version, neither of which exists in the tree.\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n\n---------\n\nCo-authored-by: Claude Fable 5 \u003cnoreply@anthropic.com\u003e",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d1b00361715eeab1c7eee394072e9c6b950fdf4e",
      "new_mode": 33188,
      "new_path": ".github/workflows/docs.yml"
    },
    {
      "type": "modify",
      "old_id": "2cbf00b30adf289df11ed81cccab49be99b60ee1",
      "old_mode": 33188,
      "old_path": "README.md",
      "new_id": "4434f98f4f9d7fddda56cb21965709f420457890",
      "new_mode": 33188,
      "new_path": "README.md"
    },
    {
      "type": "modify",
      "old_id": "dcf514ea34dc64525fd154456e2542ff9868a638",
      "old_mode": 33188,
      "old_path": "doc/doxyfile.in",
      "new_id": "de3d97428da62ef60cafe75510e54a5c8e144575",
      "new_mode": 33188,
      "new_path": "doc/doxyfile.in"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8bf804a2a6098284e6342167b72500a67e317948",
      "new_mode": 33188,
      "new_path": "doc/doxygen-awesome-css/LICENSE"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f7c644d6e26b579722fd330ef5f2a460e185fff2",
      "new_mode": 33188,
      "new_path": "doc/doxygen-awesome-css/doxygen-awesome-sidebar-only.css"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8093894ce9b2cae58490f796ede767f4c54032e9",
      "new_mode": 33188,
      "new_path": "doc/doxygen-awesome-css/doxygen-awesome.css"
    },
    {
      "type": "delete",
      "old_id": "a24bf2b9b47e999225289fe8b61b20eb9cfb5cdb",
      "old_mode": 33188,
      "old_path": "doc/footer.html",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "f0b93e084d5be6d10e5b8992420ed67004a427b9",
      "old_mode": 33188,
      "old_path": "doc/header.html",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "f340591fd76b8d1684998a4640f3c43b2875332d",
      "old_mode": 33188,
      "old_path": "doc/jsoncpp.dox",
      "new_id": "07b61e7104dbd9d4b6b09133352fd46b7e69a476",
      "new_mode": 33188,
      "new_path": "doc/jsoncpp.dox"
    },
    {
      "type": "modify",
      "old_id": "0e42cdfb4cfded1d802e4c05141b8942c339a5ed",
      "old_mode": 33188,
      "old_path": "doc/readme.txt",
      "new_id": "46959332ad18d47284113cf3efe536e11df02b51",
      "new_mode": 33188,
      "new_path": "doc/readme.txt"
    },
    {
      "type": "delete",
      "old_id": "12294bbbd29d19869b18b6c274d3a3e19b9fd89b",
      "old_mode": 33188,
      "old_path": "doc/roadmap.dox",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "df09dccaec500e3157f1f24ef3a3662dcadd2ee9",
      "old_mode": 33188,
      "old_path": "doc/web_doxyfile.in",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "254ab714b22c41be1c9bc0b7e936c8448f3382ac",
      "old_mode": 33188,
      "old_path": "doxybuild.py",
      "new_id": "030f1ba023d5b85b2bded7f23b77c3deb6ce4d3d",
      "new_mode": 33188,
      "new_path": "doxybuild.py"
    },
    {
      "type": "modify",
      "old_id": "7aa2271886822e97ec9d6405270ed241b1c02ff0",
      "old_mode": 33188,
      "old_path": "include/json/reader.h",
      "new_id": "d4db75a4d60ea5c49fb9ddc5249012a173c286e1",
      "new_mode": 33188,
      "new_path": "include/json/reader.h"
    },
    {
      "type": "modify",
      "old_id": "f14a71ce5e400c69cf4eaa714cd96cce153edeff",
      "old_mode": 33188,
      "old_path": "include/json/value.h",
      "new_id": "171f20acf972a806ad4122bafe0ccc3af4155b68",
      "new_mode": 33188,
      "new_path": "include/json/value.h"
    },
    {
      "type": "modify",
      "old_id": "7c56a21074209ae63100f8fa0b2392ac2adda08f",
      "old_mode": 33188,
      "old_path": "include/json/writer.h",
      "new_id": "8d1c6e53590ad1345c69eb78c2a1c6581849adba",
      "new_mode": 33188,
      "new_path": "include/json/writer.h"
    },
    {
      "type": "modify",
      "old_id": "6b14c2deb82f9f47a3b82e14a089feef18f240a0",
      "old_mode": 33188,
      "old_path": "src/lib_json/json_value.cpp",
      "new_id": "1725f771b59926aaa1e57016d4cdc0db9fdb1eeb",
      "new_mode": 33188,
      "new_path": "src/lib_json/json_value.cpp"
    }
  ]
}
