|
2 | 2 |
|
3 | 3 | This document provides the technical foundation for the Maintain build system |
4 | 4 | and CI/CD toolkit within the Land ecosystem. **Maintain** orchestrates builds |
5 | | -across all Land elements, embeds a Rhai scripting engine for flexible automation, |
6 | | -and provides type-safe TOML/JSON5 configuration editing. |
| 5 | +across all Land elements, embeds a Rhai scripting engine for flexible |
| 6 | +automation, and provides type-safe TOML/JSON5 configuration editing. |
7 | 7 |
|
8 | 8 | --- |
9 | 9 |
|
@@ -67,23 +67,23 @@ graph TB |
67 | 67 |
|
68 | 68 | ## Key Modules |
69 | 69 |
|
70 | | -| Path | Description | |
71 | | -| :--- | :--- | |
72 | | -| `Source/Library.rs` | Binary entry point; wires together CLI, logging, and error handling | |
73 | | -| `Source/Build/CLI.rs` | `clap`-based CLI with subcommands: debug, release, profile, dev | |
74 | | -| `Source/Build/Definition.rs` | Build group definitions: which elements to build, in what order | |
75 | | -| `Source/Build/Fn.rs` | Core build function dispatch: clean, compile, link, post-process | |
76 | | -| `Source/Build/Process.rs` | Child process spawning with stdout/stderr capture and exit code handling | |
77 | | -| `Source/Build/TomlEdit.rs` | Non-lossy TOML editing for `Cargo.toml` version bumps and dependency changes | |
78 | | -| `Source/Build/JsonEdit.rs` | JSON5-aware configuration editing for `package.json` and `.json5` files | |
79 | | -| `Source/Build/Pascalize.rs` | PascalCase ↔ words conversion utilities for naming convention enforcement | |
80 | | -| `Source/Build/GetTauriTargetTriple.rs` | Detects current Rust target triple for SideCar binary selection | |
81 | | -| `Source/Build/EnvironmentResolver.rs` | Resolves environment variables with fallbacks for build-time configuration | |
82 | | -| `Source/Build/Logger.rs` | Colored terminal output using the `colored` crate | |
83 | | -| `Source/Build/Error.rs` | Unified error type for build failures | |
84 | | -| `Source/Build/Rhai/ConfigLoader.rs` | Loads and parses Rhai build configuration scripts | |
85 | | -| `Source/Build/Rhai/ScriptRunner.rs` | Executes Rhai scripts within the build context with Land API bindings | |
86 | | -| `Source/Build/Rhai/EnvironmentResolver.rs` | Exposes environment variable resolution to Rhai scripts | |
| 70 | +| Path | Description | |
| 71 | +| :----------------------------------------- | :--------------------------------------------------------------------------- | |
| 72 | +| `Source/Library.rs` | Binary entry point; wires together CLI, logging, and error handling | |
| 73 | +| `Source/Build/CLI.rs` | `clap`-based CLI with subcommands: debug, release, profile, dev | |
| 74 | +| `Source/Build/Definition.rs` | Build group definitions: which elements to build, in what order | |
| 75 | +| `Source/Build/Fn.rs` | Core build function dispatch: clean, compile, link, post-process | |
| 76 | +| `Source/Build/Process.rs` | Child process spawning with stdout/stderr capture and exit code handling | |
| 77 | +| `Source/Build/TomlEdit.rs` | Non-lossy TOML editing for `Cargo.toml` version bumps and dependency changes | |
| 78 | +| `Source/Build/JsonEdit.rs` | JSON5-aware configuration editing for `package.json` and `.json5` files | |
| 79 | +| `Source/Build/Pascalize.rs` | PascalCase ↔ words conversion utilities for naming convention enforcement | |
| 80 | +| `Source/Build/GetTauriTargetTriple.rs` | Detects current Rust target triple for SideCar binary selection | |
| 81 | +| `Source/Build/EnvironmentResolver.rs` | Resolves environment variables with fallbacks for build-time configuration | |
| 82 | +| `Source/Build/Logger.rs` | Colored terminal output using the `colored` crate | |
| 83 | +| `Source/Build/Error.rs` | Unified error type for build failures | |
| 84 | +| `Source/Build/Rhai/ConfigLoader.rs` | Loads and parses Rhai build configuration scripts | |
| 85 | +| `Source/Build/Rhai/ScriptRunner.rs` | Executes Rhai scripts within the build context with Land API bindings | |
| 86 | +| `Source/Build/Rhai/EnvironmentResolver.rs` | Exposes environment variable resolution to Rhai scripts | |
87 | 87 |
|
88 | 88 | --- |
89 | 89 |
|
@@ -116,35 +116,35 @@ sequenceDiagram |
116 | 116 |
|
117 | 117 | ## Integration Points |
118 | 118 |
|
119 | | -| Connecting Element | Direction | Mechanism | Description | |
120 | | -| :--- | :--- | :--- | :--- | |
121 | | -| **Mountain** | Build target | `cargo build` subprocess | Maintain compiles Mountain as part of the debug/release build group | |
122 | | -| **Air** | Build target | `cargo build` subprocess | Air daemon compiled alongside Mountain | |
123 | | -| **Echo** | Build target | `cargo build` subprocess | Echo scheduler compiled as a dependency of Mountain | |
124 | | -| **Rest** | Build target | `cargo build` subprocess | Rest compiler binary built for use by Output | |
125 | | -| **SideCar** | Build target | `cargo build` subprocess | SideCar Download tool compiled and run as part of setup | |
126 | | -| **Output** | Build trigger | `pnpm run prepublishOnly` subprocess | Maintain triggers TypeScript builds via pnpm | |
127 | | -| **Wind / Sky** | Build trigger | `pnpm run prepublishOnly` subprocess | Frontend packages built through Turborepo via Maintain | |
| 119 | +| Connecting Element | Direction | Mechanism | Description | |
| 120 | +| :----------------- | :------------ | :----------------------------------- | :------------------------------------------------------------------ | |
| 121 | +| **Mountain** | Build target | `cargo build` subprocess | Maintain compiles Mountain as part of the debug/release build group | |
| 122 | +| **Air** | Build target | `cargo build` subprocess | Air daemon compiled alongside Mountain | |
| 123 | +| **Echo** | Build target | `cargo build` subprocess | Echo scheduler compiled as a dependency of Mountain | |
| 124 | +| **Rest** | Build target | `cargo build` subprocess | Rest compiler binary built for use by Output | |
| 125 | +| **SideCar** | Build target | `cargo build` subprocess | SideCar Download tool compiled and run as part of setup | |
| 126 | +| **Output** | Build trigger | `pnpm run prepublishOnly` subprocess | Maintain triggers TypeScript builds via pnpm | |
| 127 | +| **Wind / Sky** | Build trigger | `pnpm run prepublishOnly` subprocess | Frontend packages built through Turborepo via Maintain | |
128 | 128 |
|
129 | 129 | --- |
130 | 130 |
|
131 | 131 | ## Configuration |
132 | 132 |
|
133 | | -| Option | CLI Flag | Description | |
134 | | -| :--- | :--- | :--- | |
135 | | -| Build mode | `debug` / `release` subcommand | Controls `--release` flag and optimization level | |
136 | | -| Target triple | `--target` | Rust target triple for cross-compilation | |
137 | | -| Element filter | `--element` | Build only a specific element rather than the full group | |
138 | | -| Script path | `--script` | Override the default Rhai build configuration script | |
139 | | -| Verbosity | `--verbose` | Enable detailed subprocess output logging | |
| 133 | +| Option | CLI Flag | Description | |
| 134 | +| :------------- | :----------------------------- | :------------------------------------------------------- | |
| 135 | +| Build mode | `debug` / `release` subcommand | Controls `--release` flag and optimization level | |
| 136 | +| Target triple | `--target` | Rust target triple for cross-compilation | |
| 137 | +| Element filter | `--element` | Build only a specific element rather than the full group | |
| 138 | +| Script path | `--script` | Override the default Rhai build configuration script | |
| 139 | +| Verbosity | `--verbose` | Enable detailed subprocess output logging | |
140 | 140 |
|
141 | 141 | **Shell script entry points:** |
142 | 142 |
|
143 | | -| Script | Purpose | |
144 | | -| :--- | :--- | |
145 | | -| `Debug.sh` | Full debug build of all elements | |
146 | | -| `Dev-Mountain.sh` | Hot-reload development mode for Mountain | |
147 | | -| `Release.sh` | Optimized release build with all elements | |
148 | | -| `Profile.sh` | Release build with profiling instrumentation | |
149 | | -| `Debug/All.sh` | Debug all components including frontend | |
150 | | -| `Debug/Wind.sh` | Debug Wind TypeScript service layer only | |
| 143 | +| Script | Purpose | |
| 144 | +| :---------------- | :------------------------------------------- | |
| 145 | +| `Debug.sh` | Full debug build of all elements | |
| 146 | +| `Dev-Mountain.sh` | Hot-reload development mode for Mountain | |
| 147 | +| `Release.sh` | Optimized release build with all elements | |
| 148 | +| `Profile.sh` | Release build with profiling instrumentation | |
| 149 | +| `Debug/All.sh` | Debug all components including frontend | |
| 150 | +| `Debug/Wind.sh` | Debug Wind TypeScript service layer only | |
0 commit comments