From fcaf40e300857bd102bd73941d3b142180f455c8 Mon Sep 17 00:00:00 2001 From: marquessv Date: Fri, 7 Jul 2023 14:08:44 -0700 Subject: [PATCH 1/8] use execution_options to configure timeout --- pyquil/api/_qpu.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pyquil/api/_qpu.py b/pyquil/api/_qpu.py index 1c6bc44b1..b24aa69c1 100644 --- a/pyquil/api/_qpu.py +++ b/pyquil/api/_qpu.py @@ -118,7 +118,7 @@ def __init__( *, quantum_processor_id: str, priority: int = 1, - timeout: float = 10.0, + timeout: Optional[float] = 30.0, client_configuration: Optional[QCSClient] = None, endpoint_id: Optional[str] = None, execution_options: Optional[ExecutionOptions] = None, @@ -144,6 +144,7 @@ def __init__( self._quantum_processor_id = quantum_processor_id if execution_options is None: execution_options_builder = ExecutionOptionsBuilder.default() + execution_options_builder.timeout = timeout if endpoint_id is not None: execution_options_builder.connection_strategy(ConnectionStrategy.endpoint_id(endpoint_id)) execution_options = execution_options_builder.build() From c2fdd00b4fcae197c72bc92256f692375bbdf70a Mon Sep 17 00:00:00 2001 From: marquessv Date: Fri, 7 Jul 2023 14:13:04 -0700 Subject: [PATCH 2/8] correct types --- pyquil/api/_qpu.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyquil/api/_qpu.py b/pyquil/api/_qpu.py index b24aa69c1..018bf52cf 100644 --- a/pyquil/api/_qpu.py +++ b/pyquil/api/_qpu.py @@ -118,7 +118,7 @@ def __init__( *, quantum_processor_id: str, priority: int = 1, - timeout: Optional[float] = 30.0, + timeout: Optional[int] = 30, client_configuration: Optional[QCSClient] = None, endpoint_id: Optional[str] = None, execution_options: Optional[ExecutionOptions] = None, @@ -144,7 +144,7 @@ def __init__( self._quantum_processor_id = quantum_processor_id if execution_options is None: execution_options_builder = ExecutionOptionsBuilder.default() - execution_options_builder.timeout = timeout + execution_options_builder.timeout_seconds = int(timeout) if endpoint_id is not None: execution_options_builder.connection_strategy(ConnectionStrategy.endpoint_id(endpoint_id)) execution_options = execution_options_builder.build() From 7f5c277b90eede3118db031f3b99a014bddc7cd1 Mon Sep 17 00:00:00 2001 From: marquessv Date: Tue, 18 Jul 2023 13:34:10 -0700 Subject: [PATCH 3/8] bump qcs-sdk-python --- poetry.lock | 28 ++++++++++++++-------------- pyproject.toml | 2 +- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/poetry.lock b/poetry.lock index 7b4507df1..cecd07b97 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1993,24 +1993,24 @@ cffi = {version = "*", markers = "implementation_name == \"pypy\""} [[package]] name = "qcs-sdk-python" -version = "0.10.0" +version = "0.10.2" description = "Python interface for the QCS Rust SDK" category = "main" optional = false python-versions = "*" files = [ - {file = "qcs_sdk_python-0.10.0-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:fbbe007b85758241552d171b6abda5849cab9c04dd2fd6025926bd8bae6e2405"}, - {file = "qcs_sdk_python-0.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a23ec2be1ea44a5d48b0cd777744aa7aa63620915528b6c3efadcda2cec3910a"}, - {file = "qcs_sdk_python-0.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6153449a68ab7b72e0de620581c127b5ad43cb873e0cd7cefa825873f165fbba"}, - {file = "qcs_sdk_python-0.10.0-cp311-cp311-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:8c60499157b0f54ea587633815b81515afd7026550e20ec4232e2bb19e44d23a"}, - {file = "qcs_sdk_python-0.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9213179a5173c2069fbbe7e63c5ce660e4f006fba01531767c38153311ffbbfc"}, - {file = "qcs_sdk_python-0.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e64427ad54d4a6d49f30c5d43a4c99f3a47573a667df0b8c147c64a45f162448"}, - {file = "qcs_sdk_python-0.10.0-cp38-cp38-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:0c5bdf19d0082b28984593c56e0fdd67d698430804cc931378c81b142663ff23"}, - {file = "qcs_sdk_python-0.10.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76eaec611b7f7cdb25e9e88e7115ba55359853eb879166b957768d0ea04c78cf"}, - {file = "qcs_sdk_python-0.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:35adf044edda13b3afc56a93e75a941e7ca5c518eab1845dcbba4c009701d35e"}, - {file = "qcs_sdk_python-0.10.0-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:2a0f6ab21758dfbf7cdd276f4a8bd2fef6eaed299dbb1d940d7a8eda6097b448"}, - {file = "qcs_sdk_python-0.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7526791e0c188c67c85d15423a2e58fd3bd04269d22d5c8b014f89dc7fed68de"}, - {file = "qcs_sdk_python-0.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21243e24b10429b4d5a719627e3001a1ba41e6a58d7301262293f29c1bbc1bca"}, + {file = "qcs_sdk_python-0.10.2-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:fc2ef56b0ab01d07888da74c759e53658bcf03be4609a3a43724ec63b451ca1d"}, + {file = "qcs_sdk_python-0.10.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ace658860229ff124b3ed5b5991bf1007fec03dae12f8eb5274aa29dbbd611e6"}, + {file = "qcs_sdk_python-0.10.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0192998faa060f716c0d74ef7bfca59385fa5a65e3b1ccc1d8f57570b8cd2d51"}, + {file = "qcs_sdk_python-0.10.2-cp311-cp311-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:22a3170cef54440cd7b4153a274c6d6091a8135b020833a2fdf866fb0dc39fd0"}, + {file = "qcs_sdk_python-0.10.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d5648e41f5c9c7686bb7ac67844ecda1417a976c35a1113aa312972033579c1"}, + {file = "qcs_sdk_python-0.10.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:376c88106b607218701732ef3841aa4a05fdc03bb297115f01e2d10a690289af"}, + {file = "qcs_sdk_python-0.10.2-cp38-cp38-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:685ee2482ae1f5ca8e692cce7d39d12add18dd63739befd7e3436c7da07744c5"}, + {file = "qcs_sdk_python-0.10.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d11ed6eedeab7921424ee44e49f022fd42a980f9b981ac95cd37c3af64a077d0"}, + {file = "qcs_sdk_python-0.10.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ead826679dcd8cc05e73d60b159cf125b79c8ddc7ea40cf0becd54bdfef6079b"}, + {file = "qcs_sdk_python-0.10.2-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:fd7387f312ab6c3c5123671c22703f237688047ed57b1d57e21f09f7e21fbf81"}, + {file = "qcs_sdk_python-0.10.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:43bf3b314b47bd80adfb57f47ff560e3d8c5f717158d14ec4e2e65918cd65b35"}, + {file = "qcs_sdk_python-0.10.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a28a307bdf7a3c9bff200e92d243b89422f06f8626e1a26c19b507096b283972"}, ] [[package]] @@ -2841,4 +2841,4 @@ latex = ["ipython"] [metadata] lock-version = "2.0" python-versions = "^3.8,<4.0" -content-hash = "a2372deb1254a6dbca694ec8e08d350e41b81b8d56417a02eb2c41a1e4e757b2" +content-hash = "1fa33a6c6235b9b030d313aef484bcc019ad3a091445e9581127a8d87e5446b8" diff --git a/pyproject.toml b/pyproject.toml index 32a6742a4..e5f62137c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,7 +27,7 @@ rpcq = "^3.10.0" pydantic = "^1.10.7" networkx = ">=2.5" importlib-metadata = { version = ">=3.7.3,<5", python = "<3.8" } -qcs-sdk-python = "0.10.0" +qcs-sdk-python = "0.10.2" quil = "0.1.1" tenacity = "^8.2.2" types-python-dateutil = "^2.8.19" From 26971d7fd0c1d98414106563fd3e41f7053e6428 Mon Sep 17 00:00:00 2001 From: marquessv Date: Tue, 18 Jul 2023 13:38:02 -0700 Subject: [PATCH 4/8] fix types --- pyquil/api/_qpu.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyquil/api/_qpu.py b/pyquil/api/_qpu.py index 330f87e2b..8cfe6e2b6 100644 --- a/pyquil/api/_qpu.py +++ b/pyquil/api/_qpu.py @@ -118,7 +118,7 @@ def __init__( *, quantum_processor_id: str, priority: int = 1, - timeout: Optional[int] = 30, + timeout: Optional[float] = 30.0, client_configuration: Optional[QCSClient] = None, endpoint_id: Optional[str] = None, execution_options: Optional[ExecutionOptions] = None, @@ -144,7 +144,7 @@ def __init__( self._quantum_processor_id = quantum_processor_id if execution_options is None: execution_options_builder = ExecutionOptionsBuilder.default() - execution_options_builder.timeout_seconds = int(timeout) + execution_options_builder.timeout_seconds = timeout execution_options_builder.connection_strategy = ConnectionStrategy.default() if endpoint_id is not None: execution_options_builder.connection_strategy = ConnectionStrategy.endpoint_id(endpoint_id) From a74968ca4cbd7d6c5b7958ce4e392a096dbfb135 Mon Sep 17 00:00:00 2001 From: marquessv Date: Tue, 18 Jul 2023 15:47:41 -0700 Subject: [PATCH 5/8] update docstring --- pyquil/api/_qpu.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pyquil/api/_qpu.py b/pyquil/api/_qpu.py index 8cfe6e2b6..a6b3626e9 100644 --- a/pyquil/api/_qpu.py +++ b/pyquil/api/_qpu.py @@ -132,7 +132,8 @@ def __init__( :param timeout: Time limit for requests, in seconds. :param client_configuration: Optional client configuration. If none is provided, a default one will be loaded. :param endpoint_id: Optional endpoint ID to be used for execution. - :param use_gateway: Disable to skip the Gateway server and perform direct execution. + :param execution_options: The ``ExecutionOptions`` to use when executing a program. If provided, the options take + precedence over the `timeout` and `endpoint_id` parameters. """ super().__init__() From 2d111a723b3879e31b312fb0e015384b20985e37 Mon Sep 17 00:00:00 2001 From: marquessv Date: Thu, 20 Jul 2023 10:42:00 -0700 Subject: [PATCH 6/8] add tests --- poetry.lock | 28 ++++++++++++++-------------- pyproject.toml | 2 +- test/unit/test_qpu.py | 23 +++++++++++++++++++++++ 3 files changed, 38 insertions(+), 15 deletions(-) create mode 100644 test/unit/test_qpu.py diff --git a/poetry.lock b/poetry.lock index cecd07b97..0ac5d3b02 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1993,24 +1993,24 @@ cffi = {version = "*", markers = "implementation_name == \"pypy\""} [[package]] name = "qcs-sdk-python" -version = "0.10.2" +version = "0.10.3rc1" description = "Python interface for the QCS Rust SDK" category = "main" optional = false python-versions = "*" files = [ - {file = "qcs_sdk_python-0.10.2-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:fc2ef56b0ab01d07888da74c759e53658bcf03be4609a3a43724ec63b451ca1d"}, - {file = "qcs_sdk_python-0.10.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ace658860229ff124b3ed5b5991bf1007fec03dae12f8eb5274aa29dbbd611e6"}, - {file = "qcs_sdk_python-0.10.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0192998faa060f716c0d74ef7bfca59385fa5a65e3b1ccc1d8f57570b8cd2d51"}, - {file = "qcs_sdk_python-0.10.2-cp311-cp311-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:22a3170cef54440cd7b4153a274c6d6091a8135b020833a2fdf866fb0dc39fd0"}, - {file = "qcs_sdk_python-0.10.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d5648e41f5c9c7686bb7ac67844ecda1417a976c35a1113aa312972033579c1"}, - {file = "qcs_sdk_python-0.10.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:376c88106b607218701732ef3841aa4a05fdc03bb297115f01e2d10a690289af"}, - {file = "qcs_sdk_python-0.10.2-cp38-cp38-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:685ee2482ae1f5ca8e692cce7d39d12add18dd63739befd7e3436c7da07744c5"}, - {file = "qcs_sdk_python-0.10.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d11ed6eedeab7921424ee44e49f022fd42a980f9b981ac95cd37c3af64a077d0"}, - {file = "qcs_sdk_python-0.10.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ead826679dcd8cc05e73d60b159cf125b79c8ddc7ea40cf0becd54bdfef6079b"}, - {file = "qcs_sdk_python-0.10.2-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:fd7387f312ab6c3c5123671c22703f237688047ed57b1d57e21f09f7e21fbf81"}, - {file = "qcs_sdk_python-0.10.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:43bf3b314b47bd80adfb57f47ff560e3d8c5f717158d14ec4e2e65918cd65b35"}, - {file = "qcs_sdk_python-0.10.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a28a307bdf7a3c9bff200e92d243b89422f06f8626e1a26c19b507096b283972"}, + {file = "qcs_sdk_python-0.10.3rc1-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:d672792c809a247bc6f919a266a477b6b624c81f228b0341e88ea3fe93ff6b99"}, + {file = "qcs_sdk_python-0.10.3rc1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a8a54ed0e2bcf312d0c7f2cad91f7c4fd356e5c95a746514c43b5fd676695bc"}, + {file = "qcs_sdk_python-0.10.3rc1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:389285c409990327fb5df243238b91774f6e1bcee514e23b774b96172060132b"}, + {file = "qcs_sdk_python-0.10.3rc1-cp311-cp311-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:2e5f34f8e3240f5a60f180e048de2125872e942f287404e79c2f8b8c83affa2a"}, + {file = "qcs_sdk_python-0.10.3rc1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69499ccc77c4fdfd632bee344d1fad8f4192eac775cb39b028e06398e77477d7"}, + {file = "qcs_sdk_python-0.10.3rc1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b203a75172e91a043edd76fa34c879b91821da164548a4533fec2f2bde80e772"}, + {file = "qcs_sdk_python-0.10.3rc1-cp38-cp38-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:ca9c492f6dd7259e0bb12f8a8be78332941e3ef4cec35e3dd5b86b40f9ace94e"}, + {file = "qcs_sdk_python-0.10.3rc1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b8eeb1e46a25a9daea7f2a5213f1da4fa63af3dbdcc48f1432a09ff6d2bd0b64"}, + {file = "qcs_sdk_python-0.10.3rc1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:834159e779ba82212fc644052280faa8a98e603b1a0f142350688e7405584bd6"}, + {file = "qcs_sdk_python-0.10.3rc1-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:c21b71489ed33d9f68392253bb308d4a9337542a1c6c2e6f96157978265275b1"}, + {file = "qcs_sdk_python-0.10.3rc1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15c25c2745ce39eaca351ebf8ce1cf8c6d6075d0e85d22bda5704c7bac7dd1a2"}, + {file = "qcs_sdk_python-0.10.3rc1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9bc60c31503458ecf5fee2203a7099eee0205748cff7024a362fdd62db2911e3"}, ] [[package]] @@ -2841,4 +2841,4 @@ latex = ["ipython"] [metadata] lock-version = "2.0" python-versions = "^3.8,<4.0" -content-hash = "1fa33a6c6235b9b030d313aef484bcc019ad3a091445e9581127a8d87e5446b8" +content-hash = "18aa1abdec5057e0be5888ce0c0a198185213428e967b256a0df98594bcc6d70" diff --git a/pyproject.toml b/pyproject.toml index e5f62137c..a9c72bffd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,7 +27,7 @@ rpcq = "^3.10.0" pydantic = "^1.10.7" networkx = ">=2.5" importlib-metadata = { version = ">=3.7.3,<5", python = "<3.8" } -qcs-sdk-python = "0.10.2" +qcs-sdk-python = "0.10.3-rc.1" quil = "0.1.1" tenacity = "^8.2.2" types-python-dateutil = "^2.8.19" diff --git a/test/unit/test_qpu.py b/test/unit/test_qpu.py new file mode 100644 index 000000000..e3afaf3d7 --- /dev/null +++ b/test/unit/test_qpu.py @@ -0,0 +1,23 @@ +from pyquil.api import ConnectionStrategy, ExecutionOptions +from pyquil.api._qpu import QPU + + +def test_default_execution_options(): + qpu = QPU(quantum_processor_id="test", timeout=15.0, endpoint_id="endpoint-id") + + builder = ExecutionOptions.builder() + builder.timeout_seconds = 15.0 + builder.connection_strategy = ConnectionStrategy.endpoint_id("endpoint-id") + expected = builder.build() + + assert qpu.execution_options == expected + + +def test_provided_execution_options(): + builder = ExecutionOptions.builder() + builder.timeout_seconds = 15.0 + builder.connection_strategy = ConnectionStrategy.direct_access() + options = builder.build() + + qpu = QPU(quantum_processor_id="test", execution_options=options) + assert qpu.execution_options == options From 31ca84261254983b9d1de227b51f5f7a5273e1f0 Mon Sep 17 00:00:00 2001 From: marquessv Date: Thu, 20 Jul 2023 10:44:00 -0700 Subject: [PATCH 7/8] shorten line length --- pyquil/api/_qpu.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyquil/api/_qpu.py b/pyquil/api/_qpu.py index a6b3626e9..d7aab078e 100644 --- a/pyquil/api/_qpu.py +++ b/pyquil/api/_qpu.py @@ -132,8 +132,8 @@ def __init__( :param timeout: Time limit for requests, in seconds. :param client_configuration: Optional client configuration. If none is provided, a default one will be loaded. :param endpoint_id: Optional endpoint ID to be used for execution. - :param execution_options: The ``ExecutionOptions`` to use when executing a program. If provided, the options take - precedence over the `timeout` and `endpoint_id` parameters. + :param execution_options: The ``ExecutionOptions`` to use when executing a program. If provided, the options + take precedence over the `timeout` and `endpoint_id` parameters. """ super().__init__() From 5f85c6f6570256ccc0a4e2d208f4408cbc2c3491 Mon Sep 17 00:00:00 2001 From: marquessv Date: Thu, 20 Jul 2023 11:02:36 -0700 Subject: [PATCH 8/8] tweak coverage check settings --- .github/workflows/test.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 193a34a15..802b03ab1 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -136,7 +136,6 @@ jobs: coverageFile: coverage.xml thresholdAll: 0.87 thresholdNew: 0.9 - thresholdModified: 0.9 token: ${{ secrets.PAT }} test-e2e: