)]}'
{
  "commit": "01197109b206cfbc4557237485457263fb2fac76",
  "tree": "c0d78794ef39454b5f4efb8079d55db133befb0f",
  "parents": [
    "a4dc8112ed8b6252dcf15cf77e949e7da9c56e35"
  ],
  "author": {
    "name": "Wyatt Hepler",
    "email": "hepler@google.com",
    "time": "Fri Jun 19 12:05:54 2020 -0700"
  },
  "committer": {
    "name": "CQ Bot Account",
    "email": "commit-bot@chromium.org",
    "time": "Mon Jun 22 20:16:43 2020 +0000"
  },
  "message": "pw_presubmit: Don\u0027t use setup.py test\n\nPreviously, Python tests were executed using setup.py test. There are a\nfew issues with this. First, with the current setup, tests are executed\ntwice for some reason. Occasionally other odd errors occur. Also,\nsetuptools has deprecated the test command for setup.py and states that\nit will be removed in a future version.\n\nThis change discovers tests by finding the package directories of\naffected files and searching for tests with customizable patterns\n(\u0027*_test.py\u0027 by default). This approach is simpler, faster, and no\nlonger relies on setuptools or unittest.\n\nSince setup.py test is no longer used, this change removes test suite\ndiscovery from Pigweed\u0027s setup.py files.\n\nChange-Id: I3de6c5d05ea5e38eea27b0e3aca956fe468035be\nReviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/12662\nReviewed-by: Rob Mohr \u003cmohrr@google.com\u003e\nCommit-Queue: Wyatt Hepler \u003chepler@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f639fae2da870c357c78facf5dfeecb4c2047644",
      "old_mode": 33188,
      "old_path": "pw_bloat/py/setup.py",
      "new_id": "8827b838933d5fb3893f49504f14c3d0f5298612",
      "new_mode": 33188,
      "new_path": "pw_bloat/py/setup.py"
    },
    {
      "type": "modify",
      "old_id": "699a33c6b3e6c9f793ac44415419eda08e12fa69",
      "old_mode": 33188,
      "old_path": "pw_cli/py/setup.py",
      "new_id": "94df754cf23ee787d283f8b05ebc520501aa373a",
      "new_mode": 33188,
      "new_path": "pw_cli/py/setup.py"
    },
    {
      "type": "modify",
      "old_id": "b870a42f2234e06887b03406bfd69003de468a15",
      "old_mode": 33188,
      "old_path": "pw_doctor/py/setup.py",
      "new_id": "752f5e25d24a24a0fae9f58399b7b151789d8585",
      "new_mode": 33188,
      "new_path": "pw_doctor/py/setup.py"
    },
    {
      "type": "modify",
      "old_id": "9cd86f4e27654bb221c7f7eee6ca2c66d5ca27d6",
      "old_mode": 33188,
      "old_path": "pw_env_setup/py/setup.py",
      "new_id": "a0beacec955a9a853bc7cf79b27d4921595c39a2",
      "new_mode": 33188,
      "new_path": "pw_env_setup/py/setup.py"
    },
    {
      "type": "modify",
      "old_id": "4014feb069818a77cfd936d8490d896a4c95cf47",
      "old_mode": 33188,
      "old_path": "pw_module/py/setup.py",
      "new_id": "46e1ab18f5773979ee447e2de2853058570bbc35",
      "new_mode": 33188,
      "new_path": "pw_module/py/setup.py"
    },
    {
      "type": "modify",
      "old_id": "9b294ee4aed6b6f80ed6784e411c9991b759f852",
      "old_mode": 33188,
      "old_path": "pw_presubmit/py/pw_presubmit/python_checks.py",
      "new_id": "2fbb4a01ff8491e6500ee84fbda51f52eec54546",
      "new_mode": 33188,
      "new_path": "pw_presubmit/py/pw_presubmit/python_checks.py"
    },
    {
      "type": "modify",
      "old_id": "bdb486f006745b63af8e0974311f23a925eedfa1",
      "old_mode": 33188,
      "old_path": "pw_presubmit/py/setup.py",
      "new_id": "791691a3cf577a6ef376db22ac9a62c046f6a361",
      "new_mode": 33188,
      "new_path": "pw_presubmit/py/setup.py"
    },
    {
      "type": "modify",
      "old_id": "4d991969dd8178c9ac9807e04baa2aa8ec6edede",
      "old_mode": 33188,
      "old_path": "pw_protobuf/py/setup.py",
      "new_id": "7134f1afca85f7674fbd5374df28bd9371249928",
      "new_mode": 33188,
      "new_path": "pw_protobuf/py/setup.py"
    },
    {
      "type": "modify",
      "old_id": "bf706c746378bb9cf81df70ee7bae8840d68ac61",
      "old_mode": 33188,
      "old_path": "pw_protobuf_compiler/py/setup.py",
      "new_id": "ebee3fd8d4107eb3252b6a235994b33c56c07a54",
      "new_mode": 33188,
      "new_path": "pw_protobuf_compiler/py/setup.py"
    },
    {
      "type": "modify",
      "old_id": "81ec43a635cc8437f669075e8379f635ab8e7322",
      "old_mode": 33188,
      "old_path": "pw_tokenizer/py/setup.py",
      "new_id": "3b3dec2e6198a1010d013182dfdea5131ad3c8de",
      "new_mode": 33188,
      "new_path": "pw_tokenizer/py/setup.py"
    },
    {
      "type": "modify",
      "old_id": "e3bfae1a4751829de3f8d87f48463a9ebcc8e292",
      "old_mode": 33188,
      "old_path": "pw_unit_test/py/setup.py",
      "new_id": "bfe6b39f67f66de689009703b3aedbae4bcb72e7",
      "new_mode": 33188,
      "new_path": "pw_unit_test/py/setup.py"
    },
    {
      "type": "modify",
      "old_id": "b4fc30d5b598e9d1cd5d0ece6b81bf232285314a",
      "old_mode": 33188,
      "old_path": "pw_watch/py/setup.py",
      "new_id": "f0994273d3b250f3fbacb30e17fec68f67682abd",
      "new_mode": 33188,
      "new_path": "pw_watch/py/setup.py"
    },
    {
      "type": "modify",
      "old_id": "7e5b52146ec25c273221f53bc8e8776cefc97725",
      "old_mode": 33188,
      "old_path": "targets/lm3s6965evb-qemu/py/setup.py",
      "new_id": "a60dc3faf0f267da434ee2cbb5e6d3a91cf116f4",
      "new_mode": 33188,
      "new_path": "targets/lm3s6965evb-qemu/py/setup.py"
    },
    {
      "type": "modify",
      "old_id": "2abbe0615a832b517cdb955ef76cacccd20db71f",
      "old_mode": 33188,
      "old_path": "targets/stm32f429i-disc1/py/setup.py",
      "new_id": "1c47928704638b1027edb1c7deafbc6589119071",
      "new_mode": 33188,
      "new_path": "targets/stm32f429i-disc1/py/setup.py"
    }
  ]
}
