From 7140929724669fd308ab2d12fdb527991969b125 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesu=CC=81s=20Pe=CC=81rez?= Date: Fri, 17 Apr 2026 08:21:37 +0100 Subject: [PATCH] refactor(integrations/ecosystem/mod): selective re-exports + fix facade intent (ADR-025 L3) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ecosystem/mod.nu had 5 `use ./X.nu *` — NOT `export use`. The comment claimed "Re-exports all ecosystem integration providers" but no export actually happened (plain `use` makes symbols visible only inside this file, not to consumers). Parent `integrations/mod.nu` does `use ./ecosystem *` expecting propagation that never occurred. Fixed both issues in one commit: 1. Promote each `use` to `export use` so the facade actually re-exports. 2. Replace each star with an explicit symbol list. Symbol counts per target: runtime.nu 5 backup.nu 6 ssh_advanced.nu 6 gitops.nu 7 service.nu 8 Total: 32 symbols re-exported (previously: 0, due to the use-vs-export-use bug). Behaviour change note: consumers that rely on integrations/ecosystem/* symbols via `use lib_provisioning/integrations *` may now see symbols that were silently missing before. This is the documented intent restored. Validation: nu --ide-check 50 ecosystem/mod.nu -> 41 errors (all PRE-EXISTING, verified by stash-and-compare). Zero new errors introduced. Refs: ADR-025, .coder/benchmarks/phase2-transitivity.md Layer 3 --- .../integrations/ecosystem/mod.nu | 29 +++++++++++++++---- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/nulib/lib_provisioning/integrations/ecosystem/mod.nu b/nulib/lib_provisioning/integrations/ecosystem/mod.nu index 3f81731..79876b9 100644 --- a/nulib/lib_provisioning/integrations/ecosystem/mod.nu +++ b/nulib/lib_provisioning/integrations/ecosystem/mod.nu @@ -1,8 +1,27 @@ # Ecosystem Integrations Module # Re-exports all ecosystem integration providers: backup, runtime, SSH, GitOps, service management -use ./runtime.nu * -use ./backup.nu * -use ./ssh_advanced.nu * -use ./gitops.nu * -use ./service.nu * +# ecosystem/ subsystem facade — selective re-exports (ADR-025 Phase 3 Layer 3). +# Former `use ./X *` was a no-op (not `export use`), so no symbols were actually +# propagated to integrations/mod.nu. Converted to `export use` + selective so the +# facade behaves as its comment claims. + +export use ./runtime.nu [ + runtime-compose runtime-detect runtime-exec runtime-info runtime-list +] +export use ./backup.nu [ + backup-create backup-list backup-restore backup-retention + backup-schedule backup-status +] +export use ./ssh_advanced.nu [ + ssh-circuit-breaker-status ssh-deployment-strategies ssh-pool-connect + ssh-pool-exec ssh-pool-status ssh-retry-config +] +export use ./gitops.nu [ + gitops-deployments gitops-event-types gitops-rule-config gitops-rules + gitops-status gitops-trigger gitops-watch +] +export use ./service.nu [ + service-detect-init service-install service-list service-restart + service-restart-policy service-start service-status service-stop +]