)]}'
{
  "commit": "3cffc5c069ffc0e6670f93828d92bd154f28a4b7",
  "tree": "8e3c722c6d55f270608d56f9b1519359a2fdd2fd",
  "parents": [
    "f485b5da16cb9da975894307c6f78d733d44e0c0"
  ],
  "author": {
    "name": "David Chisnall",
    "email": "github@theravensnest.org",
    "time": "Thu Jan 16 17:02:56 2025 +0000"
  },
  "committer": {
    "name": "David Chisnall",
    "email": "davidchisnall@users.noreply.github.com",
    "time": "Fri Jan 17 12:24:24 2025 +0000"
  },
  "message": "Add some limited JSON Patch support for board description files.\n\nBoards can now be provided as .patch files that are JSON documents\ncontaining two nodes:\n\n - `base` is the board that this is based on, which can be another\n   .patch file, a full path (note: relative paths are not yet supported,\n   but they should be for out-of-tree BSPs).\n - `patch` is a JSON Patch.\n\nThe patch is a subset of RFC 6902.  Current limitations:\n\n - It doesn\u0027t handle escapes in keys or any weird keys.\n - It assumes that numbers in the JSON Pointer path are array indexes\n   and will do the wrong thing if you try to replace or add an object\n   field with a number as a key.\n - It doesn\u0027t implement the copy, move, or test operations, only add,\n   remove, and replace.\n\nThis is sufficient to be useful.  The Arty A7 and Sonata Simulator JSON\nfiles are now replaced with patches.\n",
  "tree_diff": [
    {
      "type": "delete",
      "old_id": "db541725990d13fc41b4ddb9b55c1f94bf8f1bb0",
      "old_mode": 33188,
      "old_path": "sdk/boards/ibex-arty-a7-100.json",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3170507eb547e08502d101f8323a984608fde0c0",
      "new_mode": 33188,
      "new_path": "sdk/boards/ibex-arty-a7-100.patch"
    },
    {
      "type": "delete",
      "old_id": "2573a406243ecfbb179971f774333b9dfaf632b7",
      "old_mode": 33188,
      "old_path": "sdk/boards/sonata-simulator.json",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "650e419831cf5cca8e14bc761337950f1b7715ed",
      "new_mode": 33188,
      "new_path": "sdk/boards/sonata-simulator.patch"
    },
    {
      "type": "modify",
      "old_id": "0d02151aa5e3c7b8c853050467608777ef331105",
      "old_mode": 33188,
      "old_path": "sdk/xmake.lua",
      "new_id": "2ea30e5e6e22c0b38bc06a078e723814f40cf77e",
      "new_mode": 33188,
      "new_path": "sdk/xmake.lua"
    }
  ]
}
