diff --git a/.kokoro/build.sh b/.kokoro/build.sh
new file mode 100755
index 0000000..e803113
--- /dev/null
+++ b/.kokoro/build.sh
@@ -0,0 +1,50 @@
+#!/bin/bash
+
+# Copyright 2018 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -eo pipefail
+
+cd github/google-auth-library-python
+
+# Disable buffering, so that the logs stream through.
+export PYTHONUNBUFFERED=1
+
+# Debug: show build environment
+env | grep KOKORO
+
+# Setup service account credentials.
+
+# add creds to gfile dir
+export GOOGLE_APPLICATION_CREDENTIALS=${KOKORO_GFILE_DIR}/service-account.json
+
+# Setup project id.
+export PROJECT_ID=$(cat "${KOKORO_GFILE_DIR}/project-id.txt")
+
+# Activate gcloud with service account credentials
+gcloud auth activate-service-account --key-file=$GOOGLE_APPLICATION_CREDENTIALS
+gcloud config set project $PROJECT_ID
+
+# Decrypt system test secrets
+./scripts/decrypt-secrets.sh
+
+# Remove old nox
+python3.6 -m pip uninstall --yes --quiet nox-automation
+
+# Install nox
+python3.6 -m pip install --upgrade --quiet nox
+python3.6 -m nox --version
+
+python3.6 -m nox
+python3.6 -m nox -f system_tests/noxfile.py
\ No newline at end of file
diff --git a/.kokoro/common.cfg b/.kokoro/common.cfg
index 7dbafc2..81f431a 100644
--- a/.kokoro/common.cfg
+++ b/.kokoro/common.cfg
@@ -3,11 +3,14 @@
 # Download trampoline resources. These will be in ${KOKORO_GFILE_DIR}
 gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline"
 
+# Download resources for tests
+gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-auth-library-python"
+
 # All builds use the trampoline script to run in docker.
 build_file: "google-auth-library-python/.kokoro/trampoline.sh"
 
 # Use the Python worker docker iamge.
 env_vars: {
     key: "TRAMPOLINE_IMAGE"
-    value: "gcr.io/silver-python2/python-worker"
+    value: "gcr.io/cloud-devrel-public-resources/python-multi"
 }
