From c2d3eb99aa27b9ca842b8de0ff3d219cafc6b3f1 Mon Sep 17 00:00:00 2001 From: Alex Mazzeo Date: Mon, 6 Oct 2025 12:49:06 -0700 Subject: [PATCH 1/2] Move visitor, bridge client generation, and formatting to poe tasks --- .github/workflows/ci.yml | 1 - pyproject.toml | 15 +++++++++++++-- scripts/_proto/Dockerfile | 2 +- scripts/gen_protos_docker.py | 18 ------------------ 4 files changed, 14 insertions(+), 22 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 44e3741d0..bbaa974b5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -117,7 +117,6 @@ jobs: uv sync --all-extras poe build-develop poe gen-protos - poe format [[ -z $(git status --porcelain temporalio) ]] || (git diff temporalio; echo "Protos changed"; exit 1) poe test -s timeout-minutes: 10 diff --git a/pyproject.toml b/pyproject.toml index f87fba279..861b1f107 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -61,10 +61,21 @@ build-develop-with-release = { cmd = "uv run maturin develop --release --uv" } format = [ { cmd = "uv run ruff check --select I --fix" }, { cmd = "uv run ruff format" }, + { cmd = "cargo fmt", cwd = "temporalio/bridge" }, ] gen-docs = "uv run scripts/gen_docs.py" -gen-protos = "uv run scripts/gen_protos.py" -gen-protos-docker = "uv run scripts/gen_protos_docker.py" +gen-protos = [ + { cmd = "uv run scripts/gen_protos.py" }, + { cmd = "uv run scripts/gen_payload_visitor.py" }, + { cmd = "uv run scripts/gen_bridge_client.py" }, + { ref = "format" }, +] +gen-protos-docker = [ + { cmd = "uv run scripts/gen_protos_docker.py" }, + { cmd = "uv run scripts/gen_payload_visitor.py" }, + { cmd = "uv run scripts/gen_bridge_client.py" }, + { ref = "format" }, +] lint = [ { cmd = "uv run ruff check --select I" }, { cmd = "uv run ruff format --check" }, diff --git a/scripts/_proto/Dockerfile b/scripts/_proto/Dockerfile index 7617cbe1b..36e6d1a6c 100644 --- a/scripts/_proto/Dockerfile +++ b/scripts/_proto/Dockerfile @@ -10,6 +10,6 @@ COPY ./ ./ RUN mkdir -p ./temporalio/api RUN uv add "protobuf<4" RUN uv sync --all-extras -RUN poe gen-protos +RUN uv run scripts/gen_protos.py CMD ["sh", "-c", "cp -r ./temporalio/api/* /api_new && cp -r ./temporalio/bridge/proto/* /bridge_new"] diff --git a/scripts/gen_protos_docker.py b/scripts/gen_protos_docker.py index e354cc646..819897901 100644 --- a/scripts/gen_protos_docker.py +++ b/scripts/gen_protos_docker.py @@ -30,21 +30,3 @@ ], check=True, ) - -subprocess.run( - ["uv", "run", os.path.join(os.getcwd(), "scripts", "gen_payload_visitor.py")], - check=True, -) - -subprocess.run( - ["uv", "run", os.path.join(os.getcwd(), "scripts", "gen_bridge_client.py")], - check=True, -) - -subprocess.run(["uv", "run", "poe", "format"], check=True) - -subprocess.run( - ["cargo", "fmt"], - check=True, - cwd=os.path.join(os.getcwd(), "temporalio", "bridge"), -) From a999a804cd61afd7ea06e393c4b5c5f0146bb83c Mon Sep 17 00:00:00 2001 From: Alex Mazzeo Date: Mon, 6 Oct 2025 15:39:12 -0700 Subject: [PATCH 2/2] use legacy way to check for is_repeated to be compatible w/ older protos --- scripts/gen_payload_visitor.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/gen_payload_visitor.py b/scripts/gen_payload_visitor.py index e8ddf38bd..d1e7f7754 100644 --- a/scripts/gen_payload_visitor.py +++ b/scripts/gen_payload_visitor.py @@ -203,7 +203,7 @@ def walk(self, desc: Descriptor) -> bool: # Process regular fields first for field in regular_fields: # Repeated fields (including maps which are represented as repeated messages) - if field.is_repeated: + if field.label == FieldDescriptor.LABEL_REPEATED: if ( field.message_type is not None and field.message_type.GetOptions().map_entry