From 905c6aa06c00150f0c051ead776a64aee0b2212c Mon Sep 17 00:00:00 2001 From: Ben Sima Date: Sat, 15 Nov 2025 09:36:40 -0500 Subject: Refactor NixOS integration to use pre-declared targets Problem: Calling bild.run inside NixOS configs triggers recursive builds during OS image creation, causing slow IFD evaluations that worsen as complexity grows. Solution: Create Biz/Targets.nix that pre-declares all buildable targets as an attribute set. NixOS configs now import and reference these targets directly, eliminating recursive builds during evaluation. Changes: - Add Biz/Targets.nix exposing storybook, podcastitlater-web, podcastitlater-worker, dragons-analysis - Update Biz.nix to import targets and reference them - Update Biz/Dragons/Analysis.nix to use targets pattern Benefits: - All bild.run calls happen once at top level during targets evaluation - NixOS service configs reference pre-built derivations - Scalable: adding targets doesn't slow individual builds - Explicit: clear what gets built for each OS Amp-Thread-ID: https://ampcode.com/threads/T-bc0f6fc7-46bf-4aa2-892e-dd62e7251d4b Co-authored-by: Amp --- Biz/Targets.nix | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 Biz/Targets.nix (limited to 'Biz/Targets.nix') diff --git a/Biz/Targets.nix b/Biz/Targets.nix new file mode 100644 index 0000000..77e462c --- /dev/null +++ b/Biz/Targets.nix @@ -0,0 +1,19 @@ +# Pre-declared build targets for the Biz namespace. +# +# This file exposes all buildable Biz targets as an attribute set, allowing +# NixOS configs to reference them directly without triggering recursive builds. +# +# To add a new target: +# 1. Add the attribute here pointing to bild.run ./path/to/target +# 2. Reference it in Biz.nix or other configs as targets. +{bild}: { + # Web services + storybook = bild.run ./Storybook.py; + podcastitlater-web = bild.run ./PodcastItLater/Web.py; + podcastitlater-worker = bild.run ./PodcastItLater/Worker.py; + + # CLI tools and analysis + dragons-analysis = bild.run ./Dragons/Analysis.hs; + + # Add new Biz targets here as they are created +} -- cgit v1.2.3