diff --git a/.kokoro/continuous/common.cfg b/.kokoro/continuous/common.cfg
new file mode 100644
index 0000000..10910e3
--- /dev/null
+++ b/.kokoro/continuous/common.cfg
@@ -0,0 +1,27 @@
+# Format: //devtools/kokoro/config/proto/build.proto
+
+# Build logs will be here
+action {
+  define_artifacts {
+    regex: "**/*sponge_log.xml"
+  }
+}
+
+# Download trampoline resources.
+gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline"
+
+# Download resources for system tests (service account key, etc.)
+gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-auth-library-python"
+
+# Use the trampoline script to run in docker.
+build_file: "google-auth-library-python/.kokoro/trampoline.sh"
+
+# Configure the docker image for kokoro-trampoline.
+env_vars: {
+    key: "TRAMPOLINE_IMAGE"
+    value: "gcr.io/cloud-devrel-kokoro-resources/python-multi"
+}
+env_vars: {
+    key: "TRAMPOLINE_BUILD_FILE"
+    value: "github/google-auth-library-python/.kokoro/build.sh"
+}
diff --git a/.kokoro/continuous/continuous.cfg b/.kokoro/continuous/continuous.cfg
new file mode 100644
index 0000000..8f43917
--- /dev/null
+++ b/.kokoro/continuous/continuous.cfg
@@ -0,0 +1 @@
+# Format: //devtools/kokoro/config/proto/build.proto
\ No newline at end of file
diff --git a/.kokoro/docs/common.cfg b/.kokoro/docs/common.cfg
new file mode 100644
index 0000000..e49c232
--- /dev/null
+++ b/.kokoro/docs/common.cfg
@@ -0,0 +1,48 @@
+# Format: //devtools/kokoro/config/proto/build.proto
+
+# Build logs will be here
+action {
+  define_artifacts {
+    regex: "**/*sponge_log.xml"
+  }
+}
+
+# Download trampoline resources.
+gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline"
+
+# Use the trampoline script to run in docker.
+build_file: "google-auth-library-python/.kokoro/trampoline.sh"
+
+# Configure the docker image for kokoro-trampoline.
+env_vars: {
+    key: "TRAMPOLINE_IMAGE"
+    value: "gcr.io/cloud-devrel-kokoro-resources/python-multi"
+}
+env_vars: {
+    key: "TRAMPOLINE_BUILD_FILE"
+    value: "github/google-auth-library-python/.kokoro/publish-docs.sh"
+}
+
+env_vars: {
+    key: "STAGING_BUCKET"
+    value: "docs-staging"
+}
+
+# Fetch the token needed for reporting release status to GitHub
+before_action {
+  fetch_keystore {
+    keystore_resource {
+      keystore_config_id: 73713
+      keyname: "yoshi-automation-github-key"
+    }
+  }
+}
+
+before_action {
+  fetch_keystore {
+    keystore_resource {
+      keystore_config_id: 73713
+      keyname: "docuploader_service_account"
+    }
+  }
+}
\ No newline at end of file
diff --git a/.kokoro/docs/docs.cfg b/.kokoro/docs/docs.cfg
new file mode 100644
index 0000000..8f43917
--- /dev/null
+++ b/.kokoro/docs/docs.cfg
@@ -0,0 +1 @@
+# Format: //devtools/kokoro/config/proto/build.proto
\ No newline at end of file
diff --git a/.kokoro/presubmit/common.cfg b/.kokoro/presubmit/common.cfg
new file mode 100644
index 0000000..7dbee1c
--- /dev/null
+++ b/.kokoro/presubmit/common.cfg
@@ -0,0 +1,27 @@
+# Format: //devtools/kokoro/config/proto/build.proto
+
+# Build logs will be here
+action {
+  define_artifacts {
+    regex: "**/*sponge_log.xml"
+  }
+}
+
+# Download trampoline resources. These will be in ${KOKORO_GFILE_DIR}
+gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline"
+
+# Download resources for tests
+gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-auth-library-python"
+
+# Use the trampoline script to run in docker.
+build_file: "google-auth-library-python/.kokoro/trampoline.sh"
+
+# Configure the docker image for kokoro-trampoline.
+env_vars: {
+    key: "TRAMPOLINE_IMAGE"
+    value: "gcr.io/cloud-devrel-kokoro-resources/python-multi"
+}
+env_vars: {
+    key: "TRAMPOLINE_BUILD_FILE"
+    value: "github/google-auth-library-python/.kokoro/build.sh"
+}
diff --git a/.kokoro/presubmit/presubmit.cfg b/.kokoro/presubmit/presubmit.cfg
new file mode 100644
index 0000000..8f43917
--- /dev/null
+++ b/.kokoro/presubmit/presubmit.cfg
@@ -0,0 +1 @@
+# Format: //devtools/kokoro/config/proto/build.proto
\ No newline at end of file
diff --git a/.kokoro/publish-docs.sh b/.kokoro/publish-docs.sh
new file mode 100755
index 0000000..0d97db8
--- /dev/null
+++ b/.kokoro/publish-docs.sh
@@ -0,0 +1,42 @@
+#!/bin/bash
+
+set -eo pipefail
+
+# Disable buffering, so that the logs stream through.
+export PYTHONUNBUFFERED=1
+
+cd github/google-auth-library-python
+
+# Remove old nox
+python3.6 -m pip uninstall --yes --quiet nox-automation
+
+# Install nox
+python3.6 -m pip install --upgrade --quiet nox
+python3.6 -m nox --version
+
+# build docs
+nox -s docs
+
+python3 -m pip install gcp-docuploader
+
+# install a json parser
+sudo apt-get update
+sudo apt-get -y install software-properties-common
+sudo add-apt-repository universe
+sudo apt-get update
+sudo apt-get -y install jq
+
+# create metadata
+python3 -m docuploader create-metadata \
+  --name=$(jq --raw-output '.name // empty' .repo-metadata.json) \
+  --version=$(python3 setup.py --version) \
+  --language=$(jq --raw-output '.language // empty' .repo-metadata.json) \
+  --distribution-name=$(python3 setup.py --name) \
+  --product-page=$(jq --raw-output '.product_documentation // empty' .repo-metadata.json) \
+  --github-repository=$(jq --raw-output '.repo // empty' .repo-metadata.json) \
+  --issue-tracker=$(jq --raw-output '.issue_tracker // empty' .repo-metadata.json)
+
+cat docs.metadata
+
+# upload docs
+python3 -m docuploader upload docs/_build/html --metadata-file docs.metadata --staging-bucket docs-staging
diff --git a/.kokoro/release.sh b/.kokoro/release.sh
new file mode 100755
index 0000000..cf85555
--- /dev/null
+++ b/.kokoro/release.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+set -eo pipefail
+
+# Start the releasetool reporter
+python3 -m pip install gcp-releasetool
+python3 -m releasetool publish-reporter-script > /tmp/publisher-script; source /tmp/publisher-script
+
+# Ensure that we have the latest versions of Twine, Wheel, and Setuptools.
+python3 -m pip install --upgrade twine wheel setuptools
+
+# Disable buffering, so that the logs stream through.
+export PYTHONUNBUFFERED=1
+
+# Move into the package, build the distribution and upload.
+TWINE_PASSWORD=$(cat "${KOKORO_KEYSTORE_DIR}/73713_google_cloud_pypi_password")
+cd github/google-auth-library-python
+python3 setup.py sdist bdist_wheel
+twine upload --username gcloudpypi --password "${TWINE_PASSWORD}" dist/*
diff --git a/.kokoro/release/common.cfg b/.kokoro/release/common.cfg
new file mode 100644
index 0000000..b2088d0
--- /dev/null
+++ b/.kokoro/release/common.cfg
@@ -0,0 +1,64 @@
+# Format: //devtools/kokoro/config/proto/build.proto
+
+# Build logs will be here
+action {
+  define_artifacts {
+    regex: "**/*sponge_log.xml"
+  }
+}
+
+# Download trampoline resources.
+gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline"
+
+# Use the trampoline script to run in docker.
+build_file: "google-auth-library-python/.kokoro/trampoline.sh"
+
+# Configure the docker image for kokoro-trampoline.
+env_vars: {
+    key: "TRAMPOLINE_IMAGE"
+    value: "gcr.io/cloud-devrel-kokoro-resources/python-multi"
+}
+env_vars: {
+    key: "TRAMPOLINE_BUILD_FILE"
+    value: "github/google-auth-library-python/.kokoro/release.sh"
+}
+
+# Fetch the token needed for reporting release status to GitHub
+before_action {
+  fetch_keystore {
+    keystore_resource {
+      keystore_config_id: 73713
+      keyname: "yoshi-automation-github-key"
+    }
+  }
+}
+
+# Fetch PyPI password
+before_action {
+  fetch_keystore {
+    keystore_resource {
+      keystore_config_id: 73713
+      keyname: "google_cloud_pypi_password"
+    }
+  }
+}
+
+# Fetch magictoken to use with Magic Github Proxy 
+before_action {
+  fetch_keystore {
+    keystore_resource {
+      keystore_config_id: 73713
+      keyname: "releasetool-magictoken"
+    }
+  }
+}
+
+# Fetch api key to use with Magic Github Proxy 
+before_action {
+  fetch_keystore {
+    keystore_resource {
+      keystore_config_id: 73713
+      keyname: "magic-github-proxy-api-key"
+    }
+  }
+}
diff --git a/.kokoro/release/release.cfg b/.kokoro/release/release.cfg
new file mode 100644
index 0000000..8f43917
--- /dev/null
+++ b/.kokoro/release/release.cfg
@@ -0,0 +1 @@
+# Format: //devtools/kokoro/config/proto/build.proto
\ No newline at end of file
diff --git a/.kokoro/system_tests.cfg b/.kokoro/system_tests.cfg
deleted file mode 100644
index aa3e6c6..0000000
--- a/.kokoro/system_tests.cfg
+++ /dev/null
@@ -1,16 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-# Download secrets from Cloud Storage.
-gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/google-auth-library-python"
-
-# Tell the trampoline which build file to use.
-env_vars: {
-    key: "TRAMPOLINE_BUILD_FILE"
-    value: "github/google-auth-library-python/.kokoro/system_tests.sh"
-}
-
-# Tell the system tests which Google Cloud project to use.
-env_vars: {
-    key: "TEST_PROJECT"
-    value: "python-docs-samples-tests"
-}
diff --git a/.kokoro/system_tests.sh b/.kokoro/system_tests.sh
deleted file mode 100755
index 29d5097..0000000
--- a/.kokoro/system_tests.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/bash
-
-# Copyright 2017 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-set -eo pipefail
-
-export PATH=${PATH}:${HOME}/gcloud/google-cloud-sdk/bin
-
-cd github/google-auth-library-python
-
-# Unencrypt and extract secrets
-SECRETS_PASSWORD=$(cat "${KOKORO_GFILE_DIR}/secrets-password.txt")
-./scripts/decrypt-secrets.sh "${SECRETS_PASSWORD}"
-
-# Setup gcloud, this is needed for the App Engine system test.
-gcloud auth activate-service-account --key-file system_tests/data/service_account.json
-gcloud config set project "${TEST_PROJECT}"
-
-# Run tests
-tox -e py27-system
-tox -e py36-system
diff --git a/.kokoro/trampoline.sh b/.kokoro/trampoline.sh
index fef7c24..e8c4251 100755
--- a/.kokoro/trampoline.sh
+++ b/.kokoro/trampoline.sh
@@ -15,14 +15,9 @@
 
 set -eo pipefail
 
