)]}'
{
  "commit": "b774da0d4255e56b957e78115cde7d4e3112af03",
  "tree": "333a3aa24f9b51a0effbf0117b3d2d7cae6498b3",
  "parents": [
    "d16bf914bc5ba569d2b70376051d15f68ce4322d"
  ],
  "author": {
    "name": "David L. Jones",
    "email": "dlj@google.com",
    "time": "Wed Sep 30 15:56:17 2020 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Sep 30 15:56:17 2020 -0700"
  },
  "message": "Change Python kokoro configs to test only their specified version. (#7927)\n\nUsing non-versioned scripts for `build_file` means every Python version is\r\ntested (under Tox), and this is multiplied by each Python version running Tox.\r\n\r\nFor example, when the `python38` config is used to run Tox, the\r\nTox layer runs on Python 3.8. This then tests all of the Python versions\r\nindividually, including, for example, python27 tests.\r\n\r\nThis change fixes the `build_file` paths to point to the same-pathed build\r\nscript. For example, `kokoro/linux/python27/presubmit.cfg` now uses\r\n`kokoro/linux/python27/build.sh`.\r\n\r\nSome additional fixes:\r\n\r\n*  Use `python -m tox` in tests.sh instead of just `tox`. This helps non-site\r\n   installations of tox, where the `tox` script may not be on `$PATH`.\r\n*  Ensure tox (and other Python build-related packages) are available in\r\n   Python testing images. (New images have been pushed.)\r\n*  Disable `--warnings_as_errors` due to deprecated function.\r\n*  Remove apt lists per [Docker best practices][1].\r\n\r\n[1]: https://docs.docker.com/develop/develop-images/dockerfile_best-practices/",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e41e49a6e5085e4a2df179ecad96d13ee2b15f22",
      "old_mode": 33188,
      "old_path": "kokoro/linux/dockerfile/test/python27/Dockerfile",
      "new_id": "6b0eaf72c86267934309080aab9b9796834676e4",
      "new_mode": 33188,
      "new_path": "kokoro/linux/dockerfile/test/python27/Dockerfile"
    },
    {
      "type": "modify",
      "old_id": "3ea4c9e188dd1dffb2fb160d65eb8ca1c6b03665",
      "old_mode": 33188,
      "old_path": "kokoro/linux/dockerfile/test/python35/Dockerfile",
      "new_id": "50ee18453619010b549b4400409f0e20be2905f5",
      "new_mode": 33188,
      "new_path": "kokoro/linux/dockerfile/test/python35/Dockerfile"
    },
    {
      "type": "modify",
      "old_id": "436846065b41425717ad411c511df34ba463b059",
      "old_mode": 33188,
      "old_path": "kokoro/linux/dockerfile/test/python36/Dockerfile",
      "new_id": "742503e5a4174364f79d514e6265a25dd77fc443",
      "new_mode": 33188,
      "new_path": "kokoro/linux/dockerfile/test/python36/Dockerfile"
    },
    {
      "type": "modify",
      "old_id": "c711eb86a5901f903252ea93c669af309e46e101",
      "old_mode": 33188,
      "old_path": "kokoro/linux/dockerfile/test/python37/Dockerfile",
      "new_id": "ee108dd030125a59d477b51d65afc44f20427d4d",
      "new_mode": 33188,
      "new_path": "kokoro/linux/dockerfile/test/python37/Dockerfile"
    },
    {
      "type": "modify",
      "old_id": "48a7be5e051914741be10c4df25d4e359d739751",
      "old_mode": 33188,
      "old_path": "kokoro/linux/dockerfile/test/python38/Dockerfile",
      "new_id": "56efc9d6bf39dd2ec799b3471dc595b0fa252a5f",
      "new_mode": 33188,
      "new_path": "kokoro/linux/dockerfile/test/python38/Dockerfile"
    },
    {
      "type": "modify",
      "old_id": "e2fc4136f07e344719f71229b1cead698be3a80a",
      "old_mode": 33188,
      "old_path": "kokoro/linux/python27/continuous.cfg",
      "new_id": "dd98469a6fb60cc1660063747c75dd0897c5c4f3",
      "new_mode": 33188,
      "new_path": "kokoro/linux/python27/continuous.cfg"
    },
    {
      "type": "modify",
      "old_id": "e2fc4136f07e344719f71229b1cead698be3a80a",
      "old_mode": 33188,
      "old_path": "kokoro/linux/python27/presubmit.cfg",
      "new_id": "dd98469a6fb60cc1660063747c75dd0897c5c4f3",
      "new_mode": 33188,
      "new_path": "kokoro/linux/python27/presubmit.cfg"
    },
    {
      "type": "modify",
      "old_id": "b1b0e550ffd44ce168a8af42cd15b12a2b6fdd4d",
      "old_mode": 33188,
      "old_path": "kokoro/linux/python27_cpp/continuous.cfg",
      "new_id": "ace22d0077174b408e221eefb3534740ed6f1d76",
      "new_mode": 33188,
      "new_path": "kokoro/linux/python27_cpp/continuous.cfg"
    },
    {
      "type": "modify",
      "old_id": "b1b0e550ffd44ce168a8af42cd15b12a2b6fdd4d",
      "old_mode": 33188,
      "old_path": "kokoro/linux/python27_cpp/presubmit.cfg",
      "new_id": "ace22d0077174b408e221eefb3534740ed6f1d76",
      "new_mode": 33188,
      "new_path": "kokoro/linux/python27_cpp/presubmit.cfg"
    },
    {
      "type": "modify",
      "old_id": "e2fc4136f07e344719f71229b1cead698be3a80a",
      "old_mode": 33188,
      "old_path": "kokoro/linux/python35/continuous.cfg",
      "new_id": "2b3e12cbb0cde62e1119fa032c4651d43aac8aad",
      "new_mode": 33188,
      "new_path": "kokoro/linux/python35/continuous.cfg"
    },
    {
      "type": "modify",
      "old_id": "e2fc4136f07e344719f71229b1cead698be3a80a",
      "old_mode": 33188,
      "old_path": "kokoro/linux/python35/presubmit.cfg",
      "new_id": "2b3e12cbb0cde62e1119fa032c4651d43aac8aad",
      "new_mode": 33188,
      "new_path": "kokoro/linux/python35/presubmit.cfg"
    },
    {
      "type": "modify",
      "old_id": "b1b0e550ffd44ce168a8af42cd15b12a2b6fdd4d",
      "old_mode": 33188,
      "old_path": "kokoro/linux/python35_cpp/continuous.cfg",
      "new_id": "ad5cc8657adc753a9a2e5854075e4ebfa51b6531",
      "new_mode": 33188,
      "new_path": "kokoro/linux/python35_cpp/continuous.cfg"
    },
    {
      "type": "modify",
      "old_id": "b1b0e550ffd44ce168a8af42cd15b12a2b6fdd4d",
      "old_mode": 33188,
      "old_path": "kokoro/linux/python35_cpp/presubmit.cfg",
      "new_id": "ad5cc8657adc753a9a2e5854075e4ebfa51b6531",
      "new_mode": 33188,
      "new_path": "kokoro/linux/python35_cpp/presubmit.cfg"
    },
    {
      "type": "modify",
      "old_id": "e2fc4136f07e344719f71229b1cead698be3a80a",
      "old_mode": 33188,
      "old_path": "kokoro/linux/python36/continuous.cfg",
      "new_id": "ee7f4888f8c761d09cba2ce7b45c99b0271ff037",
      "new_mode": 33188,
      "new_path": "kokoro/linux/python36/continuous.cfg"
    },
    {
      "type": "modify",
      "old_id": "e2fc4136f07e344719f71229b1cead698be3a80a",
      "old_mode": 33188,
      "old_path": "kokoro/linux/python36/presubmit.cfg",
      "new_id": "ee7f4888f8c761d09cba2ce7b45c99b0271ff037",
      "new_mode": 33188,
      "new_path": "kokoro/linux/python36/presubmit.cfg"
    },
    {
      "type": "modify",
      "old_id": "b1b0e550ffd44ce168a8af42cd15b12a2b6fdd4d",
      "old_mode": 33188,
      "old_path": "kokoro/linux/python36_cpp/continuous.cfg",
      "new_id": "df9e7144943a8b238e42bf9f86b7191f80fc49ee",
      "new_mode": 33188,
      "new_path": "kokoro/linux/python36_cpp/continuous.cfg"
    },
    {
      "type": "modify",
      "old_id": "b1b0e550ffd44ce168a8af42cd15b12a2b6fdd4d",
      "old_mode": 33188,
      "old_path": "kokoro/linux/python36_cpp/presubmit.cfg",
      "new_id": "df9e7144943a8b238e42bf9f86b7191f80fc49ee",
      "new_mode": 33188,
      "new_path": "kokoro/linux/python36_cpp/presubmit.cfg"
    },
    {
      "type": "modify",
      "old_id": "e2fc4136f07e344719f71229b1cead698be3a80a",
      "old_mode": 33188,
      "old_path": "kokoro/linux/python37/continuous.cfg",
      "new_id": "9fa20c19757ef5c3f6d1cd8d2c7e720bbffaae78",
      "new_mode": 33188,
      "new_path": "kokoro/linux/python37/continuous.cfg"
    },
    {
      "type": "modify",
      "old_id": "e2fc4136f07e344719f71229b1cead698be3a80a",
      "old_mode": 33188,
      "old_path": "kokoro/linux/python37/presubmit.cfg",
      "new_id": "9fa20c19757ef5c3f6d1cd8d2c7e720bbffaae78",
      "new_mode": 33188,
      "new_path": "kokoro/linux/python37/presubmit.cfg"
    },
    {
      "type": "modify",
      "old_id": "b1b0e550ffd44ce168a8af42cd15b12a2b6fdd4d",
      "old_mode": 33188,
      "old_path": "kokoro/linux/python37_cpp/continuous.cfg",
      "new_id": "49c441ffe8925d0a36ad0d081ffcbd725aaaa517",
      "new_mode": 33188,
      "new_path": "kokoro/linux/python37_cpp/continuous.cfg"
    },
    {
      "type": "modify",
      "old_id": "b1b0e550ffd44ce168a8af42cd15b12a2b6fdd4d",
      "old_mode": 33188,
      "old_path": "kokoro/linux/python37_cpp/presubmit.cfg",
      "new_id": "49c441ffe8925d0a36ad0d081ffcbd725aaaa517",
      "new_mode": 33188,
      "new_path": "kokoro/linux/python37_cpp/presubmit.cfg"
    },
    {
      "type": "modify",
      "old_id": "e2fc4136f07e344719f71229b1cead698be3a80a",
      "old_mode": 33188,
      "old_path": "kokoro/linux/python38/continuous.cfg",
      "new_id": "76425d2f193ae4f02ea226da57336642919179c8",
      "new_mode": 33188,
      "new_path": "kokoro/linux/python38/continuous.cfg"
    },
    {
      "type": "modify",
      "old_id": "e2fc4136f07e344719f71229b1cead698be3a80a",
      "old_mode": 33188,
      "old_path": "kokoro/linux/python38/presubmit.cfg",
      "new_id": "76425d2f193ae4f02ea226da57336642919179c8",
      "new_mode": 33188,
      "new_path": "kokoro/linux/python38/presubmit.cfg"
    },
    {
      "type": "modify",
      "old_id": "b1b0e550ffd44ce168a8af42cd15b12a2b6fdd4d",
      "old_mode": 33188,
      "old_path": "kokoro/linux/python38_cpp/continuous.cfg",
      "new_id": "1e8888cc5d1bcc8a6d5ff7c9a1a2a7dac95edf46",
      "new_mode": 33188,
      "new_path": "kokoro/linux/python38_cpp/continuous.cfg"
    },
    {
      "type": "modify",
      "old_id": "b1b0e550ffd44ce168a8af42cd15b12a2b6fdd4d",
      "old_mode": 33188,
      "old_path": "kokoro/linux/python38_cpp/presubmit.cfg",
      "new_id": "1e8888cc5d1bcc8a6d5ff7c9a1a2a7dac95edf46",
      "new_mode": 33188,
      "new_path": "kokoro/linux/python38_cpp/presubmit.cfg"
    },
    {
      "type": "modify",
      "old_id": "999f8ceeb8fa12cc2bf3e6d414169f87e280f31c",
      "old_mode": 33188,
      "old_path": "python/tox.ini",
      "new_id": "56be1258ae99681edcf9ff09c994892fb850718f",
      "new_mode": 33188,
      "new_path": "python/tox.ini"
    },
    {
      "type": "modify",
      "old_id": "8b499d0a3e114d37b8bd3de33b38b0395f613e1d",
      "old_mode": 33261,
      "old_path": "tests.sh",
      "new_id": "eb28ee3268608bd80b3f41738f2ae894919833dc",
      "new_mode": 33261,
      "new_path": "tests.sh"
    }
  ]
}
