From 969399bf7001ec8e89d8b9d89a88dd6a9bf6ea2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexandre=20Mondaini=20Calv=C3=A3o?= Date: Fri, 2 Oct 2026 16:51:45 -0300 Subject: [PATCH 1/3] release: CLI 4.1.2 with portable Docker hook-guard fixture --- build.zig.zon | 2 +- test/provider_hooks_e2e.py | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/build.zig.zon b/build.zig.zon index a53f6d9..ef89ce2 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -1,7 +1,7 @@ .{ .fingerprint = 0xa3d95bf7b905a401, .name = .labelle_cli, - .version = "4.1.1", + .version = "4.1.2", .minimum_zig_version = "0.16.0", .dependencies = .{ // Issue #217: labelle-cli is a thin driver over the standalone diff --git a/test/provider_hooks_e2e.py b/test/provider_hooks_e2e.py index c9bd390..01cc74c 100644 --- a/test/provider_hooks_e2e.py +++ b/test/provider_hooks_e2e.py @@ -914,7 +914,9 @@ def by_id(step_dir): # plan with a hook that may contribute is refused before anything runs: # no hook, no generation, no build. reset() - refused = run("build", "--docker", code=1, extra_env=probe_env) + # Choose a container-supported target explicitly; a Mac host otherwise + # fails target validation before reaching the contribution guard. + refused = run("build", "--docker", "--target=x86_64-linux", code=1, extra_env=probe_env) assert "hook 'fixture-a/tc' may contribute an environment for target 'desktop'" in refused.stderr, refused.stderr assert "--docker doesn't carry provider environment contributions; build without --docker" in refused.stderr, refused.stderr assert "FIXTURE_GENERATE" not in refused.stderr and not log(target_dir) and not log(zig_out), refused.stderr From 80d64d4fc63d50a7d326bbb8984c32514f130a66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexandre=20Mondaini=20Calv=C3=A3o?= Date: Fri, 2 Oct 2026 16:53:01 -0300 Subject: [PATCH 2/3] test: reach provider Docker refusal on Mac hosts too --- test/provider_hooks_e2e.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/provider_hooks_e2e.py b/test/provider_hooks_e2e.py index 01cc74c..c313f2c 100644 --- a/test/provider_hooks_e2e.py +++ b/test/provider_hooks_e2e.py @@ -934,7 +934,7 @@ def by_id(step_dir): replaced_dir = project / ".labelle" / "raylib_android" a_manifest.write_text(manifest("fixture-a", [hook("tc", "generate", "before", target="android"), hook("build-owned", "build", "replace", target="android")], targets=["android"])) - for docker_args in (("build", "--platform=android", "--docker"), ("generate", "--platform=android", "--docker")): + for docker_args in (("build", "--platform=android", "--docker", "--target=x86_64-linux"), ("generate", "--platform=android", "--docker")): reset() refused = run(*docker_args, code=1, extra_env=contributing) assert "--docker builds the `desktop` target only" in refused.stderr, (docker_args, refused.stderr) From 933791a77504f34c77b27148bf7d1cc338b773c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexandre=20Mondaini=20Calv=C3=A3o?= Date: Fri, 2 Oct 2026 17:12:43 -0300 Subject: [PATCH 3/3] test: select portable Docker targets in provider resolution checks --- test/provider_targets_e2e.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/test/provider_targets_e2e.py b/test/provider_targets_e2e.py index 046ea03..b5f8e2a 100644 --- a/test/provider_targets_e2e.py +++ b/test/provider_targets_e2e.py @@ -222,7 +222,9 @@ def installed_only(result, target): # `--docker` builds the core target only (RFC cli#466 D5): a provider # target is refused before resolution, so before the no-provider verdict # and before anything is installed or generated. - for args in (("build", "--docker", "--platform=wasm"), ("run", "--docker", "--platform=probe-target"), + # A Mac's default target is rejected before provider resolution. Use a + # supported container target to exercise the provider-target guard. + for args in (("build", "--docker", "--platform=wasm", "--target=x86_64-linux"), ("run", "--docker", "--platform=probe-target", "--target=x86_64-linux"), ("generate", "--docker", "--platform=probe-target")): refused = run(*args, code=1) assert "--docker builds the `desktop` target only" in refused.stderr, (args, refused.stderr)