)]}'
{
  "commit": "70ec55ce2a4ee221fbb15bc2fafd38cee6ff8c65",
  "tree": "af783f73065e84ed2f7f56827563123d516bce16",
  "parents": [
    "cf2d5b68a91aafb46efd7e59b789b35681dd6ff3"
  ],
  "author": {
    "name": "Kunal Pai",
    "email": "62979320+kunpai@users.noreply.github.com",
    "time": "Sun May 21 23:35:40 2023 -0700"
  },
  "committer": {
    "name": "Bobby Bruce",
    "email": "bbruce@ucdavis.edu",
    "time": "Tue Jun 06 20:20:54 2023 +0000"
  },
  "message": "stdlib, tests, configs: Introduce gem5 Vision to resources\n\nThis patch makes changes to the stdlib based on the gem5 Vision project.\nFirstly, a MongoDB database is supported.\nA JSON database\u0027s support is continued.\nThe JSON can either be a local path or a raw GitHub link.\n\nThe data for these databases is stored in src/python\nunder \"gem5-config.json\".\nThis will be used by default.\nHowever, the configuration can be overridden:\n- by providing a path using the GEM5_CONFIG env variable.\n- by placing a gem5-config.json file in the current working directory.\n\nAn AbstractClient is an abstract class that implements\nsearching and sorting relevant to the databases.\n\nClients is an optional list that can be passed\nwhile defining any Resource class and obtain_resource.\nThese databases can be defined in the config JSON.\n\nResources now have versions. This allows for a\nsingle version, e.g., \u0027x86-ubuntu-boot\u0027, to have\nmultiple versions. As such, the key of a resource is\nits ID and Version (e.g., \u0027x86-ubuntu-boot/v2.1.0\u0027).\nDifferent versions of a resource might be compatible\nwith different versions of gem5.\n\nBy default, it picks the latest version compatible with the gem5 Version\nof the user.\n\nA gem5 resource schema now has additional fields.\nThese are:\n- source_url: Stores URL of GitHub Source of the resource.\n- license: License information of the resource.\n- tags: Words to identify a resource better, like hello for hello-world\n- example_usage: How to use the resource in a simulation.\n- gem5_versions: List of gem5 versions that resource is compatible with.\n- resource_version: The version of the resource itself.\n- size: The download size of the resource, if it exists.\n- code_examples: List of objects.\nThese objects contain the path to where a resource is\nused in gem5 example config scripts,\nand if the resource itself is used in tests or not.\n- category: Category of the resource, as defined by classes in\nsrc/python/gem5/resources/resource.py.\n\nSome fields have been renamed:\n- \"name\" is changed to \"id\"\n- \"documentation\" is changed to \"description\"\n\nBesides these, the schema also supports resource specialization.\nIt adds fields relevant to a specific resource as specified in\nsrc/python/gem5/resources/resource.py\nThese changes have been made to better present\ninformation on the new gem5 Resources website.\n\nBut, they do not affect the way resources are used by a gem5 user.\nThis patch is also backwards compatible.\nExisting code doesn\u0027t break with this new infrastructure.\n\nAlso, refs in the tests have been changed to match this new schema.\nTests have been changed to work with the two clients.\n\nChange-Id: Ia9bf47f7900763827fd5e873bcd663cc3ecdba40\nCo-authored-by: Kunal Pai \u003ckunpai@ucdavis.edu\u003e\nCo-authored-by: Parth Shah \u003chelloparthshah@gmail.com\u003e\nCo-authored-by: Harshil Patel \u003charshilp2107@gmail.com\u003e\nCo-authored-by: aarsli \u003carsli@ucdavis.edu\u003e\nReviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/71278\nMaintainer: Bobby Bruce \u003cbbruce@ucdavis.edu\u003e\nTested-by: kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: Bobby Bruce \u003cbbruce@ucdavis.edu\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e261bfa7f282848fae960fff66e7288846441d0b",
      "old_mode": 33188,
      "old_path": "src/python/SConscript",
      "new_id": "f98b5700c76144b9ab549828188e11abab7f9cf4",
      "new_mode": 33188,
      "new_path": "src/python/SConscript"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bd473eb03882ed0a2abe649cfe0df14351959908",
      "new_mode": 33188,
      "new_path": "src/python/gem5/resources/client.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "src/python/gem5/resources/client_api/__init__.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "74a513fc561b064a8f4826df1bf147d9649c9f50",
      "new_mode": 33188,
      "new_path": "src/python/gem5/resources/client_api/abstract_client.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4a6e5cf691d5e93aec330cef8fa8265f394fbbe2",
      "new_mode": 33188,
      "new_path": "src/python/gem5/resources/client_api/atlasclient.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "74ee831c1f5216f89ebd14089bea6b4a9320d03e",
      "new_mode": 33188,
      "new_path": "src/python/gem5/resources/client_api/client_wrapper.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "225126e2a880517f67abd98a49123e369f97dc63",
      "new_mode": 33188,
      "new_path": "src/python/gem5/resources/client_api/jsonclient.py"
    },
    {
      "type": "modify",
      "old_id": "16b0147b7428cd4bbd45838c69f12fe5e067ba0e",
      "old_mode": 33188,
      "old_path": "src/python/gem5/resources/downloader.py",
      "new_id": "0781d9b15aa52a42eed55192b0db88b87cf06efd",
      "new_mode": 33188,
      "new_path": "src/python/gem5/resources/downloader.py"
    },
    {
      "type": "modify",
      "old_id": "9cba9cf88f274727e3500d9efaceed7316ed74a0",
      "old_mode": 33188,
      "old_path": "src/python/gem5/resources/resource.py",
      "new_id": "22adf15670c81208bce20e46b1e8c5b5e0cfdab9",
      "new_mode": 33188,
      "new_path": "src/python/gem5/resources/resource.py"
    },
    {
      "type": "modify",
      "old_id": "e0a19d0792218ab1c0cedffd8264c1e54059af96",
      "old_mode": 33188,
      "old_path": "src/python/gem5/resources/workload.py",
      "new_id": "148ab3f35a86e3a8d3fa48115b7ad52027de7fa7",
      "new_mode": 33188,
      "new_path": "src/python/gem5/resources/workload.py"
    },
    {
      "type": "modify",
      "old_id": "eab92e22913f5da99212aeb662db7a1f6ddf1bb0",
      "old_mode": 33188,
      "old_path": "src/python/gem5/utils/simpoint.py",
      "new_id": "0d1af4b1cfbe905a1f52a5f0dacc0a0f93850de7",
      "new_mode": 33188,
      "new_path": "src/python/gem5/utils/simpoint.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "980c8831094409eeae845ef0eab5f2868c7a1ced",
      "new_mode": 33188,
      "new_path": "src/python/gem5_default_config.py"
    },
    {
      "type": "modify",
      "old_id": "93d47c8d10232d41bff6099c3b0ea7d6b19c6901",
      "old_mode": 33188,
      "old_path": "tests/gem5/verifier.py",
      "new_id": "c725fc68b965e229c86165190663b727ff65ff23",
      "new_mode": 33188,
      "new_path": "tests/gem5/verifier.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "96aadf6879dc1c07a003d1e079fad59e84b8e159",
      "new_mode": 33188,
      "new_path": "tests/pyunit/stdlib/resources/pyunit_client_wrapper_checks.py"
    },
    {
      "type": "modify",
      "old_id": "08736bbc32397ecda91b1189f322d35b9f2fdce7",
      "old_mode": 33188,
      "old_path": "tests/pyunit/stdlib/resources/pyunit_downloader_checks.py",
      "new_id": "19169e480ea4f7feee7ad895b39f1a44a8699766",
      "new_mode": 33188,
      "new_path": "tests/pyunit/stdlib/resources/pyunit_downloader_checks.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "791d96c1f143b838cd665e0d94cfa5b2d24e05f2",
      "new_mode": 33188,
      "new_path": "tests/pyunit/stdlib/resources/pyunit_obtain_resources_check.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8f6674ff0d93b1c431f0770dab5d54472486fdb6",
      "new_mode": 33188,
      "new_path": "tests/pyunit/stdlib/resources/pyunit_resource_download_checks.py"
    },
    {
      "type": "modify",
      "old_id": "660bf5f38fe3c7098ef3692f43ad4cdb3eb89630",
      "old_mode": 33188,
      "old_path": "tests/pyunit/stdlib/resources/pyunit_resource_specialization.py",
      "new_id": "5c22a7341e4d5b6b93fd717148c9037fbe5da661",
      "new_mode": 33188,
      "new_path": "tests/pyunit/stdlib/resources/pyunit_resource_specialization.py"
    },
    {
      "type": "modify",
      "old_id": "2bc31f5a3fe8cdbe54bd9af3f320c93493690f5f",
      "old_mode": 33188,
      "old_path": "tests/pyunit/stdlib/resources/pyunit_workload_checks.py",
      "new_id": "b898faeb794e3b77fb3d612d99c5d8e65779ef45",
      "new_mode": 33188,
      "new_path": "tests/pyunit/stdlib/resources/pyunit_workload_checks.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fe87cc8c28c9e1708366035fcf8ea8bd1ce7bf46",
      "new_mode": 33188,
      "new_path": "tests/pyunit/stdlib/resources/refs/mongo_dup_mock.json"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b6376cc5e41960506fe82e2a2eb83fd1c8f30eba",
      "new_mode": 33188,
      "new_path": "tests/pyunit/stdlib/resources/refs/mongo_mock.json"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fac95e106ab66c7dab014f1ba79dececfe545896",
      "new_mode": 33188,
      "new_path": "tests/pyunit/stdlib/resources/refs/obtain-resource.json"
    },
    {
      "type": "modify",
      "old_id": "c4d5eb4714d832567ea8baa7b9d22766a3fcf132",
      "old_mode": 33188,
      "old_path": "tests/pyunit/stdlib/resources/refs/resource-specialization.json",
      "new_id": "1129f1bd05e70638af5d20d401c03e26436ea667",
      "new_mode": 33188,
      "new_path": "tests/pyunit/stdlib/resources/refs/resource-specialization.json"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "812caeff43b286ef81342ad89a96eddf32475cc3",
      "new_mode": 33188,
      "new_path": "tests/pyunit/stdlib/resources/refs/resources.json"
    },
    {
      "type": "modify",
      "old_id": "a9dd2aaa46b0d083aa009a5fbafb52893d16bf98",
      "old_mode": 33188,
      "old_path": "tests/pyunit/stdlib/resources/refs/workload-checks-custom-workload.json",
      "new_id": "8349b92658232e6a170fc01950615e5929f37955",
      "new_mode": 33188,
      "new_path": "tests/pyunit/stdlib/resources/refs/workload-checks-custom-workload.json"
    },
    {
      "type": "modify",
      "old_id": "4f7e76bfb5fa2ab19740639d6682b445ce2da6fd",
      "old_mode": 33188,
      "old_path": "tests/pyunit/stdlib/resources/refs/workload-checks.json",
      "new_id": "d19396bf8ca55341beebf4082ecfd48dffc83f8a",
      "new_mode": 33188,
      "new_path": "tests/pyunit/stdlib/resources/refs/workload-checks.json"
    }
  ]
}