-# Always run the cleanup script, regardless of the success of bouncing into
-# the container.
+python3 "${KOKORO_GFILE_DIR}/trampoline_v1.py"  || ret_code=$?
 
-function cleanup() {
-    chmod +x ${KOKORO_GFILE_DIR}/trampoline_cleanup.sh
-    ${KOKORO_GFILE_DIR}/trampoline_cleanup.sh
-    echo "cleanup";
-}
-trap cleanup EXIT
+chmod +x ${KOKORO_GFILE_DIR}/trampoline_cleanup.sh
+${KOKORO_GFILE_DIR}/trampoline_cleanup.sh || true
 
-python3 "${KOKORO_GFILE_DIR}/trampoline_v1.py"
+exit ${ret_code}
diff --git a/.repo-metadata.json b/.repo-metadata.json
new file mode 100644
index 0000000..4c8ebe1
--- /dev/null
+++ b/.repo-metadata.json
@@ -0,0 +1,10 @@
+{
+  "name": "google-auth-library-python",
+  "name_pretty": "Google Auth Python Library",
+  "client_documentation": "https://googleapis.dev/python/google-auth-library-python/latest",
+  "issue_tracker": "https://github.com/googleapis/google-auth-library-python/issues",
+  "release_level": "ga",
+  "language": "python",
+  "repo": "googleapis/google-auth-library-python",
+  "distribution_name": "google-auth"
+}
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 7335fd7..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,47 +0,0 @@
-language: python
-sudo: false
-matrix:
-  include:
-  - python: 3.6
-    env: TOXENV=lint
-  - python: 3.6
-    env: TOXENV=docs
-  - python: 2.7
-    env: TOXENV=py27
-  - python: 3.4
-    env: TOXENV=py34
-  - python: 3.5
-    env: TOXENV=py35
-  - python: 3.6
-    env: TOXENV=py36
-  - python: pypy
-    env: TOXENV=pypy
-  - python: 3.6
-    env: TOXENV=cover
-  - python: 3.6
-    env: TOXENV=py36-system SYSTEM_TEST=1 SKIP_APP_ENGINE_SYSTEM_TEST=1
-  - python: 2.7
-    env: TOXENV=py27-system SYSTEM_TEST=1 SKIP_APP_ENGINE_SYSTEM_TEST=1
-  - python: 3.6
-    env: TOXENV=pytype
-cache:
-  directories:
-  - ${HOME}/.cache
-install:
-- pip install --upgrade tox
-script:
-- scripts/travis.sh
-deploy:
-  provider: pypi
-  user: google_opensource
-  password:
-    secure: bThsMsG/1fg2NlAygLI8GkDc/kGD3TmXUrqmPU9cc6Tym8sMzPYMiDpJk76ttLAV+gfEI++ROvcul4cgW6Jz5d5xJp4sbQAN4eZOyO3Q3hiVPvhuu6wPMM22j8YfT7rmh710moyBujxJccVDCNAJo/3nAbAQVScP8l89YDW5LF9ckgLPLKG0gDEfwLk8ZVlJg8lRsJ7PTWnAp7nfrvXRiBNPEe8yie654wcxV/xzQwAHLSJhAfpBdTHxvUoFazynn+DvGF/zF5R3n3XSPvctGT6tQNr7GDmdp1EqsOL7y2NbunzIDEoN/wUKlmTRcJVownVyLdISNBo3GjbsyOZGwsj86bKpVIgwhFrkZe7BOV9Fqq5wBl7kTvVf5j/FnLrsQaPyGlgHHxNqXSRqjUosT7BGnuTErmhO130Z6q6iXErrCNfBM+sbuLv+LF+vlMuVSdeU/TBGjf5j0ODmsGGF3EuKtudgD64O8L81/ybKo1CxcRoXbK7+pJhvhSAmkFdZ99A22+wiLNe7B1FVmu6ZfO0WO0GPLKsE+1Xn3xxcrX0wO6rE+uXH4CSQEgLza/CltKNL671dZZMJAUsNAVanwKIKCsNu7viOpUVejESyK7I1SA6B5yX74iA/yhunLLnPuPLANbkug7Ob/i5Z1IruWzpEyqm0CC4HfMPvg7FA+Kc=
-  on:
-    tags: true
-    distributions: sdist bdist_wheel
-    repo: googleapis/google-auth-library-python
-    condition: "$TOXENV = \"cover\""
-env:
-  global:
-  - secure: s6GdhJklftl8w/9WoETwLtvtKL4ledPA/TuBuqCXQxSuYWaPuTdRVcvoejGkHJpp7i/7v2T/0etYl+5koyskKm5+QZZweaaL7MAyjPGp+hmIaIlWQRz6w481NOf3i9uSmoQycssT0mNmwScNIqo+igbA2y14mr/e9aBuOcxNNzNzFQp2vaRMEju6q7xZMjYdcudUWL48vq9CoNa3X2ZArpqjkApR/TfYlG7glOj43NxuVDN4z9wIyUjaMHBfPgEhjaOaRyEFgEYITRwX1qDoXqcZdTVIq4Cn0uCH+Mvrz6Y+oUJGTJqH1k7N/DhzbSN9lJnVYaQW/yuvGHiGAwbb6Tcxiq2UqqhA9MfbPpmstDECs46v9Z3BT252KvYEQY7Q1v9g2gFhHvFGWISUxs80rnnPhEYfa11JoLvj2t8cowkE4pvj4OH32Eoyvc5H07hW3F5xpuF7Jt7N09TNZkUrpmiRJEhfrVNgjsrWO77/q5h8mXGd+9vYmz++yzKu+63x8x1MpeigGCG73Dpu9Otm5eydOZfpJ39ZfZWUb7G2JahgHaGweM9dmnpJtzHQgijmHjjfAx9jgnQ8IQz9nkFmyMI8H7HouwalnrJtpSSbvMqOQ0kiZhMzdBKH5pD3tjLgSlgA0pKelBwlooY6jGlj4LrtbDAxa6cZyXiFoqWpT1w=
-  - CLOUD_SDK_ROOT: ${HOME}/.cache/cloud-sdk
diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst
index 8581688..f95b1f1 100644
--- a/CONTRIBUTING.rst
+++ b/CONTRIBUTING.rst
@@ -11,36 +11,92 @@
 Making changes
 --------------
 
