From f7b11640b74d8c64747b33783976d6e0ab9c61c4 Mon Sep 17 00:00:00 2001 From: Dov Shlachter Date: Thu, 24 Sep 2020 11:32:03 -0700 Subject: [PATCH 1/2] fix: retriable exceptions are deterministically ordered in GAPICs (#619) Certain code patterns in the generated surface are created by iteration over data collections. This iteration order should be deterministic in order to prevent spurious deltas in the generated surface. --- .../%version/%sub/services/%service/transports/base.py.j2 | 4 +--- .../%name_%version/%sub/services/%service/async_client.py.j2 | 4 +--- .../%sub/services/%service/transports/base.py.j2 | 4 +--- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/gapic/ads-templates/%namespace/%name/%version/%sub/services/%service/transports/base.py.j2 b/gapic/ads-templates/%namespace/%name/%version/%sub/services/%service/transports/base.py.j2 index 32e6c11f9f..2053e9fe4f 100644 --- a/gapic/ads-templates/%namespace/%name/%version/%sub/services/%service/transports/base.py.j2 +++ b/gapic/ads-templates/%namespace/%name/%version/%sub/services/%service/transports/base.py.j2 @@ -89,11 +89,9 @@ class {{ service.name }}Transport(metaclass=abc.ABCMeta): {% if method.retry.max_backoff %}maximum={{ method.retry.max_backoff }},{% endif %} {% if method.retry.backoff_multiplier %}multiplier={{ method.retry.backoff_multiplier }},{% endif %} predicate=retries.if_exception_type( - {%- filter sort_lines %} - {%- for ex in method.retry.retryable_exceptions %} + {%- for ex in method.retry.retryable_exceptions|sort(attribute='__name__) %} exceptions.{{ ex.__name__ }}, {%- endfor %} - {%- endfilter %} ), ), {%- endif %} diff --git a/gapic/templates/%namespace/%name_%version/%sub/services/%service/async_client.py.j2 b/gapic/templates/%namespace/%name_%version/%sub/services/%service/async_client.py.j2 index 7368bf6943..95a250479f 100644 --- a/gapic/templates/%namespace/%name_%version/%sub/services/%service/async_client.py.j2 +++ b/gapic/templates/%namespace/%name_%version/%sub/services/%service/async_client.py.j2 @@ -199,11 +199,9 @@ class {{ service.async_client_name }}: {% if method.retry.max_backoff %}maximum={{ method.retry.max_backoff }},{% endif %} {% if method.retry.backoff_multiplier %}multiplier={{ method.retry.backoff_multiplier }},{% endif %} predicate=retries.if_exception_type( - {%- filter sort_lines %} - {%- for ex in method.retry.retryable_exceptions %} + {%- for ex in method.retry.retryable_exceptions|sort(attribue='__name__') %} exceptions.{{ ex.__name__ }}, {%- endfor %} - {%- endfilter %} ), ), {%- endif %} diff --git a/gapic/templates/%namespace/%name_%version/%sub/services/%service/transports/base.py.j2 b/gapic/templates/%namespace/%name_%version/%sub/services/%service/transports/base.py.j2 index 22ed87a1db..08b5c4b20b 100644 --- a/gapic/templates/%namespace/%name_%version/%sub/services/%service/transports/base.py.j2 +++ b/gapic/templates/%namespace/%name_%version/%sub/services/%service/transports/base.py.j2 @@ -114,11 +114,9 @@ class {{ service.name }}Transport(abc.ABC): {% if method.retry.max_backoff %}maximum={{ method.retry.max_backoff }},{% endif %} {% if method.retry.backoff_multiplier %}multiplier={{ method.retry.backoff_multiplier }},{% endif %} predicate=retries.if_exception_type( - {%- filter sort_lines %} - {%- for ex in method.retry.retryable_exceptions %} + {%- for ex in method.retry.retryable_exceptions|sort(attribute='__name__') %} exceptions.{{ ex.__name__ }}, {%- endfor %} - {%- endfilter %} ), ), {%- endif %} From 8b2a5ab0bb7441abd626f9d4545f8644d8a98351 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 24 Sep 2020 13:00:07 -0700 Subject: [PATCH 2/2] chore: release 0.33.7 (#620) 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 86729871c6..c0d0e37dba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [0.33.7](https://www.github.com/googleapis/gapic-generator-python/compare/v0.33.6...v0.33.7) (2020-09-24) + + +### Bug Fixes + +* retriable exceptions are deterministically ordered in GAPICs ([#619](https://www.github.com/googleapis/gapic-generator-python/issues/619)) ([f7b1164](https://www.github.com/googleapis/gapic-generator-python/commit/f7b11640b74d8c64747b33783976d6e0ab9c61c4)) + ### [0.33.6](https://www.github.com/googleapis/gapic-generator-python/compare/v0.33.5...v0.33.6) (2020-09-22) diff --git a/setup.py b/setup.py index 4ce942227c..f5e1d36cdd 100644 --- a/setup.py +++ b/setup.py @@ -20,7 +20,7 @@ PACKAGE_ROOT = os.path.abspath(os.path.dirname(__file__)) -version = "0.33.6" +version = "0.33.7" with io.open(os.path.join(PACKAGE_ROOT, "README.rst")) as file_obj: README = file_obj.read()