From ed141a9300b9dd9520e15f3d53c92c5dd8770c70 Mon Sep 17 00:00:00 2001 From: CroneKorkN Date: Sun, 10 May 2026 18:58:30 +0200 Subject: [PATCH] left4me: drop chown_src from git_deploy triggers (self-healing now) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Same constraint pattern: items in a triggers list must be triggered:True. chown_src dropped triggered:True in the prior commit to become self-healing every-apply, so it can't stay in git_deploy's triggers list. Now git_deploy has no triggers at all — chown_src and pip_install both run every apply, gated by their own `unless` guards. --- bundles/left4me/items.py | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/bundles/left4me/items.py b/bundles/left4me/items.py index f2eb040..5cc5ce4 100644 --- a/bundles/left4me/items.py +++ b/bundles/left4me/items.py @@ -129,17 +129,12 @@ git_deploy = { '/opt/left4me/src': { 'repo': node.metadata.get('left4me/git_url'), 'rev': node.metadata.get('left4me/git_branch'), - 'triggers': [ - # bw extracts the git archive as the connecting user (root after - # sudo) — files end up root-owned. Chown so subsequent - # `pip install -e` running as left4me can write .egg-info/. - 'action:left4me_chown_src', - ], - # pip_install is NOT in triggers (it's not triggered:True so bw - # would reject the edge). It runs on every apply with an `unless` - # guard for idempotency; editable installs pick up code changes - # without re-running pip. For dep changes (rare), nudge by hand: - # `bw run ovh.left4me ''`. + # No triggers list — both downstream actions (chown_src and + # pip_install) run every apply gated by their own `unless` + # guards, which makes the chain self-healing after a partial + # failure. Chaining via triggers would have made them only + # fire when git_deploy itself fired, leaving stuck states + # unrecoverable. }, }