From ea7442322386d8c4ed3d0de0407ee9f12789a212 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 31 Mar 2021 01:24:58 +0200 Subject: [PATCH 1/5] chore(deps): update dependency google-cloud-containeranalysis to v2.2.2 (#107) --- samples/snippets/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/requirements.txt b/samples/snippets/requirements.txt index 41c1ec9..71b4a54 100644 --- a/samples/snippets/requirements.txt +++ b/samples/snippets/requirements.txt @@ -1,5 +1,5 @@ google-cloud-pubsub==2.4.0 -google-cloud-containeranalysis==2.2.1 +google-cloud-containeranalysis==2.2.2 grafeas==1.0.1 pytest==5.3.0; python_version > "3.0" pytest==4.6.6; python_version < "3.0" From 74be8869363254d3551a58634c299abcfb18e682 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 1 Apr 2021 15:37:15 -0700 Subject: [PATCH 2/5] fix: require google-api-core >= 1.22.2 (#103) --- .pre-commit-config.yaml | 2 +- UPGRADING.md | 2 +- noxfile.py | 26 +++++---- setup.py | 5 +- synth.metadata | 110 ++---------------------------------- testing/constraints-3.6.txt | 4 +- 6 files changed, 28 insertions(+), 121 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a9024b1..32302e4 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -12,6 +12,6 @@ repos: hooks: - id: black - repo: https://gitlab.com/pycqa/flake8 - rev: 3.8.4 + rev: 3.9.0 hooks: - id: flake8 diff --git a/UPGRADING.md b/UPGRADING.md index 3388b0c..60cbaf4 100644 --- a/UPGRADING.md +++ b/UPGRADING.md @@ -20,7 +20,7 @@ Methods expect request objects. We provide a script that will convert most commo * Install the library ```py -python3 -m pip install google-cloud-containeranalysis +python3 -m pip install google-cloud-containeranalysis[libcst] ``` * The script `fixup_containeranalysis_v1_keywords.py` is shipped with the library. It expects diff --git a/noxfile.py b/noxfile.py index 72bab3e..4d37cd3 100644 --- a/noxfile.py +++ b/noxfile.py @@ -18,6 +18,7 @@ from __future__ import absolute_import import os +import pathlib import shutil import nox @@ -30,6 +31,8 @@ SYSTEM_TEST_PYTHON_VERSIONS = ["3.8"] UNIT_TEST_PYTHON_VERSIONS = ["3.6", "3.7", "3.8", "3.9"] +CURRENT_DIRECTORY = pathlib.Path(__file__).parent.absolute() + # 'docfx' is excluded since it only needs to run in 'docs-presubmit' nox.options.sessions = [ "unit", @@ -84,13 +87,15 @@ def lint_setup_py(session): def default(session): # Install all test dependencies, then install this package in-place. - session.install("asyncmock", "pytest-asyncio") - session.install( - "mock", "pytest", "pytest-cov", + constraints_path = str( + CURRENT_DIRECTORY / "testing" / f"constraints-{session.python}.txt" ) + session.install("asyncmock", "pytest-asyncio", "-c", constraints_path) - session.install("-e", ".") + session.install("mock", "pytest", "pytest-cov", "-c", constraints_path) + + session.install("-e", ".", "-c", constraints_path) # Run py.test against the unit tests. session.run( @@ -117,6 +122,9 @@ def unit(session): @nox.session(python=SYSTEM_TEST_PYTHON_VERSIONS) def system(session): """Run the system test suite.""" + constraints_path = str( + CURRENT_DIRECTORY / "testing" / f"constraints-{session.python}.txt" + ) system_test_path = os.path.join("tests", "system.py") system_test_folder_path = os.path.join("tests", "system") @@ -141,10 +149,8 @@ def system(session): # Install all test dependencies, then install this package into the # virtualenv's dist-packages. - session.install( - "mock", "pytest", "google-cloud-testutils", - ) - session.install("-e", ".") + session.install("mock", "pytest", "google-cloud-testutils", "-c", constraints_path) + session.install("-e", ".", "-c", constraints_path) # Run py.test against the system tests. if system_test_exists: @@ -205,9 +211,7 @@ def docfx(session): """Build the docfx yaml files for this library.""" session.install("-e", ".") - # sphinx-docfx-yaml supports up to sphinx version 1.5.5. - # https://github.com/docascode/sphinx-docfx-yaml/issues/97 - session.install("sphinx==1.5.5", "alabaster", "recommonmark", "sphinx-docfx-yaml") + session.install("sphinx", "alabaster", "recommonmark", "gcp-sphinx-docfx-yaml") shutil.rmtree(os.path.join("docs", "_build"), ignore_errors=True) session.run( diff --git a/setup.py b/setup.py index d53654f..4887984 100644 --- a/setup.py +++ b/setup.py @@ -25,12 +25,12 @@ version = "2.2.2" release_status = "Development Status :: 5 - Production/Stable" dependencies = [ - "google-api-core[grpc] >= 1.22.0, < 2.0.0dev", + "google-api-core[grpc] >= 1.22.2, < 2.0.0dev", "grpc-google-iam-v1 >= 0.12.3, < 0.13dev", "proto-plus >= 1.4.0", - "libcst >= 0.2.5", "grafeas >=1.0.0, <2.0dev", ] +extras = {"libcst": "libcst >= 0.2.5"} package_root = os.path.abspath(os.path.dirname(__file__)) @@ -76,6 +76,7 @@ packages=packages, namespace_packages=namespaces, install_requires=dependencies, + extras_requires=extras, python_requires=">=3.6", scripts=["scripts/fixup_containeranalysis_v1_keywords.py"], include_package_data=True, diff --git a/synth.metadata b/synth.metadata index 9fcb9c4..642a938 100644 --- a/synth.metadata +++ b/synth.metadata @@ -3,30 +3,30 @@ { "git": { "name": ".", - "remote": "https://github.com/googleapis/python-containeranalysis.git", - "sha": "0246d28a08958cf3b625c134eed455d622c73062" + "remote": "git@github.com:googleapis/python-containeranalysis", + "sha": "971a03c1fe4ac9e0f15972bd5b35bcf9bea3966f" } }, { "git": { "name": "googleapis", "remote": "https://github.com/googleapis/googleapis.git", - "sha": "149a3a84c29c9b8189576c7442ccb6dcf6a8f95b", - "internalRef": "364411656" + "sha": "f6b491910e5ebbb7f3bb9b13f53294b6e94b2f48", + "internalRef": "366337595" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "79c8dd7ee768292f933012d3a69a5b4676404cda" + "sha": "6d76df2138f8f841e5a5b9ac427f81def520c15f" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "79c8dd7ee768292f933012d3a69a5b4676404cda" + "sha": "6d76df2138f8f841e5a5b9ac427f81def520c15f" } } ], @@ -40,103 +40,5 @@ "generator": "bazel" } } - ], - "generatedFiles": [ - ".coveragerc", - ".flake8", - ".github/CONTRIBUTING.md", - ".github/ISSUE_TEMPLATE/bug_report.md", - ".github/ISSUE_TEMPLATE/feature_request.md", - ".github/ISSUE_TEMPLATE/support_request.md", - ".github/PULL_REQUEST_TEMPLATE.md", - ".github/header-checker-lint.yml", - ".github/release-please.yml", - ".github/snippet-bot.yml", - ".gitignore", - ".kokoro/build.sh", - ".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", - ".kokoro/populate-secrets.sh", - ".kokoro/presubmit/common.cfg", - ".kokoro/presubmit/presubmit.cfg", - ".kokoro/publish-docs.sh", - ".kokoro/release.sh", - ".kokoro/release/common.cfg", - ".kokoro/release/release.cfg", - ".kokoro/samples/lint/common.cfg", - ".kokoro/samples/lint/continuous.cfg", - ".kokoro/samples/lint/periodic.cfg", - ".kokoro/samples/lint/presubmit.cfg", - ".kokoro/samples/python3.6/common.cfg", - ".kokoro/samples/python3.6/continuous.cfg", - ".kokoro/samples/python3.6/periodic-head.cfg", - ".kokoro/samples/python3.6/periodic.cfg", - ".kokoro/samples/python3.6/presubmit.cfg", - ".kokoro/samples/python3.7/common.cfg", - ".kokoro/samples/python3.7/continuous.cfg", - ".kokoro/samples/python3.7/periodic-head.cfg", - ".kokoro/samples/python3.7/periodic.cfg", - ".kokoro/samples/python3.7/presubmit.cfg", - ".kokoro/samples/python3.8/common.cfg", - ".kokoro/samples/python3.8/continuous.cfg", - ".kokoro/samples/python3.8/periodic-head.cfg", - ".kokoro/samples/python3.8/periodic.cfg", - ".kokoro/samples/python3.8/presubmit.cfg", - ".kokoro/test-samples-against-head.sh", - ".kokoro/test-samples-impl.sh", - ".kokoro/test-samples.sh", - ".kokoro/trampoline.sh", - ".kokoro/trampoline_v2.sh", - ".pre-commit-config.yaml", - ".trampolinerc", - "CODE_OF_CONDUCT.md", - "CONTRIBUTING.rst", - "LICENSE", - "MANIFEST.in", - "docs/_static/custom.css", - "docs/_templates/layout.html", - "docs/conf.py", - "docs/containeranalysis_v1/container_analysis.rst", - "docs/containeranalysis_v1/services.rst", - "docs/containeranalysis_v1/types.rst", - "docs/multiprocessing.rst", - "google/cloud/devtools/containeranalysis/__init__.py", - "google/cloud/devtools/containeranalysis/py.typed", - "google/cloud/devtools/containeranalysis_v1/__init__.py", - "google/cloud/devtools/containeranalysis_v1/proto/containeranalysis.proto", - "google/cloud/devtools/containeranalysis_v1/py.typed", - "google/cloud/devtools/containeranalysis_v1/services/__init__.py", - "google/cloud/devtools/containeranalysis_v1/services/container_analysis/__init__.py", - "google/cloud/devtools/containeranalysis_v1/services/container_analysis/async_client.py", - "google/cloud/devtools/containeranalysis_v1/services/container_analysis/client.py", - "google/cloud/devtools/containeranalysis_v1/services/container_analysis/transports/__init__.py", - "google/cloud/devtools/containeranalysis_v1/services/container_analysis/transports/base.py", - "google/cloud/devtools/containeranalysis_v1/services/container_analysis/transports/grpc.py", - "google/cloud/devtools/containeranalysis_v1/services/container_analysis/transports/grpc_asyncio.py", - "google/cloud/devtools/containeranalysis_v1/types/__init__.py", - "google/cloud/devtools/containeranalysis_v1/types/containeranalysis.py", - "mypy.ini", - "noxfile.py", - "renovate.json", - "samples/AUTHORING_GUIDE.md", - "samples/CONTRIBUTING.md", - "samples/snippets/noxfile.py", - "scripts/decrypt-secrets.sh", - "scripts/fixup_containeranalysis_v1_keywords.py", - "scripts/readme-gen/readme_gen.py", - "scripts/readme-gen/templates/README.tmpl.rst", - "scripts/readme-gen/templates/auth.tmpl.rst", - "scripts/readme-gen/templates/auth_api_key.tmpl.rst", - "scripts/readme-gen/templates/install_deps.tmpl.rst", - "scripts/readme-gen/templates/install_portaudio.tmpl.rst", - "setup.cfg", - "testing/.gitignore", - "tests/unit/gapic/containeranalysis_v1/__init__.py", - "tests/unit/gapic/containeranalysis_v1/test_container_analysis.py" ] } \ No newline at end of file diff --git a/testing/constraints-3.6.txt b/testing/constraints-3.6.txt index 2c645c8..0b693e2 100644 --- a/testing/constraints-3.6.txt +++ b/testing/constraints-3.6.txt @@ -5,8 +5,8 @@ # # e.g., if setup.py has "foo >= 1.14.0, < 2.0.0dev", # Then this file should have foo==1.14.0 -google-api-core==1.22.0 +google-api-core==1.22.2 grpc-google-iam-v1==0.12.3 proto-plus==1.4.0 libcst==0.2.5 -grafeas==1.0.0 \ No newline at end of file +grafeas==1.0.0 From c4e9622f624f438a13dbbb344c7625b4ca2e8db9 Mon Sep 17 00:00:00 2001 From: Dina Graves Portman Date: Fri, 2 Apr 2021 14:21:31 -0700 Subject: [PATCH 3/5] test: fix flaky test (#106) * test: fix flaky test --- samples/snippets/samples_test.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/samples/snippets/samples_test.py b/samples/snippets/samples_test.py index 7145dd7..dd9bce6 100644 --- a/samples/snippets/samples_test.py +++ b/samples/snippets/samples_test.py @@ -187,7 +187,7 @@ def test_pubsub(self): # clean up client.delete_subscription({"subscription": subscription_name}) - def test_poll_discovery_occurrence(self): + def test_poll_discovery_occurrence_fails(self): # try with no discovery occurrence try: samples.poll_discovery_finished(self.image_url, 5, PROJECT_ID) @@ -197,6 +197,8 @@ def test_poll_discovery_occurrence(self): # we expect timeout error assert False + @pytest.mark.flaky(max_runs=3, min_passes=1) + def test_poll_discovery_occurrence(self): # create discovery occurrence note_id = 'discovery-note-{}'.format(uuid.uuid4()) client = containeranalysis_v1.ContainerAnalysisClient() @@ -220,7 +222,6 @@ def test_poll_discovery_occurrence(self): create_occurrence(parent=f"projects/{PROJECT_ID}", occurrence=occurrence) - # poll again disc = samples.poll_discovery_finished(self.image_url, 10, PROJECT_ID) status = disc.discovery.analysis_status assert disc is not None From 965d2b214a6751c1756608c27b9ca405ee736c2b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 2 Apr 2021 23:30:46 +0200 Subject: [PATCH 4/5] chore(deps): update dependency google-cloud-pubsub to v2.4.1 (#108) --- samples/snippets/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/requirements.txt b/samples/snippets/requirements.txt index 71b4a54..0ac42cc 100644 --- a/samples/snippets/requirements.txt +++ b/samples/snippets/requirements.txt @@ -1,4 +1,4 @@ -google-cloud-pubsub==2.4.0 +google-cloud-pubsub==2.4.1 google-cloud-containeranalysis==2.2.2 grafeas==1.0.1 pytest==5.3.0; python_version > "3.0" From 2d640c114115afc1ff4764094ecb5c9de224ca7f Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 2 Apr 2021 14:30:58 -0700 Subject: [PATCH 5/5] chore: release 2.2.3 (#109) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 7 +++++++ setup.py | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 907d757..9e94ebe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [2.2.3](https://www.github.com/googleapis/python-containeranalysis/compare/v2.2.2...v2.2.3) (2021-04-02) + + +### Bug Fixes + +* require google-api-core >= 1.22.2 ([#103](https://www.github.com/googleapis/python-containeranalysis/issues/103)) ([74be886](https://www.github.com/googleapis/python-containeranalysis/commit/74be8869363254d3551a58634c299abcfb18e682)) + ### [2.2.2](https://www.github.com/googleapis/python-containeranalysis/compare/v2.2.1...v2.2.2) (2021-03-25) diff --git a/setup.py b/setup.py index 4887984..16489eb 100644 --- a/setup.py +++ b/setup.py @@ -22,7 +22,7 @@ name = "google-cloud-containeranalysis" description = "Container Analysis API API client library" -version = "2.2.2" +version = "2.2.3" release_status = "Development Status :: 5 - Production/Stable" dependencies = [ "google-api-core[grpc] >= 1.22.2, < 2.0.0dev",