)]}'
{
  "commit": "800aa28c493590c539cb7baf445016cc9b8702ef",
  "tree": "175cfb6da0c6426848009496a2c698de4a4388bf",
  "parents": [
    "22c7ec3a05beb55810dda4e5d79b9763a21a8ddf"
  ],
  "author": {
    "name": "Jordan Bayles",
    "email": "bayles.jordan@gmail.com",
    "time": "Wed Jun 17 01:07:12 2026 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Jun 17 01:07:12 2026 -0700"
  },
  "message": "fix: bump SOVERSION to 28 for the removed std::string_view symbols (#1694) (#1697)\n\nThe std::string_view convenience methods (Value(std::string_view),\ngetString, operator[], get, removeMember, isMember) were exported\nsymbols in 1.9.7 -- declared in value.h and defined out-of-line in\nvalue.cpp. After 1.9.7 the #1661/#1675 ABI-mismatch fixes made them\nheader-only `inline`, which removed those symbols from the shared\nlibrary (e.g. Value::removeMember(std::string_view)), but SOVERSION\nstayed at 27.\n\nRemoving exported symbols is an incompatible ABI change, so consumers\nbuilt against 1.9.7\u0027s libjsoncpp.so.27 fail to resolve those symbols\nagainst later builds that still claim SONAME .so.27 (issue #1694: a\nsystem jsoncpp upgrade broke cmake/NFS Ganesha with an undefined-symbol\nerror). Bump SOVERSION 27 -\u003e 28 so the changed ABI gets a distinct\nSONAME; affected consumers then get a clean rebuild requirement instead\nof a symbol-lookup crash, and a rebuild against 1.10.0 uses the inline\nmethods (no symbol dependency).\n\nThe symbols are intentionally not restored: an exported std::string_view\nsymbol\u0027s presence depends on whether the library was compiled as C++17,\nwhich is the mismatch #1661 fixed.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d8e6d4cfab94ac68373c1a404e40c49c8f4fdf14",
      "old_mode": 33188,
      "old_path": "CMakeLists.txt",
      "new_id": "5d977b71cac4b982bbd353e25b79238529c5075f",
      "new_mode": 33188,
      "new_path": "CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "380b7e2bd7e00931f8163c43df3c5d0c05308579",
      "old_mode": 33188,
      "old_path": "meson.build",
      "new_id": "858675d9ee7bd0ebf09445ee05d1b00a398eb0fb",
      "new_mode": 33188,
      "new_path": "meson.build"
    }
  ]
}
