Refactor component terminology to programs in config and manifest

- Updated the terminology from "components" to "programs" across the codebase, including in config loading, saving, and manifest specifications.
- Introduced a new `stacks.py` file to handle lifecycle actions for development stacks, implementing handlers for Python and React Vite stacks.
- Adjusted tests to reflect the new program structure and ensure proper functionality.
- Revised documentation to align with the new terminology and structure, ensuring clarity on the purpose and configuration of programs, services, and jobs.
This commit is contained in:
2026-02-23 22:09:41 -08:00
parent f559fba143
commit 0d36e4f72a
48 changed files with 7512 additions and 632 deletions

View File

@@ -314,7 +314,7 @@ uv run ruff format . # Format
## Registering in castle.yaml
```yaml
components:
programs:
my-tool:
description: Does something useful
source: components/my-tool
@@ -326,7 +326,7 @@ components:
Tools with system dependencies declare them in the component:
```yaml
components:
programs:
pdf2md:
description: Convert PDF files to Markdown
source: components/pdf2md
@@ -337,7 +337,7 @@ components:
system_dependencies: [pandoc, poppler-utils]
```
Tools live in the `components:` section. If a tool also runs on a schedule,
Tools live in the `programs:` section. If a tool also runs on a schedule,
add a separate entry in the `jobs:` section referencing the component.
See @docs/component-registry.md for the full registry reference.