diff --git a/packages/google-cloud-compute/.kokoro/docker/docs/Dockerfile b/packages/google-cloud-compute/.kokoro/docker/docs/Dockerfile
index 412b0b56a921..4e1b1fb8b5a5 100644
--- a/packages/google-cloud-compute/.kokoro/docker/docs/Dockerfile
+++ b/packages/google-cloud-compute/.kokoro/docker/docs/Dockerfile
@@ -40,6 +40,7 @@ RUN apt-get update \
libssl-dev \
libsqlite3-dev \
portaudio19-dev \
+ python3-distutils \
redis-server \
software-properties-common \
ssh \
@@ -59,40 +60,8 @@ RUN apt-get update \
&& rm -rf /var/lib/apt/lists/* \
&& rm -f /var/cache/apt/archives/*.deb
-
-COPY fetch_gpg_keys.sh /tmp
-# Install the desired versions of Python.
-RUN set -ex \
- && export GNUPGHOME="$(mktemp -d)" \
- && echo "disable-ipv6" >> "${GNUPGHOME}/dirmngr.conf" \
- && /tmp/fetch_gpg_keys.sh \
- && for PYTHON_VERSION in 3.7.8 3.8.5; do \
- wget --no-check-certificate -O python-${PYTHON_VERSION}.tar.xz "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz" \
- && wget --no-check-certificate -O python-${PYTHON_VERSION}.tar.xz.asc "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc" \
- && gpg --batch --verify python-${PYTHON_VERSION}.tar.xz.asc python-${PYTHON_VERSION}.tar.xz \
- && rm -r python-${PYTHON_VERSION}.tar.xz.asc \
- && mkdir -p /usr/src/python-${PYTHON_VERSION} \
- && tar -xJC /usr/src/python-${PYTHON_VERSION} --strip-components=1 -f python-${PYTHON_VERSION}.tar.xz \
- && rm python-${PYTHON_VERSION}.tar.xz \
- && cd /usr/src/python-${PYTHON_VERSION} \
- && ./configure \
- --enable-shared \
- # This works only on Python 2.7 and throws a warning on every other
- # version, but seems otherwise harmless.
- --enable-unicode=ucs4 \
- --with-system-ffi \
- --without-ensurepip \
- && make -j$(nproc) \
- && make install \
- && ldconfig \
- ; done \
- && rm -rf "${GNUPGHOME}" \
- && rm -rf /usr/src/python* \
- && rm -rf ~/.cache/
-
RUN wget -O /tmp/get-pip.py 'https://bootstrap.pypa.io/get-pip.py' \
- && python3.7 /tmp/get-pip.py \
&& python3.8 /tmp/get-pip.py \
&& rm /tmp/get-pip.py
-CMD ["python3.7"]
+CMD ["python3.8"]
diff --git a/packages/google-cloud-compute/.kokoro/docker/docs/fetch_gpg_keys.sh b/packages/google-cloud-compute/.kokoro/docker/docs/fetch_gpg_keys.sh
deleted file mode 100755
index d653dd868e4b..000000000000
--- a/packages/google-cloud-compute/.kokoro/docker/docs/fetch_gpg_keys.sh
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/bin/bash
-# Copyright 2020 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.
-
-# A script to fetch gpg keys with retry.
-# Avoid jinja parsing the file.
-#
-
-function retry {
- if [[ "${#}" -le 1 ]]; then
- echo "Usage: ${0} retry_count commands.."
- exit 1
- fi
- local retries=${1}
- local command="${@:2}"
- until [[ "${retries}" -le 0 ]]; do
- $command && return 0
- if [[ $? -ne 0 ]]; then
- echo "command failed, retrying"
- ((retries--))
- fi
- done
- return 1
-}
-
-# 3.6.9, 3.7.5 (Ned Deily)
-retry 3 gpg --keyserver ha.pool.sks-keyservers.net --recv-keys \
- 0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D
-
-# 3.8.0 (Ćukasz Langa)
-retry 3 gpg --keyserver ha.pool.sks-keyservers.net --recv-keys \
- E3FF2839C048B25C084DEBE9B26995E310250568
-
-#
diff --git a/packages/google-cloud-compute/.kokoro/samples/python3.9/common.cfg b/packages/google-cloud-compute/.kokoro/samples/python3.9/common.cfg
new file mode 100644
index 000000000000..52e4c47c041d
--- /dev/null
+++ b/packages/google-cloud-compute/.kokoro/samples/python3.9/common.cfg
@@ -0,0 +1,40 @@
+# Format: //devtools/kokoro/config/proto/build.proto
+
+# Build logs will be here
+action {
+ define_artifacts {
+ regex: "**/*sponge_log.xml"
+ }
+}
+
+# Specify which tests to run
+env_vars: {
+ key: "RUN_TESTS_SESSION"
+ value: "py-3.9"
+}
+
+# Declare build specific Cloud project.
+env_vars: {
+ key: "BUILD_SPECIFIC_GCLOUD_PROJECT"
+ value: "python-docs-samples-tests-py39"
+}
+
+env_vars: {
+ key: "TRAMPOLINE_BUILD_FILE"
+ value: "github/python-compute/.kokoro/test-samples.sh"
+}
+
+# Configure the docker image for kokoro-trampoline.
+env_vars: {
+ key: "TRAMPOLINE_IMAGE"
+ value: "gcr.io/cloud-devrel-kokoro-resources/python-samples-testing-docker"
+}
+
+# Download secrets for samples
+gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/python-docs-samples"
+
+# Download trampoline resources.
+gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline"
+
+# Use the trampoline script to run in docker.
+build_file: "python-compute/.kokoro/trampoline.sh"
\ No newline at end of file
diff --git a/packages/google-cloud-compute/.kokoro/samples/python3.9/continuous.cfg b/packages/google-cloud-compute/.kokoro/samples/python3.9/continuous.cfg
new file mode 100644
index 000000000000..a1c8d9759c88
--- /dev/null
+++ b/packages/google-cloud-compute/.kokoro/samples/python3.9/continuous.cfg
@@ -0,0 +1,6 @@
+# Format: //devtools/kokoro/config/proto/build.proto
+
+env_vars: {
+ key: "INSTALL_LIBRARY_FROM_SOURCE"
+ value: "True"
+}
\ No newline at end of file
diff --git a/packages/google-cloud-compute/.kokoro/samples/python3.9/periodic-head.cfg b/packages/google-cloud-compute/.kokoro/samples/python3.9/periodic-head.cfg
new file mode 100644
index 000000000000..f9cfcd33e058
--- /dev/null
+++ b/packages/google-cloud-compute/.kokoro/samples/python3.9/periodic-head.cfg
@@ -0,0 +1,11 @@
+# Format: //devtools/kokoro/config/proto/build.proto
+
+env_vars: {
+ key: "INSTALL_LIBRARY_FROM_SOURCE"
+ value: "True"
+}
+
+env_vars: {
+ key: "TRAMPOLINE_BUILD_FILE"
+ value: "github/python-pubsub/.kokoro/test-samples-against-head.sh"
+}
diff --git a/packages/google-cloud-compute/.kokoro/samples/python3.9/periodic.cfg b/packages/google-cloud-compute/.kokoro/samples/python3.9/periodic.cfg
new file mode 100644
index 000000000000..50fec9649732
--- /dev/null
+++ b/packages/google-cloud-compute/.kokoro/samples/python3.9/periodic.cfg
@@ -0,0 +1,6 @@
+# Format: //devtools/kokoro/config/proto/build.proto
+
+env_vars: {
+ key: "INSTALL_LIBRARY_FROM_SOURCE"
+ value: "False"
+}
\ No newline at end of file
diff --git a/packages/google-cloud-compute/.kokoro/samples/python3.9/presubmit.cfg b/packages/google-cloud-compute/.kokoro/samples/python3.9/presubmit.cfg
new file mode 100644
index 000000000000..a1c8d9759c88
--- /dev/null
+++ b/packages/google-cloud-compute/.kokoro/samples/python3.9/presubmit.cfg
@@ -0,0 +1,6 @@
+# Format: //devtools/kokoro/config/proto/build.proto
+
+env_vars: {
+ key: "INSTALL_LIBRARY_FROM_SOURCE"
+ value: "True"
+}
\ No newline at end of file
diff --git a/packages/google-cloud-compute/.kokoro/test-samples-impl.sh b/packages/google-cloud-compute/.kokoro/test-samples-impl.sh
index cf5de74c17a5..311a8d54b9f1 100755
--- a/packages/google-cloud-compute/.kokoro/test-samples-impl.sh
+++ b/packages/google-cloud-compute/.kokoro/test-samples-impl.sh
@@ -20,9 +20,9 @@ set -eo pipefail
# Enables `**` to include files nested inside sub-folders
shopt -s globstar
-# Exit early if samples directory doesn't exist
-if [ ! -d "./samples" ]; then
- echo "No tests run. `./samples` not found"
+# Exit early if samples don't exist
+if ! find samples -name 'requirements.txt' | grep -q .; then
+ echo "No tests run. './samples/**/requirements.txt' not found"
exit 0
fi
diff --git a/packages/google-cloud-compute/.pre-commit-config.yaml b/packages/google-cloud-compute/.pre-commit-config.yaml
index 4f00c7cffcfd..62eb5a77d9a3 100644
--- a/packages/google-cloud-compute/.pre-commit-config.yaml
+++ b/packages/google-cloud-compute/.pre-commit-config.yaml
@@ -16,7 +16,7 @@
# See https://pre-commit.com/hooks.html for more hooks
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
- rev: v3.4.0
+ rev: v4.0.1
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
diff --git a/packages/google-cloud-compute/CONTRIBUTING.rst b/packages/google-cloud-compute/CONTRIBUTING.rst
index cefabb377677..6d765f1172a5 100644
--- a/packages/google-cloud-compute/CONTRIBUTING.rst
+++ b/packages/google-cloud-compute/CONTRIBUTING.rst
@@ -68,15 +68,12 @@ Using ``nox``
We use `nox `__ to instrument our tests.
- To test your changes, run unit tests with ``nox``::
+ $ nox -s unit
- $ nox -s unit-2.7
- $ nox -s unit-3.8
- $ ...
+- To run a single unit test::
-- Args to pytest can be passed through the nox command separated by a `--`. For
- example, to run a single test::
+ $ nox -s unit-3.9 -- -k
- $ nox -s unit-3.8 -- -k
.. note::
@@ -143,8 +140,7 @@ Running System Tests
- To run system tests, you can execute::
# Run all system tests
- $ nox -s system-3.8
- $ nox -s system-2.7
+ $ nox -s system
# Run a single system test
$ nox -s system-3.8 -- -k
@@ -152,9 +148,8 @@ Running System Tests
.. note::
- System tests are only configured to run under Python 2.7 and
- Python 3.8. For expediency, we do not run them in older versions
- of Python 3.
+ System tests are only configured to run under Python 3.8.
+ For expediency, we do not run them in older versions of Python 3.
This alone will not run the tests. You'll need to change some local
auth settings and change some configuration in your project to
@@ -242,8 +237,8 @@ Supported versions can be found in our ``noxfile.py`` `config`_.
.. _config: https://github.com/googleapis/python-compute/blob/master/noxfile.py
-We also explicitly decided to support Python 3 beginning with version
-3.6. Reasons for this include:
+We also explicitly decided to support Python 3 beginning with version 3.6.
+Reasons for this include:
- Encouraging use of newest versions of Python 3
- Taking the lead of `prominent`_ open-source `projects`_
diff --git a/packages/google-cloud-compute/docs/conf.py b/packages/google-cloud-compute/docs/conf.py
index 5774aeb8b4bd..3eda874a8b49 100644
--- a/packages/google-cloud-compute/docs/conf.py
+++ b/packages/google-cloud-compute/docs/conf.py
@@ -80,9 +80,9 @@
master_doc = "index"
# General information about the project.
-project = u"google-cloud-compute"
-copyright = u"2019, Google"
-author = u"Google APIs"
+project = "google-cloud-compute"
+copyright = "2019, Google"
+author = "Google APIs"
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
@@ -281,7 +281,7 @@
(
master_doc,
"google-cloud-compute.tex",
- u"google-cloud-compute Documentation",
+ "google-cloud-compute Documentation",
author,
"manual",
)
@@ -316,7 +316,7 @@
(
master_doc,
"google-cloud-compute",
- u"google-cloud-compute Documentation",
+ "google-cloud-compute Documentation",
[author],
1,
)
@@ -335,7 +335,7 @@
(
master_doc,
"google-cloud-compute",
- u"google-cloud-compute Documentation",
+ "google-cloud-compute Documentation",
author,
"google-cloud-compute",
"google-cloud-compute Library",
diff --git a/packages/google-cloud-compute/samples/snippets/noxfile.py b/packages/google-cloud-compute/samples/snippets/noxfile.py
index dc9beecef296..6a8ccdae22c9 100644
--- a/packages/google-cloud-compute/samples/snippets/noxfile.py
+++ b/packages/google-cloud-compute/samples/snippets/noxfile.py
@@ -28,8 +28,9 @@
# WARNING - WARNING - WARNING - WARNING - WARNING
# WARNING - WARNING - WARNING - WARNING - WARNING
-# Copy `noxfile_config.py` to your directory and modify it instead.
+BLACK_VERSION = "black==19.10b0"
+# Copy `noxfile_config.py` to your directory and modify it instead.
# `TEST_CONFIG` dict is a configuration hook that allows users to
# modify the test configurations. The values here should be in sync
@@ -48,8 +49,8 @@
# to 'BUILD_SPECIFIC_GCLOUD_PROJECT' if you want to opt in using a
# build specific Cloud project. You can also use your own string
# to use your own Cloud project.
- # 'gcloud_project_env': 'GOOGLE_CLOUD_PROJECT',
- 'gcloud_project_env': 'BUILD_SPECIFIC_GCLOUD_PROJECT',
+ 'gcloud_project_env': 'GOOGLE_CLOUD_PROJECT',
+ # 'gcloud_project_env': 'BUILD_SPECIFIC_GCLOUD_PROJECT',
# If you need to use a specific version of pip,
# change pip_version_override to the string representation
# of the version number, for example, "20.2.4"
@@ -159,7 +160,7 @@ def lint(session: nox.sessions.Session) -> None:
@nox.session
def blacken(session: nox.sessions.Session) -> None:
- session.install("black")
+ session.install(BLACK_VERSION)
python_files = [path for path in os.listdir(".") if path.endswith(".py")]
session.run("black", *python_files)
diff --git a/packages/google-cloud-compute/synth.metadata b/packages/google-cloud-compute/synth.metadata
index 8798701cee81..5a69bd2c524c 100644
--- a/packages/google-cloud-compute/synth.metadata
+++ b/packages/google-cloud-compute/synth.metadata
@@ -4,7 +4,7 @@
"git": {
"name": ".",
"remote": "https://github.com/googleapis/python-compute.git",
- "sha": "ce057e7b80baca7ef577ee1495ba034cdb3a491a"
+ "sha": "1163f2bb15f0e042bdd9562a31ad2ac7f39e3536"
}
},
{
@@ -42,7 +42,6 @@
".kokoro/continuous/common.cfg",
".kokoro/continuous/continuous.cfg",
".kokoro/docker/docs/Dockerfile",
- ".kokoro/docker/docs/fetch_gpg_keys.sh",
".kokoro/docs/common.cfg",
".kokoro/docs/docs-presubmit.cfg",
".kokoro/docs/docs.cfg",
@@ -72,6 +71,11 @@
".kokoro/samples/python3.8/periodic-head.cfg",
".kokoro/samples/python3.8/periodic.cfg",
".kokoro/samples/python3.8/presubmit.cfg",
+ ".kokoro/samples/python3.9/common.cfg",
+ ".kokoro/samples/python3.9/continuous.cfg",
+ ".kokoro/samples/python3.9/periodic-head.cfg",
+ ".kokoro/samples/python3.9/periodic.cfg",
+ ".kokoro/samples/python3.9/presubmit.cfg",
".kokoro/test-samples-against-head.sh",
".kokoro/test-samples-impl.sh",
".kokoro/test-samples.sh",
@@ -83,6 +87,7 @@
"CONTRIBUTING.rst",
"LICENSE",
"MANIFEST.in",
+ "SECURITY.md",
"docs/_static/custom.css",
"docs/_templates/layout.html",
"docs/compute_v1/accelerator_types.rst",
@@ -644,6 +649,7 @@
"mypy.ini",
"noxfile.py",
"renovate.json",
+ "samples/snippets/noxfile.py",
"scripts/decrypt-secrets.sh",
"scripts/readme-gen/readme_gen.py",
"scripts/readme-gen/templates/README.tmpl.rst",