From bce982d8be7c39064b062f38601c3ef7a96351c6 Mon Sep 17 00:00:00 2001 From: Jan Rose Date: Thu, 4 Jun 2026 13:55:47 +0200 Subject: [PATCH] Fix generate-direct race that ran apitypes generation twice generate-direct listed both generate-direct-apitypes and generate-direct-resources as parallel deps, but generate-direct-resources already depends on generate-direct-apitypes. That diamond made go-task schedule generate-direct-apitypes (and its generate-openapi-json dep) twice, concurrently: two "python3 ... > apitypes.generated.yml" processes truncating and rewriting the same file that generate-direct-resources reads as input. A resources run that read the half-truncated apitypes.generated.yml silently dropped every resource whose type comes from that file, emitting a resources.generated.yml with only the apitypes.yml override entries. Depend only on generate-direct-resources, which already pulls in generate-direct-apitypes transitively, so the chain is linear and apitypes runs exactly once before resources reads its output. Verified with "task generate-direct --dry --force": apitypes is scheduled once after the fix versus twice before. Co-authored-by: Isaac --- Taskfile.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Taskfile.yml b/Taskfile.yml index 0bd23255469..5491e9b0f1d 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -888,7 +888,12 @@ tasks: generate-direct: desc: Generate direct engine config (apitypes + resources) - deps: ['generate-direct-apitypes', 'generate-direct-resources'] + # Depend only on generate-direct-resources; it already pulls in + # generate-direct-apitypes transitively. Listing both as parallel deps + # races: resources reads apitypes.generated.yml while the apitypes step's + # `>` redirect is truncating it, silently dropping every resource whose + # type comes from that file. Keep this chain linear. + deps: ['generate-direct-resources'] generate-direct-apitypes: desc: Generate direct engine API types YAML