-A few notes on making changes to ``google-auth-libary-python``.
+A few notes on making changes to ``google-auth-library-python``.
 
 - If you've added a new feature or modified an existing feature, be sure to
   add or update any applicable documentation in docstrings and in the
   documentation (in ``docs/``). You can re-generate the reference documentation
-  using ``tox -e docgen``.
+  using ``nox -s docgen``.
 
 - The change must work fully on the following CPython versions: 2.7,
-  3.4, and 3.5 across macOS, Linux, and Windows.
+  3.5, 3.6, 3.7 across macOS, Linux, and Windows.
 
 - The codebase *must* have 100% test statement coverage after each commit.
-  You can test coverage via ``tox -e cover``.
+  You can test coverage via ``nox -e cover``.
 
 Testing changes
 ---------------
 
-To test your changes, run unit tests with ``tox``::
+To test your changes, run unit tests with ``nox``::
 
-    $ tox -e py27
-    $ tox -e py34
-    $ tox -e py35
+    $ nox -s unit
+
+
+Running system tests
+--------------------
+
+You can run the system tests with ``nox``::
+
+    $ nox -f system_tests/noxfile.py
+
+To run a single session, specify it with ``nox -s``::
+
+    $ nox -f system_tests/noxfile.py -s service_account
+
+To run system tests locally, you will need to set up a data directory ::
+
+    $ mkdir system_tests/data
+
+Add a service account file and authorized user file to the data directory.
+Your directory should look like this ::
+
+  system_tests/
+      data/
+        service_account.json
+        authorized_user.json
+
+The files must be named exactly ``service_account.json``
+and ``authorized_user.json``. See `Creating and Managing Service Account Keys`_ for how to
+obtain a service account. 
+
+Use the `gcloud CLI`_ to get an authorized user file ::
+
+    $ gcloud auth application-default login --scopes=https://www.googleapis.com/auth/userinfo.email,https://www.googleapis.com/auth/cloud-platform,openid
+
+You will see something like::
+
+    Credentials saved to file: [/usr/local/home/.config/gcloud/application_default_credentials.json]```
+
+Copy the contents of the file to ``authorized_user.json``.
+
+.. _Creating and Managing Service Account Keys: https://cloud.google.com/iam/docs/creating-managing-service-account-keys
+.. _gcloud CLI: https://cloud.google.com/sdk/gcloud/
+
+App Engine System Tests
+^^^^^^^^^^^^^^^^^^^^^^^
+
+To run the App Engine tests, you wil need to deploy a default App Engine service.
+If you already have a default service associated with your project, you can skip this step.
+
+Edit ``app.yaml`` so ``service`` is ``default`` instead of ``google-auth-system-tests``.
+From ``system_tests/app_engine_test_app`` run the following commands ::
+
+    $ pip install --target-lib -r requirements.txt
+    $ gcloud app deploy -q app.yaml
+
+After the app is deployed, change ``service`` in ``app.yaml`` back to ``google-auth-system-tests``. 
+You can now run the App Engine tests: ::
+
+    $ nox -f system_tests/noxfile.py -s app_engine
 
 Coding Style
 ------------
 
 This library is PEP8 & Pylint compliant. Our Pylint config is defined at
 ``pylintrc`` for package code and ``pylintrc.tests`` for test code. Use
-``tox`` to check for non-compliant code::
+``nox`` to check for non-compliant code::
 
-   $ tox -e lint
+   $ nox -s lint
 
 Documentation Coverage and Building HTML Documentation
 ------------------------------------------------------
@@ -50,9 +106,9 @@
 changed to reflect the bug fix, ideally in the same commit that fixes the bug
 or adds the feature.
 
-To build and review docs use  ``tox``::
+To build and review docs use  ``nox``::
 
-   $ tox -e docs
+   $ nox -s docs
 
 The HTML version of the docs will be built in ``docs/_build/html``
 
diff --git a/README.rst b/README.rst
index 3d7ba76..c7dfcea 100644
--- a/README.rst
+++ b/README.rst
@@ -6,16 +6,10 @@
 This library simplifies using Google's various server-to-server authentication
 mechanisms to access Google APIs.
 
-.. |build| image:: https://travis-ci.org/GoogleCloudPlatform/google-auth-library-python.svg?branch=master
-   :target: https://travis-ci.org/GoogleCloudPlatform/google-auth-library-python
 .. |docs| image:: https://readthedocs.org/projects/google-auth/badge/?version=latest
    :target: https://google-auth.readthedocs.io/en/latest/
 .. |pypi| image:: https://img.shields.io/pypi/v/google-auth.svg
    :target: https://pypi.python.org/pypi/google-auth
-.. |compat_check_pypi| image:: https://python-compatibility-tools.appspot.com/one_badge_image?package=google-auth
-   :target: https://python-compatibility-tools.appspot.com/one_badge_target?package=google-auth
-.. |compat_check_github| image:: https://python-compatibility-tools.appspot.com/one_badge_image?package=git%2Bgit%3A//github.com/googleapis/google-auth-library-python.git
-   :target: https://python-compatibility-tools.appspot.com/one_badge_target?package=git%2Bgit%3A//github.com/googleapis/google-auth-library-python.git
 
 Installing
 ----------
diff --git a/docs/conf.py b/docs/conf.py
index 831c752..db1872e 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -368,7 +368,7 @@
 intersphinx_mapping = {
     "python": ("https://docs.python.org/3.5", None),
     "urllib3": ("https://urllib3.readthedocs.io/en/stable", None),
-    "requests": ("http://docs.python-requests.org/en/stable", None),
+    "requests": ("https://requests.kennethreitz.org/en/master/", None),
     "requests-oauthlib": ("http://requests-oauthlib.readthedocs.io/en/stable", None),
 }
 
diff --git a/noxfile.py b/noxfile.py
new file mode 100644
index 0000000..aaf1bc5
--- /dev/null
+++ b/noxfile.py
@@ -0,0 +1,118 @@
+# Copyright 2019 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import nox
+
+TEST_DEPENDENCIES = [
+    "flask",
+    "mock",
+    "oauth2client",
+    "pytest",
+    "pytest-cov",
+    "pytest-localserver",
+    "requests",
+    "urllib3",
+    "cryptography",
+    "grpcio",
+]
+BLACK_VERSION = "black==19.3b0"
+BLACK_PATHS = ["google", "tests", "noxfile.py", "setup.py", "docs/conf.py"]
+
+
+@nox.session(python="3.7")
+def lint(session):
+    session.install("flake8", "flake8-import-order", "docutils", BLACK_VERSION)
+    session.install(".")
+    session.run("black", "--check", *BLACK_PATHS)
+    session.run(
+        "flake8",
+        "--import-order-style=google",
+        "--application-import-names=google,tests,system_tests",
+        "google",
+        "tests",
+    )
+    session.run(
+        "python", "setup.py", "check", "--metadata", "--restructuredtext", "--strict"
+    )
+
+
+@nox.session(python="3.6")
+def blacken(session):
+    """Run black.
+
+    Format code to uniform standard.
+
+    This currently uses Python 3.6 due to the automated Kokoro run of synthtool.
+    That run uses an image that doesn't have 3.6 installed. Before updating this
+    check the state of the `gcp_ubuntu_config` we use for that Kokoro run.
+    """
+    session.install(BLACK_VERSION)
+    session.run("black", *BLACK_PATHS)
+
+
+@nox.session(python=["2.7", "3.5", "3.6", "3.7"])
+def unit(session):
+    session.install(*TEST_DEPENDENCIES)
+    session.install(".")
+    session.run(
+        "pytest", "--cov=google.auth", "--cov=google.oauth2", "--cov=tests", "tests"
+    )
+
+
+@nox.session(python="3.7")
+def cover(session):
+    session.install(*TEST_DEPENDENCIES)
+    session.install(".")
+    session.run(
+        "pytest",
+        "--cov=google.auth",
+        "--cov=google.oauth2",
+        "--cov=tests",
+        "--cov-report=",
+        "tests",
+    )
+    session.run("coverage", "report", "--show-missing", "--fail-under=100")
+
+
+@nox.session(python="3.7")
+def docgen(session):
+    session.env["SPHINX_APIDOC_OPTIONS"] = "members,inherited-members,show-inheritance"
+    session.install(*TEST_DEPENDENCIES)
+    session.install("sphinx")
+    session.install(".")
+    session.run("rm", "-r", "docs/reference")
+    session.run(
+        "sphinx-apidoc",
+        "--output-dir",
+        "docs/reference",
+        "--separate",
+        "--module-first",
+        "google",
+    )
+
+
+@nox.session(python="3.7")
+def docs(session):
+    session.install("sphinx", "-r", "docs/requirements-docs.txt")
+    session.install(".")
+    session.run("make", "-C", "docs", "html")
+
+
+@nox.session(python="pypy")
+def pypy(session):
+    session.install(*TEST_DEPENDENCIES)
+    session.install(".")
+    session.run(
+        "pytest", "--cov=google.auth", "--cov=google.oauth2", "--cov=tests", "tests"
+    )
diff --git a/scripts/decrypt-secrets.sh b/scripts/decrypt-secrets.sh
index e02bfc1..f0ef994 100755
--- a/scripts/decrypt-secrets.sh
+++ b/scripts/decrypt-secrets.sh
@@ -20,8 +20,11 @@
 # Work from the project root.
 cd $ROOT
 
-openssl aes-256-cbc -k "$1" \
-    -in system_tests/secrets.tar.enc \
-    -out system_tests/secrets.tar -d
+gcloud kms decrypt \
+  --location=global \
+  --keyring=ci \
+  --key=kokoro-secrets \
+  --ciphertext-file=system_tests/secrets.tar.enc \
+  --plaintext-file=system_tests/secrets.tar
 tar xvf system_tests/secrets.tar
 rm system_tests/secrets.tar
diff --git a/scripts/encrypt-secrets.sh b/scripts/encrypt-secrets.sh
index c6291b7..b6521e8 100755
--- a/scripts/encrypt-secrets.sh
+++ b/scripts/encrypt-secrets.sh
@@ -20,13 +20,13 @@
 # Work from the project root.
 cd $ROOT
 
-read -s -p "Enter password for encryption: " PASSWORD
-echo
-
 tar cvf system_tests/secrets.tar system_tests/data
-openssl aes-256-cbc -k "$PASSWORD" \
-    -in system_tests/secrets.tar \
-    -out system_tests/secrets.tar.enc
-rm system_tests/secrets.tar
 
-travis encrypt "SECRETS_PASSWORD=$PASSWORD" --add --override
+gcloud kms encrypt \
+  --location=global  \
+  --keyring=ci \
+  --key=kokoro-secrets \
+  --plaintext-file=system_tests/secrets.tar \
+  --ciphertext-file=system_tests/secrets.tar.enc
+
+rm system_tests/secrets.tar
\ No newline at end of file
diff --git a/scripts/obtain_user_auth.py b/scripts/obtain_user_auth.py
deleted file mode 100644
index ae86466..0000000
--- a/scripts/obtain_user_auth.py
+++ /dev/null
@@ -1,65 +0,0 @@
-# Copyright 2016 Google Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""This program obtains a set of user credentials.
-
-These credentials are needed to run the system test for OAuth2 credentials.
-It's expected that a developer will run this program manually once to obtain
-a refresh token. It's highly recommended to use a Google account created
-specifically for testing.
-"""
-
-import json
-import os
-
-from oauth2client import client
-from oauth2client import tools
-
-HERE = os.path.dirname(__file__)
-CLIENT_SECRETS_PATH = os.path.abspath(os.path.join(
-    HERE, '..', 'system_tests', 'data', 'client_secret.json'))
-AUTHORIZED_USER_PATH = os.path.abspath(os.path.join(
-    HERE, '..', 'system_tests', 'data', 'authorized_user.json'))
-SCOPES = ['email', 'profile']
-
-
-class NullStorage(client.Storage):
-    """Null storage implementation to prevent oauth2client from failing
-    on storage.put."""
-    def locked_put(self, credentials):
-        pass
-
-
-def main():
-    flow = client.flow_from_clientsecrets(CLIENT_SECRETS_PATH, SCOPES)
-
-    print('Starting credentials flow...')
-    credentials = tools.run_flow(flow, NullStorage())
-
-    # Save the credentials in the same format as the Cloud SDK's authorized
-    # user file.
-    data = {
-        'type': 'authorized_user',
-        'client_id': flow.client_id,
-        'client_secret': flow.client_secret,
-        'refresh_token': credentials.refresh_token
-    }
-
-    with open(AUTHORIZED_USER_PATH, 'w') as fh:
-        json.dump(data, fh, indent=4)
-
-    print('Created {}.'.format(AUTHORIZED_USER_PATH))
-
-if __name__ == '__main__':
-    main()
diff --git a/scripts/travis.sh b/scripts/travis.sh
index 28bf5fa..2c34091 100755
--- a/scripts/travis.sh
+++ b/scripts/travis.sh
@@ -37,6 +37,6 @@
     fi
 fi
 
-# Run tox.
-echo "Running tox..."
-tox
+# Run nox.
+echo "Running nox..."
+nox
\ No newline at end of file
diff --git a/setup.cfg b/setup.cfg
index 0f15a38..7c2b287 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,17 +1,2 @@
 [bdist_wheel]
-universal = 1
-
-[pytype]
-# Where to start analysis.
-inputs = .
-# Some files aren't worth analyzing, namely tests. Hidden directories (e.g.
-# .tox) are automatically filtered out.
-exclude = tests system_tests
-# All pytype output goes here.
-output = pytype_output
-# Python version (major.minor) of the target code.
-python_version = 3.6
-# Paths to source code directories, separated by ':'.
-pythonpath = .
-# Errors to disable.
-disable = pyi-error
+universal = 1
\ No newline at end of file
diff --git a/synth.metadata b/synth.metadata
new file mode 100644
index 0000000..ebfeb7f
--- /dev/null
+++ b/synth.metadata
@@ -0,0 +1,12 @@
+{
+  "updateTime": "2019-09-12T22:40:28.148018Z",
+  "sources": [
+    {
+      "template": {
+        "name": "python_library",
+        "origin": "synthtool.gcp",
+        "version": "2019.5.2"
+      }
+    }
+  ]
+}
\ No newline at end of file
diff --git a/synth.py b/synth.py
new file mode 100644
index 0000000..069b214
--- /dev/null
+++ b/synth.py
@@ -0,0 +1,10 @@
+import synthtool as s
+from synthtool import gcp
+
+common = gcp.CommonTemplates()
+
+# ----------------------------------------------------------------------------
+# Add templated files
+# ----------------------------------------------------------------------------
+templated_files = common.py_library(unit_cov_level=100, cov_level=100)
+s.move(templated_files / '.kokoro')  # just move kokoro configs
\ No newline at end of file
diff --git a/system_tests/.gitignore b/system_tests/.gitignore
index f6bf39d..be60550 100644
--- a/system_tests/.gitignore
+++ b/system_tests/.gitignore
@@ -1,2 +1,2 @@
 data
-secrets.tar
+secrets.tar
\ No newline at end of file
diff --git a/system_tests/noxfile.py b/system_tests/noxfile.py
index 5f9291a..864a5be 100644
--- a/system_tests/noxfile.py
+++ b/system_tests/noxfile.py
@@ -26,10 +26,12 @@
 import subprocess
 
 from nox.command import which
+import nox
 import py.path
 
 
 HERE = os.path.abspath(os.path.dirname(__file__))
+LIBRARY_DIR = os.path.join(HERE, "..")
 DATA_DIR = os.path.join(HERE, "data")
 SERVICE_ACCOUNT_FILE = os.path.join(DATA_DIR, "service_account.json")
 AUTHORIZED_USER_FILE = os.path.join(DATA_DIR, "authorized_user.json")
@@ -167,66 +169,88 @@
 
 # Test sesssions
 
+TEST_DEPENDENCIES = ["pytest", "requests"]
+PYTHON_VERSIONS=['2.7', '3.7']
 
-def session_service_account(session):
-    session.virtualenv = False
+@nox.session(python=PYTHON_VERSIONS)
+def service_account(session):
+    session.install(*TEST_DEPENDENCIES)
+    session.install(LIBRARY_DIR)
     session.run("pytest", "test_service_account.py")
 
 
-def session_oauth2_credentials(session):
-    session.virtualenv = False
+@nox.session(python=PYTHON_VERSIONS)
+def oauth2_credentials(session):
+    session.install(*TEST_DEPENDENCIES)
+    session.install(LIBRARY_DIR)
     session.run("pytest", "test_oauth2_credentials.py")
 
 
-def session_default_explicit_service_account(session):
-    session.virtualenv = False
+@nox.session(python=PYTHON_VERSIONS)
+def default_explicit_service_account(session):
     session.env[EXPLICIT_CREDENTIALS_ENV] = SERVICE_ACCOUNT_FILE
     session.env[EXPECT_PROJECT_ENV] = "1"
+    session.install(*TEST_DEPENDENCIES)
+    session.install(LIBRARY_DIR)
     session.run("pytest", "test_default.py")
 
 
-def session_default_explicit_authorized_user(session):
-    session.virtualenv = False
+@nox.session(python=PYTHON_VERSIONS)
+def default_explicit_authorized_user(session):
     session.env[EXPLICIT_CREDENTIALS_ENV] = AUTHORIZED_USER_FILE
+    session.install(*TEST_DEPENDENCIES)
+    session.install(LIBRARY_DIR)
     session.run("pytest", "test_default.py")
 
 
-def session_default_explicit_authorized_user_explicit_project(session):
-    session.virtualenv = False
+@nox.session(python=PYTHON_VERSIONS)
+def default_explicit_authorized_user_explicit_project(session):
     session.env[EXPLICIT_CREDENTIALS_ENV] = AUTHORIZED_USER_FILE
     session.env[EXPLICIT_PROJECT_ENV] = "example-project"
     session.env[EXPECT_PROJECT_ENV] = "1"
+    session.install(*TEST_DEPENDENCIES)
+    session.install(LIBRARY_DIR)
     session.run("pytest", "test_default.py")
 
 
-def session_default_cloud_sdk_service_account(session):
-    session.virtualenv = False
+@nox.session(python=PYTHON_VERSIONS)
+def default_cloud_sdk_service_account(session):
     configure_cloud_sdk(session, SERVICE_ACCOUNT_FILE)
     session.env[EXPECT_PROJECT_ENV] = "1"
+    session.install(*TEST_DEPENDENCIES)
+    session.install(LIBRARY_DIR)
     session.run("pytest", "test_default.py")
 
 
-def session_default_cloud_sdk_authorized_user(session):
-    session.virtualenv = False
+@nox.session(python=PYTHON_VERSIONS)
+def default_cloud_sdk_authorized_user(session):
     configure_cloud_sdk(session, AUTHORIZED_USER_FILE)
+    session.install(*TEST_DEPENDENCIES)
+    session.install(LIBRARY_DIR)
     session.run("pytest", "test_default.py")
 
 
-def session_default_cloud_sdk_authorized_user_configured_project(session):
-    session.virtualenv = False
+@nox.session(python=PYTHON_VERSIONS)
+def default_cloud_sdk_authorized_user_configured_project(session):
     configure_cloud_sdk(session, AUTHORIZED_USER_FILE, project=True)
     session.env[EXPECT_PROJECT_ENV] = "1"
+    session.install(*TEST_DEPENDENCIES)
+    session.install(LIBRARY_DIR)
     session.run("pytest", "test_default.py")
 
 
-def session_compute_engine(session):
-    session.virtualenv = False
+@nox.session(python=PYTHON_VERSIONS)
+def compute_engine(session):
+    session.install(*TEST_DEPENDENCIES)
+    # unset Application Default Credentials so
+    # credentials are detected from environment
+    del session.virtualenv.env["GOOGLE_APPLICATION_CREDENTIALS"]
+    session.install(LIBRARY_DIR)
     session.run("pytest", "test_compute_engine.py")
 
 
-def session_app_engine(session):
-    session.virtualenv = False
-
+@nox.session(python=["2.7"])
+def app_engine(session):
     if SKIP_GAE_TEST_ENV in os.environ:
         session.log("Skipping App Engine tests.")
         return
@@ -252,6 +276,8 @@
 
     # Vendor in the test application's dependencies
     session.chdir(os.path.join(HERE, "app_engine_test_app"))
+    session.install(*TEST_DEPENDENCIES)
+    session.install(LIBRARY_DIR)
     session.run(
         "pip", "install", "--target", "lib", "-r", "requirements.txt", silent=True
     )
@@ -265,7 +291,9 @@
     session.run("pytest", "test_app_engine.py")
 
 
-def session_grpc(session):
-    session.virtualenv = False
+@nox.session(python=PYTHON_VERSIONS)
+def grpc(session):
+    session.install(LIBRARY_DIR)
+    session.install(*TEST_DEPENDENCIES, "google-cloud-pubsub==1.0.0")
     session.env[EXPLICIT_CREDENTIALS_ENV] = SERVICE_ACCOUNT_FILE
     session.run("pytest", "test_grpc.py")
diff --git a/system_tests/secrets.tar.enc b/system_tests/secrets.tar.enc
index e61707e..1106f8a 100644
--- a/system_tests/secrets.tar.enc
+++ b/system_tests/secrets.tar.enc
Binary files differ
diff --git a/system_tests/test_compute_engine.py b/system_tests/test_compute_engine.py
index 3fd420c..44f1627 100644
--- a/system_tests/test_compute_engine.py
+++ b/system_tests/test_compute_engine.py
@@ -15,8 +15,8 @@
 import pytest
 
 import google.auth
-from google.auth import _helpers
 from google.auth import compute_engine
+from google.auth import _helpers
 from google.auth import exceptions
 from google.auth.compute_engine import _metadata
 
diff --git a/system_tests/test_grpc.py b/system_tests/test_grpc.py
index ea52830..f025fc0 100644
--- a/system_tests/test_grpc.py
+++ b/system_tests/test_grpc.py
@@ -16,7 +16,9 @@
 import google.auth.credentials
 import google.auth.jwt
 import google.auth.transport.grpc
-from google.cloud.gapic.pubsub.v1 import publisher_client
+from google.cloud import pubsub_v1
+from google.cloud.pubsub_v1.gapic import publisher_client
+from google.cloud.pubsub_v1.gapic.transports import publisher_grpc_transport
 
 
 def test_grpc_request_with_regular_credentials(http_request):
@@ -25,12 +27,13 @@
         credentials, ["https://www.googleapis.com/auth/pubsub"]
     )
 
-    channel = google.auth.transport.grpc.secure_authorized_channel(
-        credentials, http_request, publisher_client.PublisherClient.SERVICE_ADDRESS
+    transport = publisher_grpc_transport.PublisherGrpcTransport(
+        address=publisher_client.PublisherClient.SERVICE_ADDRESS,
+        credentials=credentials,
     )
 
     # Create a pub/sub client.
-    client = publisher_client.PublisherClient(channel=channel)
+    client = pubsub_v1.PublisherClient(transport=transport)
 
     # list the topics and drain the iterator to test that an authorized API
     # call works.
@@ -40,19 +43,18 @@
 
 def test_grpc_request_with_jwt_credentials():
     credentials, project_id = google.auth.default()
-    audience = "https://{}/google.pubsub.v1.Publisher".format(
-        publisher_client.PublisherClient.SERVICE_ADDRESS
-    )
+    audience = "https://pubsub.googleapis.com/google.pubsub.v1.Publisher"
     credentials = google.auth.jwt.Credentials.from_signing_credentials(
         credentials, audience=audience
     )
 
-    channel = google.auth.transport.grpc.secure_authorized_channel(
-        credentials, None, publisher_client.PublisherClient.SERVICE_ADDRESS
+    transport = publisher_grpc_transport.PublisherGrpcTransport(
+        address=publisher_client.PublisherClient.SERVICE_ADDRESS,
+        credentials=credentials,
     )
 
     # Create a pub/sub client.
-    client = publisher_client.PublisherClient(channel=channel)
+    client = pubsub_v1.PublisherClient(transport=transport)
 
     # list the topics and drain the iterator to test that an authorized API
     # call works.
@@ -66,12 +68,13 @@
         credentials
     )
 
-    channel = google.auth.transport.grpc.secure_authorized_channel(
-        credentials, None, publisher_client.PublisherClient.SERVICE_ADDRESS
+    transport = publisher_grpc_transport.PublisherGrpcTransport(
+        address=publisher_client.PublisherClient.SERVICE_ADDRESS,
+        credentials=credentials,
     )
 
     # Create a pub/sub client.
-    client = publisher_client.PublisherClient(channel=channel)
+    client = pubsub_v1.PublisherClient(transport=transport)
 
     # list the topics and drain the iterator to test that an authorized API
     # call works.
diff --git a/system_tests/test_oauth2_credentials.py b/system_tests/test_oauth2_credentials.py
index a33b89f..3ecd850 100644
--- a/system_tests/test_oauth2_credentials.py
+++ b/system_tests/test_oauth2_credentials.py
@@ -17,7 +17,7 @@
 from google.auth import _helpers
 import google.oauth2.credentials
 
-GOOGLE_OAUTH2_TOKEN_ENDPOINT = "https://accounts.google.com/o/oauth2/token"
+GOOGLE_OAUTH2_TOKEN_ENDPOINT = "https://oauth2.googleapis.com/token"
 
 
 def test_refresh(authorized_user_file, http_request, token_info):
@@ -39,9 +39,13 @@
     info = token_info(credentials.token)
 
     info_scopes = _helpers.string_to_scopes(info["scope"])
+
+    # Canonical list of scopes at https://cloud.google.com/sdk/gcloud/reference/auth/application-default/login
+    # or do `gcloud auth application-defaut login --help`
     assert set(info_scopes) == set(
         [
             "https://www.googleapis.com/auth/userinfo.email",
-            "https://www.googleapis.com/auth/userinfo.profile",
+            "https://www.googleapis.com/auth/cloud-platform",
+            "openid",
         ]
     )
diff --git a/tox.ini b/tox.ini
deleted file mode 100644
index 59fd6ab..0000000
--- a/tox.ini
+++ /dev/null
@@ -1,92 +0,0 @@
-[tox]
-envlist = lint,py27,py34,py35,py36,pypy,cover,pytype
-
-[testenv]
-deps =
-  certifi
-  flask
-  mock
-  oauth2client
-  pytest
-  pytest-cov
-  pytest-localserver
-  requests
-  requests-oauthlib
-  urllib3
-  cryptography
-  grpcio; platform_python_implementation != 'PyPy'
-commands =
-  pytest --cov=google.auth --cov=google.oauth2 --cov=tests {posargs:tests}
-
-[testenv:cover]
-basepython = python3.6
-commands =
-  pytest --cov=google.auth --cov=google.oauth2 --cov=tests --cov-report= tests
-  coverage report --show-missing --fail-under=100
-deps =
-  {[testenv]deps}
-
-[testenv:py36-system]
-basepython = python3.6
-changedir = {toxinidir}/system_tests
-commands =
-  nox {posargs}
-deps =
-  {[testenv]deps}
-  nox-automation
-  gapic-google-cloud-pubsub-v1==0.15.0
-passenv =
-  SKIP_APP_ENGINE_SYSTEM_TEST
-  CLOUD_SDK_ROOT
-
-[testenv:py27-system]
-basepython = python2.7
-changedir = {toxinidir}/system_tests
-commands =
-  nox {posargs}
-deps =
-  {[testenv]deps}
-  nox-automation
-  gapic-google-cloud-pubsub-v1==0.15.0
-passenv =
-  SKIP_APP_ENGINE_SYSTEM_TEST
-  CLOUD_SDK_ROOT
-
-[testenv:docgen]
-basepython = python3.6
-deps =
-  {[testenv]deps}
-  sphinx
-setenv =
-  SPHINX_APIDOC_OPTIONS=members,inherited-members,show-inheritance
-commands =
-  rm -r docs/reference
-  sphinx-apidoc --output-dir docs/reference --separate --module-first google
-
-[testenv:docs]
-basepython = python3.6
-deps =
-  sphinx
-  -r{toxinidir}/docs/requirements-docs.txt
-commands = make -C docs html
-
-[testenv:lint]
-basepython = python3.6
-commands =
-  flake8 \
-    --import-order-style=google \
-    --application-import-names="google,tests,system_tests" \
-    google tests
-  python setup.py check --metadata --restructuredtext --strict
-deps =
-  flake8
-  flake8-import-order
-  docutils
-
-[testenv:pytype]
-basepython = python3.6
-commands =
-  pytype
-deps =
-  {[testenv]deps}
-  pytype
