Skip to content

Commit ab264c8

Browse files
authored
Merge branch 'main' into feat/otel-histogram-bucket-overrides
2 parents 1231477 + 7ab0e9d commit ab264c8

14 files changed

Lines changed: 339 additions & 87 deletions

File tree

scripts/gen_protos.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@
5454
re.compile(r"'__module__' : 'temporal\.api\.").sub,
5555
r"'__module__' : 'temporalio.api.",
5656
),
57+
partial(
58+
re.compile(r"'__module__' : 'nexusannotations\.").sub,
59+
r"'__module__' : 'temporalio.api.dependencies.nexusannotations.",
60+
),
5761
]
5862

5963
pyi_fixes = [
@@ -201,10 +205,11 @@ def generate_protos(output_dir: Path):
201205
fix_generated_output(output_dir)
202206
# Move dependency protos
203207
deps_out_dir = api_out_dir / "dependencies"
208+
shutil.rmtree(deps_out_dir / "protoc_gen_openapiv2", ignore_errors=True)
209+
shutil.rmtree(deps_out_dir / "nexusannotations", ignore_errors=True)
204210
deps_out_dir.mkdir(exist_ok=True)
205-
for dep in ["protoc_gen_openapiv2", "nexusannotations"]:
206-
shutil.rmtree(deps_out_dir / dep, ignore_errors=True)
207-
(output_dir / dep).replace(deps_out_dir / dep)
211+
(output_dir / "protoc_gen_openapiv2").replace(deps_out_dir / "protoc_gen_openapiv2")
212+
(output_dir / "nexusannotations").replace(deps_out_dir / "nexusannotations")
208213
(deps_out_dir / "__init__.py").touch()
209214
# Move protos
210215
for p in (output_dir / "temporal" / "api").iterdir():

scripts/gen_protos_docker.py

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,28 @@
1717
)
1818
image_id = result.stdout.strip()
1919

20-
subprocess.run(
20+
docker_run_command = [
21+
"docker",
22+
"run",
23+
"--rm",
24+
]
25+
26+
getuid = getattr(os, "getuid", None)
27+
getgid = getattr(os, "getgid", None)
28+
if callable(getuid) and callable(getgid):
29+
docker_run_command.extend(["--user", f"{getuid()}:{getgid()}"])
30+
31+
docker_run_command.extend(
2132
[
22-
"docker",
23-
"run",
24-
"--rm",
2533
"-v",
2634
os.path.join(os.getcwd(), "temporalio", "api") + ":/api_new",
2735
"-v",
2836
os.path.join(os.getcwd(), "temporalio", "bridge", "proto") + ":/bridge_new",
2937
image_id,
30-
],
38+
]
39+
)
40+
41+
subprocess.run(
42+
docker_run_command,
3143
check=True,
3244
)

temporalio/api/dependencies/nexusannotations/v1/options_pb2.py

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

temporalio/bridge/Cargo.lock

Lines changed: 36 additions & 37 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

temporalio/bridge/client.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ class ClientConfig:
8181
client_version: str
8282
http_connect_proxy_config: ClientHttpConnectProxyConfig | None
8383
dns_load_balancing_config: ClientDnsLoadBalancingConfig | None
84+
grpc_compression: str
8485

8586

8687
@dataclass

temporalio/bridge/src/client.rs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use temporalio_client::tonic::{
99
};
1010
use temporalio_client::{
1111
ClientKeepAliveOptions as CoreClientKeepAliveConfig, Connection, ConnectionOptions,
12-
DnsLoadBalancingOptions, HttpConnectProxyOptions, RetryOptions,
12+
DnsLoadBalancingOptions, GrpcCompression, HttpConnectProxyOptions, RetryOptions,
1313
};
1414
use tracing::warn;
1515
use url::Url;
@@ -37,6 +37,7 @@ pub struct ClientConfig {
3737
keep_alive_config: Option<ClientKeepAliveConfig>,
3838
http_connect_proxy_config: Option<ClientHttpConnectProxyConfig>,
3939
dns_load_balancing_config: Option<ClientDnsLoadBalancingConfig>,
40+
grpc_compression: String,
4041
}
4142

4243
#[derive(FromPyObject)]
@@ -266,6 +267,7 @@ impl ClientConfig {
266267
.keep_alive(self.keep_alive_config.map(Into::into))
267268
.maybe_http_connect_proxy(self.http_connect_proxy_config.map(Into::into))
268269
.dns_load_balancing(dns_load_balancing)
270+
.grpc_compression(grpc_compression_from_str(&self.grpc_compression)?)
269271
.headers(ascii_headers)
270272
.binary_headers(binary_headers)
271273
.maybe_api_key(self.api_key)
@@ -279,6 +281,16 @@ impl ClientConfig {
279281
}
280282
}
281283

284+
fn grpc_compression_from_str(value: &str) -> PyResult<GrpcCompression> {
285+
match value {
286+
"none" => Ok(GrpcCompression::None),
287+
"gzip" => Ok(GrpcCompression::Gzip),
288+
_ => Err(PyValueError::new_err(format!(
289+
"invalid grpc_compression: {value}"
290+
))),
291+
}
292+
}
293+
282294
impl TryFrom<ClientTlsConfig> for temporalio_client::TlsOptions {
283295
type Error = PyErr;
284296

temporalio/client/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
from temporalio.service import (
1717
ConnectConfig,
1818
DnsLoadBalancingConfig,
19+
GrpcCompression,
1920
HttpConnectProxyConfig,
2021
KeepAliveConfig,
2122
RetryConfig,
@@ -355,6 +356,7 @@
355356
"WorkflowSerializationContext",
356357
"ConnectConfig",
357358
"DnsLoadBalancingConfig",
359+
"GrpcCompression",
358360
"HttpConnectProxyConfig",
359361
"KeepAliveConfig",
360362
"RetryConfig",

0 commit comments

Comments
 (0)