@tdk-landscape/tdk-cli-core 1.3.45 → 1.3.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/release-binaries.yml +54 -0
- package/.pre-commit-config.yaml +57 -0
- package/Makefile +92 -0
- package/bun.lock +538 -0
- package/cli/AGENTS.md +390 -0
- package/cli/DESIGN.md +735 -0
- package/cli/biome.json +44 -0
- package/cli/dependency-graph.svg +1135 -0
- package/cli/knip.json +6 -0
- package/cli/package.json +77 -0
- package/cli/pnpm-lock.yaml +2305 -0
- package/cli/pnpm-workspace.yaml +2 -0
- package/cli/shared-platform-engineering/docker-templates/bun-hoisted-symlink-fix.sh +23 -0
- package/cli/shared-platform-engineering/docker-templates/infisical-entrypoint.sh +464 -0
- package/cli/shared-platform-engineering/docker-templates/install-deps.sh +152 -0
- package/cli/shared-platform-engineering/docker-templates/prisma-bun-client-link-fix.sh +12 -0
- package/cli/shared-platform-engineering/docker-templates/prisma-normalize-client.sh +56 -0
- package/{dist/cli.js → cli/src/cli.ts} +21 -13
- package/cli/src/commands/__tests__/always-enabled-infra.test.ts +115 -0
- package/cli/src/commands/__tests__/config.test.ts +146 -0
- package/cli/src/commands/__tests__/doctor.test.ts +557 -0
- package/cli/src/commands/__tests__/error-handling.test.ts +78 -0
- package/cli/src/commands/__tests__/phases-model.test.ts +163 -0
- package/cli/src/commands/__tests__/project-resource-features-e2e.test.ts +207 -0
- package/cli/src/commands/__tests__/project.test.ts +68 -0
- package/cli/src/commands/__tests__/resource.test.ts +226 -0
- package/cli/src/commands/__tests__/saas-starter-integration.test.ts +196 -0
- package/cli/src/commands/__tests__/stack-features-e2e.test.ts +129 -0
- package/cli/src/commands/__tests__/upgrade.test.ts +101 -0
- package/{dist/commands/completion.js → cli/src/commands/completion.ts} +78 -72
- package/cli/src/commands/config.ts +299 -0
- package/cli/src/commands/doctor.ts +790 -0
- package/cli/src/commands/down.ts +37 -0
- package/cli/src/commands/help.ts +150 -0
- package/cli/src/commands/networks-design.md +80 -0
- package/cli/src/commands/networks.ts +332 -0
- package/cli/src/commands/project.ts +439 -0
- package/cli/src/commands/projects.ts +82 -0
- package/cli/src/commands/resource.ts +652 -0
- package/cli/src/commands/resources.ts +95 -0
- package/cli/src/commands/stack.ts +128 -0
- package/cli/src/commands/stacks.ts +52 -0
- package/cli/src/commands/status.ts +88 -0
- package/cli/src/commands/ui.tsx +843 -0
- package/cli/src/commands/up.ts +150 -0
- package/cli/src/commands/upgrade.ts +570 -0
- package/{dist/commands/version.js → cli/src/commands/version.ts} +5 -5
- package/cli/src/components/Accessible.tsx +21 -0
- package/cli/src/components/BaseTooltip.tsx +66 -0
- package/cli/src/components/DetailPanel.tsx +146 -0
- package/cli/src/components/FileTree.tsx +89 -0
- package/cli/src/components/ResourceSelectInput.tsx +30 -0
- package/cli/src/components/ResourceTable.tsx +78 -0
- package/cli/src/components/TabBar.tsx +53 -0
- package/cli/src/components/Tooltip.tsx +11 -0
- package/{dist/components/index.js → cli/src/components/index.ts} +0 -1
- package/cli/src/config/platform-standards.test.ts +11 -0
- package/cli/src/config/platform-standards.ts +196 -0
- package/cli/src/generator/__tests__/extension-fetch.test.ts +220 -0
- package/cli/src/generator/__tests__/template-engine.test.ts +70 -0
- package/cli/src/generator/extension-fetch.ts +279 -0
- package/cli/src/generator/template-engine.ts +754 -0
- package/cli/src/index.ts +86 -0
- package/cli/src/templates.d.ts +4 -0
- package/cli/src/types/index.ts +351 -0
- package/cli/src/utils/__tests__/cache.test.ts +98 -0
- package/cli/src/utils/__tests__/formatting.test.ts +170 -0
- package/cli/src/utils/__tests__/paths.test.ts +180 -0
- package/cli/src/utils/__tests__/port-assignment.test.ts +121 -0
- package/cli/src/utils/__tests__/service-urls.test.ts +174 -0
- package/cli/src/utils/__tests__/services.test.ts +531 -0
- package/cli/src/utils/__tests__/tilt.test.ts +143 -0
- package/cli/src/utils/__tests__/validation.test.ts +148 -0
- package/cli/src/utils/cache.ts +76 -0
- package/cli/src/utils/command-helpers.ts +54 -0
- package/cli/src/utils/constants.ts +126 -0
- package/cli/src/utils/discovery-context.ts +49 -0
- package/cli/src/utils/docker.ts +20 -0
- package/cli/src/utils/doctor-runtime.ts +604 -0
- package/cli/src/utils/env-validator.ts +139 -0
- package/cli/src/utils/errors.ts +168 -0
- package/cli/src/utils/file-helpers.ts +62 -0
- package/cli/src/utils/formatting.ts +215 -0
- package/cli/src/utils/paths.ts +53 -0
- package/cli/src/utils/port-assignment.ts +106 -0
- package/cli/src/utils/project-features.ts +118 -0
- package/cli/src/utils/project-templates.ts +28 -0
- package/cli/src/utils/prompt.ts +123 -0
- package/cli/src/utils/resource-features.ts +209 -0
- package/cli/src/utils/service-urls.ts +124 -0
- package/cli/src/utils/services.ts +363 -0
- package/cli/src/utils/stack-features.ts +30 -0
- package/cli/src/utils/tar.ts +24 -0
- package/cli/src/utils/tilt.ts +113 -0
- package/cli/src/utils/validation.ts +67 -0
- package/{templates → cli/templates}/Tiltfile.hbs +1 -1
- package/cli/tsconfig.json +25 -0
- package/cli/tsconfig.typecheck.json +8 -0
- package/docs/FEATURES.md +279 -0
- package/engine/topologies/platform/docker/dockerfile/dockerfile.star +3 -3
- package/engine/topologies/platform/docker/generators/golden_docker_generator_v2.star +1 -1
- package/engine/topologies/platform/docker/layers/l2_dependency_layers.star +0 -3
- package/engine/topologies/platform/docker/layers/l3_builder_layers.star +1 -1
- package/engine/topologies/platform/docker/layers/l4_runtime_layers.star +1 -1
- package/engine/topologies/platform/docker/secrets/infisical.star +19 -47
- package/engine/topologies/tilt/resources/orchestrator/apply_migrator_orchestration.star +1 -1
- package/install.sh +242 -0
- package/knip.json +10 -0
- package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/.openspec.yaml +2 -0
- package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/design.md +102 -0
- package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/proposal.md +31 -0
- package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/specs/vscode-tdk-notifications/spec.md +48 -0
- package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/specs/vscode-tdk-orchestration/spec.md +63 -0
- package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/specs/vscode-tdk-troubleshooting/spec.md +56 -0
- package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/tasks.md +61 -0
- package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/.openspec.yaml +2 -0
- package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/design.md +114 -0
- package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/proposal.md +32 -0
- package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/specs/manifest-field-migration/spec.md +20 -0
- package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/specs/resource-terminology-standard/spec.md +20 -0
- package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/specs/stack-terminology-standard/spec.md +20 -0
- package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/tasks.md +194 -0
- package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/.openspec.yaml +2 -0
- package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/design.md +111 -0
- package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/proposal.md +33 -0
- package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/function-naming-alignment/spec.md +12 -0
- package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/optional-parameter-patterns/spec.md +18 -0
- package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/parameter-documentation/spec.md +16 -0
- package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/parameter-naming-consistency/spec.md +12 -0
- package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/parameter-ordering-standard/spec.md +12 -0
- package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/tasks.md +194 -0
- package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/.openspec.yaml +2 -0
- package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/codebase-audit-report.md +62 -0
- package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/design.md +84 -0
- package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/proposal.md +31 -0
- package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/codebase-audit/spec.md +27 -0
- package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/dead-code-cleanup/spec.md +27 -0
- package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/test-gap-fill/spec.md +23 -0
- package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/todo-resolution/spec.md +27 -0
- package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/tasks.md +39 -0
- package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/.openspec.yaml +5 -0
- package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/design.md +94 -0
- package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/proposal.md +46 -0
- package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/ai-slop-cleanup/CLEANUP_REPORT_8.md +174 -0
- package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/ai-slop-cleanup/CRITICAL_ASSESSMENT_8.md +160 -0
- package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/circular-deps/CRITICAL_ASSESSMENT_4.md +381 -0
- package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/dead-code/CRITICAL_ASSESSMENT_3.md +316 -0
- package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/deduplication/CRITICAL_ASSESSMENT_1.md +290 -0
- package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/deduplication/IMPLEMENTATION_SUMMARY_1.md +233 -0
- package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/defensive-cleanup/CRITICAL_ASSESSMENT_6.md +835 -0
- package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/legacy-cleanup/CRITICAL_ASSESSMENT_7.md +254 -0
- package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/legacy-cleanup/IMPLEMENTATION_SUMMARY_7.md +187 -0
- package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/strong-typing/CRITICAL_ASSESSMENT_5.md +269 -0
- package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/type-consolidation/CRITICAL_ASSESSMENT_2.md +312 -0
- package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/type-consolidation/IMPLEMENTATION_SUMMARY.md +170 -0
- package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/tasks.md +137 -0
- package/openspec/changes/archive/2026-06-25-landscape-consolidation/.openspec.yaml +2 -0
- package/openspec/changes/archive/2026-06-25-landscape-consolidation/design.md +80 -0
- package/openspec/changes/archive/2026-06-25-landscape-consolidation/proposal.md +40 -0
- package/openspec/changes/archive/2026-06-25-landscape-consolidation/spec.md +52 -0
- package/openspec/changes/archive/2026-06-25-landscape-consolidation/tasks.md +51 -0
- package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/.openspec.yaml +2 -0
- package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/design.md +43 -0
- package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/proposal.md +29 -0
- package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/specs/self-contained-generated-projects/spec.md +67 -0
- package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/tasks.md +27 -0
- package/openspec/specs/manifest-field-migration/spec.md +24 -0
- package/openspec/specs/resource-terminology-standard/spec.md +24 -0
- package/openspec/specs/self-contained-generated-projects/spec.md +67 -0
- package/openspec/specs/stack-terminology-standard/spec.md +24 -0
- package/package.json +27 -64
- package/platform/services/platform/proxy/service.yaml +14 -0
- package/scripts/audit-codebase.sh +213 -0
- package/scripts/install-git-hooks.sh +14 -0
- package/scripts/release-binaries.sh +94 -0
- package/scripts/setup-pre-commit.sh +33 -0
- package/scripts/stage-npm-engine.sh +36 -0
- package/shared-platform-engineering/docker-templates/bun-hoisted-symlink-fix.sh +23 -0
- package/shared-platform-engineering/docker-templates/infisical-entrypoint.sh +464 -0
- package/shared-platform-engineering/docker-templates/install-deps.sh +152 -0
- package/shared-platform-engineering/docker-templates/prisma-bun-client-link-fix.sh +12 -0
- package/shared-platform-engineering/docker-templates/prisma-normalize-client.sh +56 -0
- package/tests/tilt-engine/__init__.py +5 -0
- package/tests/tilt-engine/conftest.py +182 -0
- package/tests/tilt-engine/fixtures/appointment-frontend-service.json +11 -0
- package/tests/tilt-engine/fixtures/identity-backend-service.json +12 -0
- package/tests/tilt-engine/fixtures/invalid-service.json +4 -0
- package/tests/tilt-engine/test_agents_md_generator.py +341 -0
- package/tests/tilt-engine/test_agents_md_integration.py +378 -0
- package/tests/tilt-engine/test_cache_operations.py +181 -0
- package/tests/tilt-engine/test_cache_persistence.py +142 -0
- package/tests/tilt-engine/test_code_executor.py +152 -0
- package/tests/tilt-engine/test_code_viewer.py +127 -0
- package/tests/tilt-engine/test_compose_port_anchors.py +310 -0
- package/tests/tilt-engine/test_config_inspector.py +162 -0
- package/tests/tilt-engine/test_daemon_focus_mode.py +89 -0
- package/tests/tilt-engine/test_daemon_polling.py +122 -0
- package/tests/tilt-engine/test_daemon_registration.py +115 -0
- package/tests/tilt-engine/test_daemon_validation.py +107 -0
- package/tests/tilt-engine/test_docker_generator_bugs.py +493 -0
- package/tests/tilt-engine/test_docker_prune.py +119 -0
- package/tests/tilt-engine/test_dockerignore_path_bug.py +82 -0
- package/tests/tilt-engine/test_file_browser.py +193 -0
- package/tests/tilt-engine/test_frontend_basepath_manifest.py +27 -0
- package/tests/tilt-engine/test_health_dependencies.py +130 -0
- package/tests/tilt-engine/test_health_endpoints.py +118 -0
- package/tests/tilt-engine/test_health_tilt_ui.py +85 -0
- package/tests/tilt-engine/test_safety_aliases.py +84 -0
- package/tests/tilt-engine/test_snapshot_diff.py +136 -0
- package/tests/tilt-engine/test_snapshot_persistence.py +163 -0
- package/tests/tilt-engine/test_snapshot_scanning.py +123 -0
- package/tests/tilt-engine/test_standalone_project_boot.py +61 -0
- package/tests/tilt-engine/test_standalone_traefik.py +108 -0
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/commands/completion.d.ts +0 -3
- package/dist/commands/completion.d.ts.map +0 -1
- package/dist/commands/completion.js.map +0 -1
- package/dist/commands/config.d.ts +0 -3
- package/dist/commands/config.d.ts.map +0 -1
- package/dist/commands/config.js +0 -231
- package/dist/commands/config.js.map +0 -1
- package/dist/commands/doctor.d.ts +0 -7
- package/dist/commands/doctor.d.ts.map +0 -1
- package/dist/commands/doctor.js +0 -597
- package/dist/commands/doctor.js.map +0 -1
- package/dist/commands/down.d.ts +0 -3
- package/dist/commands/down.d.ts.map +0 -1
- package/dist/commands/down.js +0 -32
- package/dist/commands/down.js.map +0 -1
- package/dist/commands/help.d.ts +0 -2
- package/dist/commands/help.d.ts.map +0 -1
- package/dist/commands/help.js +0 -130
- package/dist/commands/help.js.map +0 -1
- package/dist/commands/networks.d.ts +0 -3
- package/dist/commands/networks.d.ts.map +0 -1
- package/dist/commands/networks.js +0 -260
- package/dist/commands/networks.js.map +0 -1
- package/dist/commands/project.d.ts +0 -3
- package/dist/commands/project.d.ts.map +0 -1
- package/dist/commands/project.js +0 -373
- package/dist/commands/project.js.map +0 -1
- package/dist/commands/projects.d.ts +0 -3
- package/dist/commands/projects.d.ts.map +0 -1
- package/dist/commands/projects.js +0 -71
- package/dist/commands/projects.js.map +0 -1
- package/dist/commands/resource.d.ts +0 -69
- package/dist/commands/resource.d.ts.map +0 -1
- package/dist/commands/resource.js +0 -579
- package/dist/commands/resource.js.map +0 -1
- package/dist/commands/resources.d.ts +0 -3
- package/dist/commands/resources.d.ts.map +0 -1
- package/dist/commands/resources.js +0 -73
- package/dist/commands/resources.js.map +0 -1
- package/dist/commands/stack.d.ts +0 -3
- package/dist/commands/stack.d.ts.map +0 -1
- package/dist/commands/stack.js +0 -97
- package/dist/commands/stack.js.map +0 -1
- package/dist/commands/stacks.d.ts +0 -3
- package/dist/commands/stacks.d.ts.map +0 -1
- package/dist/commands/stacks.js +0 -43
- package/dist/commands/stacks.js.map +0 -1
- package/dist/commands/status.d.ts +0 -3
- package/dist/commands/status.d.ts.map +0 -1
- package/dist/commands/status.js +0 -71
- package/dist/commands/status.js.map +0 -1
- package/dist/commands/ui.d.ts +0 -3
- package/dist/commands/ui.d.ts.map +0 -1
- package/dist/commands/ui.js +0 -445
- package/dist/commands/ui.js.map +0 -1
- package/dist/commands/up.d.ts +0 -3
- package/dist/commands/up.d.ts.map +0 -1
- package/dist/commands/up.js +0 -110
- package/dist/commands/up.js.map +0 -1
- package/dist/commands/upgrade.d.ts +0 -11
- package/dist/commands/upgrade.d.ts.map +0 -1
- package/dist/commands/upgrade.js +0 -496
- package/dist/commands/upgrade.js.map +0 -1
- package/dist/commands/version.d.ts +0 -3
- package/dist/commands/version.d.ts.map +0 -1
- package/dist/commands/version.js.map +0 -1
- package/dist/components/Accessible.d.ts +0 -8
- package/dist/components/Accessible.d.ts.map +0 -1
- package/dist/components/Accessible.js +0 -10
- package/dist/components/Accessible.js.map +0 -1
- package/dist/components/BaseTooltip.d.ts +0 -4
- package/dist/components/BaseTooltip.d.ts.map +0 -1
- package/dist/components/BaseTooltip.js +0 -28
- package/dist/components/BaseTooltip.js.map +0 -1
- package/dist/components/DetailPanel.d.ts +0 -4
- package/dist/components/DetailPanel.d.ts.map +0 -1
- package/dist/components/DetailPanel.js +0 -18
- package/dist/components/DetailPanel.js.map +0 -1
- package/dist/components/FileTree.d.ts +0 -4
- package/dist/components/FileTree.d.ts.map +0 -1
- package/dist/components/FileTree.js +0 -47
- package/dist/components/FileTree.js.map +0 -1
- package/dist/components/ResourceSelectInput.d.ts +0 -4
- package/dist/components/ResourceSelectInput.d.ts.map +0 -1
- package/dist/components/ResourceSelectInput.js +0 -7
- package/dist/components/ResourceSelectInput.js.map +0 -1
- package/dist/components/ResourceTable.d.ts +0 -4
- package/dist/components/ResourceTable.d.ts.map +0 -1
- package/dist/components/ResourceTable.js +0 -18
- package/dist/components/ResourceTable.js.map +0 -1
- package/dist/components/TabBar.d.ts +0 -4
- package/dist/components/TabBar.d.ts.map +0 -1
- package/dist/components/TabBar.js +0 -17
- package/dist/components/TabBar.js.map +0 -1
- package/dist/components/Tooltip.d.ts +0 -12
- package/dist/components/Tooltip.d.ts.map +0 -1
- package/dist/components/Tooltip.js +0 -12
- package/dist/components/Tooltip.js.map +0 -1
- package/dist/components/index.d.ts +0 -8
- package/dist/components/index.d.ts.map +0 -1
- package/dist/components/index.js.map +0 -1
- package/dist/config/platform-standards.d.ts +0 -159
- package/dist/config/platform-standards.d.ts.map +0 -1
- package/dist/config/platform-standards.js +0 -181
- package/dist/config/platform-standards.js.map +0 -1
- package/dist/generator/extension-fetch.d.ts +0 -25
- package/dist/generator/extension-fetch.d.ts.map +0 -1
- package/dist/generator/extension-fetch.js +0 -252
- package/dist/generator/extension-fetch.js.map +0 -1
- package/dist/generator/template-engine.d.ts +0 -61
- package/dist/generator/template-engine.d.ts.map +0 -1
- package/dist/generator/template-engine.js +0 -557
- package/dist/generator/template-engine.js.map +0 -1
- package/dist/index.d.ts +0 -11
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -11
- package/dist/index.js.map +0 -1
- package/dist/types/index.d.ts +0 -255
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -17
- package/dist/types/index.js.map +0 -1
- package/dist/utils/cache.d.ts +0 -19
- package/dist/utils/cache.d.ts.map +0 -1
- package/dist/utils/cache.js +0 -64
- package/dist/utils/cache.js.map +0 -1
- package/dist/utils/command-helpers.d.ts +0 -17
- package/dist/utils/command-helpers.d.ts.map +0 -1
- package/dist/utils/command-helpers.js +0 -41
- package/dist/utils/command-helpers.js.map +0 -1
- package/dist/utils/constants.d.ts +0 -52
- package/dist/utils/constants.d.ts.map +0 -1
- package/dist/utils/constants.js +0 -112
- package/dist/utils/constants.js.map +0 -1
- package/dist/utils/discovery-context.d.ts +0 -4
- package/dist/utils/discovery-context.d.ts.map +0 -1
- package/dist/utils/discovery-context.js +0 -39
- package/dist/utils/discovery-context.js.map +0 -1
- package/dist/utils/docker.d.ts +0 -4
- package/dist/utils/docker.d.ts.map +0 -1
- package/dist/utils/docker.js +0 -19
- package/dist/utils/docker.js.map +0 -1
- package/dist/utils/doctor-runtime.d.ts +0 -66
- package/dist/utils/doctor-runtime.d.ts.map +0 -1
- package/dist/utils/doctor-runtime.js +0 -469
- package/dist/utils/doctor-runtime.js.map +0 -1
- package/dist/utils/env-validator.d.ts +0 -15
- package/dist/utils/env-validator.d.ts.map +0 -1
- package/dist/utils/env-validator.js +0 -109
- package/dist/utils/env-validator.js.map +0 -1
- package/dist/utils/errors.d.ts +0 -31
- package/dist/utils/errors.d.ts.map +0 -1
- package/dist/utils/errors.js +0 -140
- package/dist/utils/errors.js.map +0 -1
- package/dist/utils/file-helpers.d.ts +0 -14
- package/dist/utils/file-helpers.d.ts.map +0 -1
- package/dist/utils/file-helpers.js +0 -45
- package/dist/utils/file-helpers.js.map +0 -1
- package/dist/utils/formatting.d.ts +0 -30
- package/dist/utils/formatting.d.ts.map +0 -1
- package/dist/utils/formatting.js +0 -164
- package/dist/utils/formatting.js.map +0 -1
- package/dist/utils/paths.d.ts +0 -3
- package/dist/utils/paths.d.ts.map +0 -1
- package/dist/utils/paths.js +0 -41
- package/dist/utils/paths.js.map +0 -1
- package/dist/utils/port-assignment.d.ts +0 -6
- package/dist/utils/port-assignment.d.ts.map +0 -1
- package/dist/utils/port-assignment.js +0 -81
- package/dist/utils/port-assignment.js.map +0 -1
- package/dist/utils/project-features.d.ts +0 -23
- package/dist/utils/project-features.d.ts.map +0 -1
- package/dist/utils/project-features.js +0 -98
- package/dist/utils/project-features.js.map +0 -1
- package/dist/utils/project-templates.d.ts +0 -7
- package/dist/utils/project-templates.d.ts.map +0 -1
- package/dist/utils/project-templates.js +0 -24
- package/dist/utils/project-templates.js.map +0 -1
- package/dist/utils/prompt.d.ts +0 -28
- package/dist/utils/prompt.d.ts.map +0 -1
- package/dist/utils/prompt.js +0 -79
- package/dist/utils/prompt.js.map +0 -1
- package/dist/utils/resource-features.d.ts +0 -29
- package/dist/utils/resource-features.d.ts.map +0 -1
- package/dist/utils/resource-features.js +0 -171
- package/dist/utils/resource-features.js.map +0 -1
- package/dist/utils/service-urls.d.ts +0 -30
- package/dist/utils/service-urls.d.ts.map +0 -1
- package/dist/utils/service-urls.js +0 -93
- package/dist/utils/service-urls.js.map +0 -1
- package/dist/utils/services.d.ts +0 -18
- package/dist/utils/services.d.ts.map +0 -1
- package/dist/utils/services.js +0 -291
- package/dist/utils/services.js.map +0 -1
- package/dist/utils/stack-features.d.ts +0 -22
- package/dist/utils/stack-features.d.ts.map +0 -1
- package/dist/utils/stack-features.js +0 -13
- package/dist/utils/stack-features.js.map +0 -1
- package/dist/utils/tar.d.ts +0 -7
- package/dist/utils/tar.d.ts.map +0 -1
- package/dist/utils/tar.js +0 -21
- package/dist/utils/tar.js.map +0 -1
- package/dist/utils/tilt.d.ts +0 -19
- package/dist/utils/tilt.d.ts.map +0 -1
- package/dist/utils/tilt.js +0 -78
- package/dist/utils/tilt.js.map +0 -1
- package/dist/utils/validation.d.ts +0 -16
- package/dist/utils/validation.d.ts.map +0 -1
- package/dist/utils/validation.js +0 -58
- package/dist/utils/validation.js.map +0 -1
- /package/{README.md → cli/README.md} +0 -0
- /package/{bin → cli/bin}/tdk.js +0 -0
- /package/{templates → cli/templates}/.tiltignore.hbs +0 -0
- /package/{templates → cli/templates}/TILT_RESOURCE_DEFAULTS.star.hbs +0 -0
- /package/{templates → cli/templates}/TILT_TECH_STACK.star.hbs +0 -0
- /package/{templates → cli/templates}/spec.master.hbs +0 -0
package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/design.md
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
## Context
|
|
2
|
+
|
|
3
|
+
The codebase currently has terminology inconsistencies that have evolved over time:
|
|
4
|
+
|
|
5
|
+
1. **"domain" vs "stack"**: The manifest schema originally used `domain` to group related services, but this has been migrated to `stack`. Currently, code uses fallback patterns like `manifest.get('stack') or manifest.get('domain')` to support both, creating confusion about which is canonical.
|
|
6
|
+
|
|
7
|
+
2. **"service" vs "resource"**: The architecture has shifted from thinking in terms of "services" (business-oriented) to "resources" (deployment-oriented Tilt resources). Function names like `get_app_resources()` exist alongside variable names like `svc` and `service`, and docstrings refer to "services" while the code handles "resources".
|
|
8
|
+
|
|
9
|
+
3. **Cache keys**: The discovery cache uses `domain_configs` which doesn't align with the `stack` terminology.
|
|
10
|
+
|
|
11
|
+
4. **Autogenerated files**: Files like `product_autogenerated_domains_index.star` use old terminology.
|
|
12
|
+
|
|
13
|
+
These inconsistencies make the codebase harder to understand, especially for new developers. Standardizing on "stack" (for logical grouping) and "resource" (for deployable units) will provide clarity.
|
|
14
|
+
|
|
15
|
+
## Goals / Non-Goals
|
|
16
|
+
|
|
17
|
+
**Goals:**
|
|
18
|
+
- Replace all `domain` manifest field access with `stack` (remove fallbacks)
|
|
19
|
+
- Rename `domain_configs` cache key to `stack_configs`
|
|
20
|
+
- Update all docstrings and comments from "service" to "resource"
|
|
21
|
+
- Rename variables from `svc`, `service` to `resource`
|
|
22
|
+
- Rename functions like `_render_product_domains_index()` to `_render_product_stacks_index()`
|
|
23
|
+
- Update autogenerated file naming from `domains` to `stacks`
|
|
24
|
+
- Ensure no functional changes - purely terminology refactoring
|
|
25
|
+
|
|
26
|
+
**Non-Goals:**
|
|
27
|
+
- Changing manifest file structure (the JSON schema)
|
|
28
|
+
- Changing the actual behavior of any function
|
|
29
|
+
- Adding new features or capabilities
|
|
30
|
+
- Removing support for legacy manifest formats in the loader/parser
|
|
31
|
+
- Renaming the `app_resources` cache key (widely used, high risk)
|
|
32
|
+
|
|
33
|
+
## Decisions
|
|
34
|
+
|
|
35
|
+
### Decision 1: Keep `app_resources` Cache Key
|
|
36
|
+
**Rationale**: The `app_resources` key is used extensively across the codebase (50+ references). Changing it would touch too many files and create high risk of merge conflicts. The term "app resources" is acceptable since it describes the collection of resources for an app.
|
|
37
|
+
|
|
38
|
+
**Alternatives considered**:
|
|
39
|
+
- Rename to `resources` - Rejected due to high touchpoint count and risk
|
|
40
|
+
- Keep as-is - Accepted as "app resources" is descriptive enough
|
|
41
|
+
|
|
42
|
+
### Decision 2: Remove `domain` Fallback Patterns
|
|
43
|
+
**Rationale**: Patterns like `manifest.get('stack') or manifest.get('domain')` exist to support legacy manifests. However, all current manifests should have migrated to `stack`. Removing the fallback simplifies code and establishes `stack` as the canonical field.
|
|
44
|
+
|
|
45
|
+
**Migration approach**:
|
|
46
|
+
```starlark
|
|
47
|
+
# Before:
|
|
48
|
+
stack = manifest.get('stack') or manifest.get('domain') or extract_stack_from_path(path)
|
|
49
|
+
|
|
50
|
+
# After:
|
|
51
|
+
stack = manifest.get('stack', extract_stack_from_path(path))
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Decision 3: Update Variable Names Incrementally
|
|
55
|
+
**Rationale**: Variables like `svc`, `service` should become `resource`. However, in loops where context is clear (e.g., `for svc in resources`), shorter names are acceptable. Focus on function parameters and docstrings first.
|
|
56
|
+
|
|
57
|
+
**Priority order**:
|
|
58
|
+
1. Function parameter names
|
|
59
|
+
2. Docstrings and comments
|
|
60
|
+
3. Variable names in outer scope
|
|
61
|
+
4. Loop variables (lower priority)
|
|
62
|
+
|
|
63
|
+
### Decision 4: File Renaming for Autogenerated Files
|
|
64
|
+
**Rationale**: Autogenerated files like `product_autogenerated_domains_index.star` should be renamed to use `stacks`. This requires updating both the file generation code and any `load()` statements that reference these files.
|
|
65
|
+
|
|
66
|
+
## Risks / Trade-offs
|
|
67
|
+
|
|
68
|
+
**Risk**: Breaking external code that reads `domain` from manifests
|
|
69
|
+
- **Mitigation**: This is a **BREAKING** change as noted. External code must migrate to `stack` field.
|
|
70
|
+
|
|
71
|
+
**Risk**: Inadvertent functional changes during bulk renaming
|
|
72
|
+
- **Mitigation**: Each task will be focused on a specific file or small group. Tests must pass after each batch.
|
|
73
|
+
|
|
74
|
+
**Risk**: Merge conflicts with ongoing development
|
|
75
|
+
- **Mitigation**: Tasks are organized by directory to minimize conflict surface area. Complete quickly.
|
|
76
|
+
|
|
77
|
+
**Risk**: Missing some instances of old terminology
|
|
78
|
+
- **Mitigation**: Final verification task will grep for remaining `domain`, `svc`, `service` patterns.
|
|
79
|
+
|
|
80
|
+
**Risk**: Variable name collisions after renaming
|
|
81
|
+
- **Mitigation**: Use `resource` not `res` (too short). In nested contexts, use descriptive names like `app_resource`.
|
|
82
|
+
|
|
83
|
+
## Migration Plan
|
|
84
|
+
|
|
85
|
+
1. **Phase 1: Discovery System** (Tasks 1-40)
|
|
86
|
+
- Update `/discovery/` directory files
|
|
87
|
+
- Rename `domain_configs` to `stack_configs`
|
|
88
|
+
- Update manifest access patterns
|
|
89
|
+
- Update docstrings
|
|
90
|
+
|
|
91
|
+
2. **Phase 2: Engine Topologies Tilt** (Tasks 41-100)
|
|
92
|
+
- Update deprecated system files
|
|
93
|
+
- Update generator files
|
|
94
|
+
- Update resource orchestration
|
|
95
|
+
|
|
96
|
+
3. **Phase 3: Engine Topologies Platform** (Tasks 101-130)
|
|
97
|
+
- Update platform-level files
|
|
98
|
+
- Update Docker, networking, compose files
|
|
99
|
+
|
|
100
|
+
4. **Phase 4: Autogenerated File Naming** (Tasks 131-140)
|
|
101
|
+
- Rename autogenerated file references
|
|
102
|
+
- Update file generation code
|
|
103
|
+
|
|
104
|
+
5. **Phase 5: Verification** (Tasks 141-150)
|
|
105
|
+
- Run full test suite
|
|
106
|
+
- Grep for remaining `domain` references
|
|
107
|
+
- Grep for remaining `service` vs `resource` inconsistencies
|
|
108
|
+
- Verify no `manifest.get('domain')` patterns remain
|
|
109
|
+
|
|
110
|
+
## Open Questions
|
|
111
|
+
|
|
112
|
+
- Should we keep `app_resources` as-is or rename to `resources`? (Decision: keep as-is for now)
|
|
113
|
+
- Should we update function names like `get_app_resources()`? (Decision: lower priority, focus on internals first)
|
|
114
|
+
- How to handle `svc` in tight loops where context is clear? (Decision: focus on function params and docstrings first)
|
package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/proposal.md
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
## Why
|
|
2
|
+
|
|
3
|
+
The codebase currently uses inconsistent terminology: "domain" vs "stack" and "service" vs "resource" are used interchangeably, causing confusion. The manifest schema has migrated from `domain` to `stack` as the preferred field, and the architecture has shifted from "services" to "resources" as the core abstraction. Standardizing on "stack" (for grouping/organizing) and "resource" (for individual deployable units) will clarify the mental model and reduce cognitive overhead for developers working across 174+ .star files.
|
|
4
|
+
|
|
5
|
+
## What Changes
|
|
6
|
+
|
|
7
|
+
- **BREAKING** Rename all `domain` references to `stack` in manifest field access patterns (`manifest.get('domain')` → `manifest.get('stack')`)
|
|
8
|
+
- **BREAKING** Rename `domain_configs` cache key to `stack_configs`
|
|
9
|
+
- **BREAKING** Rename `_render_product_domains_index()` function to `_render_product_stacks_index()`
|
|
10
|
+
- **BREAKING** Update all function docstrings and comments from "service" to "resource" terminology
|
|
11
|
+
- **BREAKING** Rename variables like `svc` to `resource`, `service` to `resource` throughout
|
|
12
|
+
- Remove fallback patterns like `manifest.get('stack') or manifest.get('domain')` and use only `stack`
|
|
13
|
+
- Update autogenerated file names from `domains` to `stacks`
|
|
14
|
+
|
|
15
|
+
## Capabilities
|
|
16
|
+
|
|
17
|
+
### New Capabilities
|
|
18
|
+
- `stack-terminology-standard`: Standardize all grouping/organization terminology to "stack"
|
|
19
|
+
- `resource-terminology-standard`: Standardize all deployable unit terminology to "resource"
|
|
20
|
+
- `manifest-field-migration`: Remove deprecated `domain` field support from manifest access patterns
|
|
21
|
+
|
|
22
|
+
### Modified Capabilities
|
|
23
|
+
<!-- No existing spec requirements are changing - this is terminology refactoring -->
|
|
24
|
+
|
|
25
|
+
## Impact
|
|
26
|
+
|
|
27
|
+
- **Affected Files**: 50+ .star files across `/discovery/`, `/engine/topologies/tilt/`, `/engine/topologies/platform/`
|
|
28
|
+
- **Function Count**: 200+ function names, variables, and docstrings will be updated
|
|
29
|
+
- **Dependencies**: Any external code accessing `domain` field in manifests will need to use `stack`
|
|
30
|
+
- **Breaking Changes**: **BREAKING** - Manifest field access changes, function renames, cache key renames
|
|
31
|
+
- **Risk Level**: High - extensive terminology changes across many files
|
|
32
|
+
- **Testing Required**: Full test suite to verify no functional regressions
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
## ADDED Requirements
|
|
2
|
+
|
|
3
|
+
### Requirement: Manifest field migration from domain to stack
|
|
4
|
+
All manifest field access patterns SHALL remove fallback support for the deprecated `domain` field.
|
|
5
|
+
|
|
6
|
+
#### Scenario: No domain field fallback
|
|
7
|
+
- **WHEN** code retrieves the stack field from a manifest
|
|
8
|
+
- **THEN** it SHALL NOT use fallback patterns like `manifest.get('stack') or manifest.get('domain')`
|
|
9
|
+
|
|
10
|
+
#### Scenario: Stack field with default only
|
|
11
|
+
- **WHEN** a default value is needed for the stack field
|
|
12
|
+
- **THEN** code SHALL use `manifest.get('stack', default_value)` and NOT check for domain
|
|
13
|
+
|
|
14
|
+
#### Scenario: Domain field references removed
|
|
15
|
+
- **WHEN** searching the codebase for domain field access
|
|
16
|
+
- **THEN** no `manifest.get('domain')` patterns SHALL exist except in legacy parser code
|
|
17
|
+
|
|
18
|
+
#### Scenario: Filtering uses stack field only
|
|
19
|
+
- **WHEN** filtering manifests by logical group
|
|
20
|
+
- **THEN** code SHALL filter by `stack` field only and NOT check `domain` as fallback
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
## ADDED Requirements
|
|
2
|
+
|
|
3
|
+
### Requirement: Resource terminology standardization
|
|
4
|
+
All references to deployable units SHALL use the term "resource" instead of "service".
|
|
5
|
+
|
|
6
|
+
#### Scenario: Function parameters use resource terminology
|
|
7
|
+
- **WHEN** a function accepts a deployable unit as a parameter
|
|
8
|
+
- **THEN** the parameter name SHALL be `resource` or `resource_dict` and NOT `service` or `svc`
|
|
9
|
+
|
|
10
|
+
#### Scenario: Docstrings use resource terminology
|
|
11
|
+
- **WHEN** a function docstring describes a deployable unit
|
|
12
|
+
- **THEN** it SHALL use the term "resource" and NOT "service"
|
|
13
|
+
|
|
14
|
+
#### Scenario: Variable names use resource terminology
|
|
15
|
+
- **WHEN** a variable holds a deployable unit
|
|
16
|
+
- **THEN** the variable name SHALL be `resource` and NOT `svc` or `service`
|
|
17
|
+
|
|
18
|
+
#### Scenario: Comments use resource terminology
|
|
19
|
+
- **WHEN** code comments describe deployable units
|
|
20
|
+
- **THEN** they SHALL use the term "resource" and NOT "service"
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
## ADDED Requirements
|
|
2
|
+
|
|
3
|
+
### Requirement: Stack terminology standardization
|
|
4
|
+
All references to logical grouping of resources SHALL use the term "stack" instead of "domain".
|
|
5
|
+
|
|
6
|
+
#### Scenario: Manifest field access uses stack
|
|
7
|
+
- **WHEN** code accesses the grouping field from a manifest
|
|
8
|
+
- **THEN** it SHALL use `manifest.get('stack')` and NOT `manifest.get('domain')`
|
|
9
|
+
|
|
10
|
+
#### Scenario: Cache keys use stack terminology
|
|
11
|
+
- **WHEN** the discovery cache stores configuration for logical groups
|
|
12
|
+
- **THEN** the cache key SHALL be named `stack_configs` and NOT `domain_configs`
|
|
13
|
+
|
|
14
|
+
#### Scenario: Autogenerated files use stack naming
|
|
15
|
+
- **WHEN** autogenerated index files are created for logical groups
|
|
16
|
+
- **THEN** the filenames SHALL contain `stacks` and NOT `domains`
|
|
17
|
+
|
|
18
|
+
#### Scenario: Function names use stack terminology
|
|
19
|
+
- **WHEN** a function generates an index of logical groups
|
|
20
|
+
- **THEN** the function name SHALL include `stacks` and NOT `domains`
|
package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/tasks.md
ADDED
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
## 1. Discovery Directory - Core Registry and Cache
|
|
2
|
+
|
|
3
|
+
- [x] 1.1 Rename `domain_configs` to `stack_configs` in `discovery/registry.star` cache
|
|
4
|
+
- [x] 1.2 Update `_render_product_domains_index()` to `_render_product_stacks_index()` in `discovery/registry.star`
|
|
5
|
+
- [x] 1.3 Update all docstrings in `discovery/registry.star` from "service" to "resource"
|
|
6
|
+
- [x] 1.4 Update variable names in `discovery/registry.star` from `svc` to `resource`
|
|
7
|
+
- [x] 1.5 Update variable names in `discovery/registry.star` from `service` to `resource` (function params)
|
|
8
|
+
- [x] 1.6 Rename `domain` references in `discovery/discovery_orchestrator.star` manifest access
|
|
9
|
+
- [x] 1.7 Update docstrings in `discovery/discovery_orchestrator.star` from "service" to "resource"
|
|
10
|
+
- [x] 1.8 Update variable names in `discovery/discovery_orchestrator.star` from `svc` to `resource`
|
|
11
|
+
- [x] 1.9 Rename `domain` references in `discovery/incremental_discovery.star` manifest access
|
|
12
|
+
- [x] 1.10 Update docstrings in `discovery/incremental_discovery.star` from "service" to "resource"
|
|
13
|
+
|
|
14
|
+
## 2. Discovery Directory - Manifest and Loading
|
|
15
|
+
|
|
16
|
+
- [x] 2.1 Rename `domain` references in `discovery/manifest/loading.star` to `stack`
|
|
17
|
+
- [x] 2.2 Update docstrings in `discovery/manifest/loading.star` from "service" to "resource"
|
|
18
|
+
- [x] 2.3 Rename `domain` references in `discovery/manifest/normalize.star` to `stack`
|
|
19
|
+
- [x] 2.4 Update docstrings in `discovery/manifest/normalize.star` from "service" to "resource"
|
|
20
|
+
- [x] 2.5 Rename `domain` references in `discovery/manifest/validation.star` to `stack`
|
|
21
|
+
- [x] 2.6 Update docstrings in `discovery/manifest/validation.star` from "service" to "resource"
|
|
22
|
+
- [x] 2.7 Rename `domain` references in `discovery/config.star` to `stack`
|
|
23
|
+
- [x] 2.8 Update docstrings in `discovery/config.star` from "service" to "resource"
|
|
24
|
+
- [x] 2.9 Rename `domain` references in `discovery/constants.star` to `stack`
|
|
25
|
+
- [x] 2.10 Update docstrings in `discovery/constants.star` from "service" to "resource"
|
|
26
|
+
|
|
27
|
+
## 3. Discovery Directory - Utilities and Validation
|
|
28
|
+
|
|
29
|
+
- [x] 3.1 Rename `domain` references in `discovery/validation.star` to `stack`
|
|
30
|
+
- [x] 3.2 Update docstrings in `discovery/validation.star` from "service" to "resource"
|
|
31
|
+
- [x] 3.3 Rename `domain` references in `discovery/filtering.star` to `stack`
|
|
32
|
+
- [x] 3.4 Update variable names in `discovery/filtering.star` from `svc` to `resource`
|
|
33
|
+
- [x] 3.5 Rename `domain` references in `discovery/indexing.star` to `stack`
|
|
34
|
+
- [x] 3.6 Update docstrings in `discovery/indexing.star` from "service" to "resource"
|
|
35
|
+
- [x] 3.7 Rename `domain` references in `discovery/deterministic.star` to `stack`
|
|
36
|
+
- [x] 3.8 Update variable names in `discovery/deterministic.star` from `svc` to `resource`
|
|
37
|
+
- [x] 3.9 Rename `domain` references in `discovery/resource_snapshot.star` to `stack`
|
|
38
|
+
- [x] 3.10 Update docstrings in `discovery/resource_snapshot.star` from "service" to "resource"
|
|
39
|
+
|
|
40
|
+
## 4. Engine Topologies Tilt - Discovery (Deprecated System)
|
|
41
|
+
|
|
42
|
+
- [x] 4.1 Rename `domain` references in `engine/topologies/tilt/discovery/registry.star` to `stack`
|
|
43
|
+
- [x] 4.2 Update docstrings in `engine/topologies/tilt/discovery/registry.star` from "service" to "resource"
|
|
44
|
+
- [x] 4.3 Rename `domain` references in `engine/topologies/tilt/discovery/discovery_orchestrator.star` to `stack`
|
|
45
|
+
- [x] 4.4 Update docstrings in `engine/topologies/tilt/discovery/discovery_orchestrator.star` from "service" to "resource"
|
|
46
|
+
- [x] 4.5 Rename `domain` references in `engine/topologies/tilt/discovery/incremental_discovery.star` to `stack`
|
|
47
|
+
- [x] 4.6 Update docstrings in `engine/topologies/tilt/discovery/incremental_discovery.star` from "service" to "resource"
|
|
48
|
+
- [x] 4.7 Rename `domain` references in `engine/topologies/tilt/discovery/manifest/loading.star` to `stack`
|
|
49
|
+
- [x] 4.8 Update docstrings in `engine/topologies/tilt/discovery/manifest/loading.star` from "service" to "resource"
|
|
50
|
+
- [x] 4.9 Rename `domain` references in `engine/topologies/tilt/discovery/manifest/normalize.star` to `stack`
|
|
51
|
+
- [x] 4.10 Update docstrings in `engine/topologies/tilt/discovery/manifest/normalize.star` from "service" to "resource"
|
|
52
|
+
|
|
53
|
+
## 5. Engine Topologies Tilt - Manifest Files
|
|
54
|
+
|
|
55
|
+
- [x] 5.1 Rename `domain` references in `engine/topologies/tilt/discovery/manifest/validation.star` to `stack`
|
|
56
|
+
- [x] 5.2 Update docstrings in `engine/topologies/tilt/discovery/manifest/validation.star` from "service" to "resource"
|
|
57
|
+
- [x] 5.3 Rename `domain` references in `engine/topologies/tilt/manifest/parser.star` to `stack`
|
|
58
|
+
- [x] 5.4 Update docstrings in `engine/topologies/tilt/manifest/parser.star` from "service" to "resource"
|
|
59
|
+
- [x] 5.5 Rename `domain` references in `engine/topologies/tilt/manifest/loader.star` to `stack`
|
|
60
|
+
- [x] 5.6 Update docstrings in `engine/topologies/tilt/manifest/loader.star` from "service" to "resource"
|
|
61
|
+
- [x] 5.7 Rename `domain` references in `engine/topologies/tilt/manifest/mapper.star` to `stack`
|
|
62
|
+
- [x] 5.8 Update docstrings in `engine/topologies/tilt/manifest/mapper.star` from "service" to "resource"
|
|
63
|
+
- [x] 5.9 Rename `domain` references in `engine/topologies/tilt/manifest/integration.star` to `stack`
|
|
64
|
+
- [x] 5.10 Update docstrings in `engine/topologies/tilt/manifest/integration.star` from "service" to "resource"
|
|
65
|
+
|
|
66
|
+
## 6. Engine Topologies Tilt - Generators Vite
|
|
67
|
+
|
|
68
|
+
- [x] 6.1 Rename `domain` references in `engine/topologies/tilt/generators/vite/backend.star` to `stack`
|
|
69
|
+
- [x] 6.2 Update docstrings in `engine/topologies/tilt/generators/vite/backend.star` from "service" to "resource"
|
|
70
|
+
- [x] 6.3 Rename `domain` references in `engine/topologies/tilt/generators/vite/frontend.star` to `stack`
|
|
71
|
+
- [x] 6.4 Update docstrings in `engine/topologies/tilt/generators/vite/frontend.star` from "service" to "resource"
|
|
72
|
+
- [x] 6.5 Rename `domain` references in `engine/topologies/tilt/generators/vite/library.star` to `stack`
|
|
73
|
+
- [x] 6.6 Update docstrings in `engine/topologies/tilt/generators/vite/library.star` from "service" to "resource"
|
|
74
|
+
- [x] 6.7 Rename `domain` references in `engine/topologies/tilt/generators/vite/sdk.star` to `stack`
|
|
75
|
+
- [x] 6.8 Update docstrings in `engine/topologies/tilt/generators/vite/sdk.star` from "service" to "resource"
|
|
76
|
+
- [x] 6.9 Rename `domain` references in `engine/topologies/tilt/generators/vite/generators.star` to `stack`
|
|
77
|
+
- [x] 6.10 Update docstrings in `engine/topologies/tilt/generators/vite/generators.star` from "service" to "resource"
|
|
78
|
+
|
|
79
|
+
## 7. Engine Topologies Tilt - Generators Docker
|
|
80
|
+
|
|
81
|
+
- [x] 7.1 Rename `domain` references in `engine/topologies/tilt/generators/docker/frontend.star` to `stack` (file doesn't exist - moved to platform/docker/)
|
|
82
|
+
- [x] 7.2 Update docstrings in `engine/topologies/tilt/generators/docker/frontend.star` from "service" to "resource" (file doesn't exist)
|
|
83
|
+
- [x] 7.3 Rename `domain` references in `engine/topologies/tilt/generators/docker/backend.star` to `stack` (file doesn't exist - moved to platform/docker/)
|
|
84
|
+
- [x] 7.4 Update docstrings in `engine/topologies/tilt/generators/docker/backend.star` from "service" to "resource" (file doesn't exist)
|
|
85
|
+
- [x] 7.5 Rename `domain` references in `engine/topologies/tilt/generators/docker/compose.star` to `stack` (file doesn't exist - moved to platform/docker/compose/)
|
|
86
|
+
- [x] 7.6 Update docstrings in `engine/topologies/tilt/generators/docker/compose.star` from "service" to "resource" (file doesn't exist)
|
|
87
|
+
- [x] 7.7 Rename `domain` references in `engine/topologies/tilt/generators/validators.star` to `stack`
|
|
88
|
+
- [x] 7.8 Update docstrings in `engine/topologies/tilt/generators/validators.star` from "service" to "resource"
|
|
89
|
+
- [x] 7.9 Rename `domain` references in `engine/topologies/tilt/generators/database_provisioner.star` to `stack`
|
|
90
|
+
- [x] 7.10 Update docstrings in `engine/topologies/tilt/generators/database_provisioner.star` from "service" to "resource"
|
|
91
|
+
|
|
92
|
+
## 8. Engine Topologies Tilt - More Generators
|
|
93
|
+
|
|
94
|
+
- [x] 8.1 Rename `domain` references in `engine/topologies/tilt/generators/nginx_conf.star` to `stack`
|
|
95
|
+
- [x] 8.2 Update docstrings in `engine/topologies/tilt/generators/nginx_conf.star` from "service" to "resource"
|
|
96
|
+
- [x] 8.3 Rename `domain` references in `engine/topologies/tilt/generators/npmrc.star` to `stack`
|
|
97
|
+
- [x] 8.4 Update docstrings in `engine/topologies/tilt/generators/npmrc.star` from "service" to "resource"
|
|
98
|
+
- [x] 8.5 Rename `domain` references in `engine/topologies/tilt/generators/env.star` to `stack` (file doesn't exist)
|
|
99
|
+
- [x] 8.6 Update docstrings in `engine/topologies/tilt/generators/env.star` from "service" to "resource" (file doesn't exist)
|
|
100
|
+
- [x] 8.7 Rename `domain` references in `engine/topologies/tilt/generators/tsconfig.star` to `stack`
|
|
101
|
+
- [x] 8.8 Update docstrings in `engine/topologies/tilt/generators/tsconfig.star` from "service" to "resource"
|
|
102
|
+
- [x] 8.9 Rename `domain` references in `engine/topologies/tilt/generators/dependency_manifest.star` to `stack`
|
|
103
|
+
- [x] 8.10 Update docstrings in `engine/topologies/tilt/generators/dependency_manifest.star` from "service" to "resource"
|
|
104
|
+
|
|
105
|
+
## 9. Engine Topologies Tilt - Infisical Generators
|
|
106
|
+
|
|
107
|
+
- [x] 9.1 Rename `domain` references in `engine/topologies/tilt/generators/infisical/path_manager.star` to `stack`
|
|
108
|
+
- [x] 9.2 Update docstrings in `engine/topologies/tilt/generators/infisical/path_manager.star` from "service" to "resource"
|
|
109
|
+
- [x] 9.3 Rename `domain` references in `engine/topologies/tilt/generators/infisical/sync.star` to `stack` (file doesn't exist)
|
|
110
|
+
- [x] 9.4 Update docstrings in `engine/topologies/tilt/generators/infisical/sync.star` from "service" to "resource" (file doesn't exist)
|
|
111
|
+
- [x] 9.5 Rename `domain` references in `engine/topologies/tilt/generators/infisical/star_to_json.star` to `stack` (file doesn't exist)
|
|
112
|
+
- [x] 9.6 Update docstrings in `engine/topologies/tilt/generators/infisical/star_to_json.star` from "service" to "resource" (file doesn't exist)
|
|
113
|
+
- [x] 9.7 Rename `domain` references in `engine/topologies/tilt/generators/agents_md.star` to `stack`
|
|
114
|
+
- [x] 9.8 Update docstrings in `engine/topologies/tilt/generators/agents_md.star` from "service" to "resource"
|
|
115
|
+
- [x] 9.9 Rename `domain` references in `engine/topologies/tilt/generators/c4_diagram.star` to `stack`
|
|
116
|
+
- [x] 9.10 Update docstrings in `engine/topologies/tilt/generators/c4_diagram.star` from "service" to "resource"
|
|
117
|
+
|
|
118
|
+
## 10. Engine Topologies Tilt - Resource Orchestration
|
|
119
|
+
|
|
120
|
+
- [x] 10.1 Rename `domain` references in `engine/topologies/tilt/resources/orchestrator/apply_compose_resource_registration.star` to `stack`
|
|
121
|
+
- [x] 10.2 Update variable names in `engine/topologies/tilt/resources/orchestrator/apply_compose_resource_registration.star` from `svc` to `resource`
|
|
122
|
+
- [x] 10.3 Rename `domain` references in `engine/topologies/tilt/resources/orchestrator/apply_manifest_orchestration.star` to `stack`
|
|
123
|
+
- [x] 10.4 Update variable names in `engine/topologies/tilt/resources/orchestrator/apply_manifest_orchestration.star` from `svc` to `resource`
|
|
124
|
+
- [x] 10.5 Rename `domain` references in `engine/topologies/tilt/resources/orchestrator/apply_migrator_orchestration.star` to `stack`
|
|
125
|
+
- [x] 10.6 Update variable names in `engine/topologies/tilt/resources/orchestrator/apply_migrator_orchestration.star` from `svc` to `resource`
|
|
126
|
+
- [x] 10.7 Rename `domain` references in `engine/topologies/tilt/resources/orchestrator/generators/frontend.star` to `stack`
|
|
127
|
+
- [x] 10.8 Update variable names in `engine/topologies/tilt/resources/orchestrator/generators/frontend.star` from `svc` to `resource`
|
|
128
|
+
- [x] 10.9 Rename `domain` references in `engine/topologies/tilt/resources/orchestrator/generators/env.star` to `stack`
|
|
129
|
+
- [x] 10.10 Update variable names in `engine/topologies/tilt/resources/orchestrator/generators/env.star` from `svc` to `resource`
|
|
130
|
+
|
|
131
|
+
## 11. Engine Topologies Tilt - Resource Definition Files
|
|
132
|
+
|
|
133
|
+
- [x] 11.1 Rename `domain` references in `engine/topologies/tilt/resources/libs_resource_definition.star` to `stack`
|
|
134
|
+
- [x] 11.2 Update variable names in `engine/topologies/tilt/resources/libs_resource_definition.star` from `svc` to `resource`
|
|
135
|
+
- [x] 11.3 Rename `domain` references in `engine/topologies/tilt/resources/libs_tsconfig.star` to `stack`
|
|
136
|
+
- [x] 11.4 Update variable names in `engine/topologies/tilt/resources/libs_tsconfig.star` from `svc` to `resource`
|
|
137
|
+
- [x] 11.5 Rename `domain` references in `engine/topologies/tilt/resources/libs_setup.star` to `stack`
|
|
138
|
+
- [x] 11.6 Update variable names in `engine/topologies/tilt/resources/libs_setup.star` from `svc` to `resource`
|
|
139
|
+
- [x] 11.7 Rename `domain` references in `engine/topologies/tilt/resources/infra-loader.star` to `stack`
|
|
140
|
+
- [x] 11.8 Update variable names in `engine/topologies/tilt/resources/infra-loader.star` from `svc` to `resource`
|
|
141
|
+
- [x] 11.9 Rename `domain` references in `engine/topologies/tilt/resources/frontend_resource.star` to `stack` (file doesn't exist)
|
|
142
|
+
- [x] 11.10 Update variable names in `engine/topologies/tilt/resources/frontend_resource.star` from `svc` to `resource` (file doesn't exist)
|
|
143
|
+
|
|
144
|
+
## 12. Engine Topologies Tilt - More Resource Files
|
|
145
|
+
|
|
146
|
+
- [x] 12.1 Rename `domain` references in `engine/topologies/tilt/resources/backend_resource.star` to `stack` (file doesn't exist)
|
|
147
|
+
- [x] 12.2 Update variable names in `engine/topologies/tilt/resources/backend_resource.star` from `svc` to `resource` (file doesn't exist)
|
|
148
|
+
- [x] 12.3 Rename `domain` references in `engine/topologies/tilt/resources/database_resource.star` to `stack` (file doesn't exist)
|
|
149
|
+
- [x] 12.4 Update variable names in `engine/topologies/tilt/resources/database_resource.star` from `svc` to `resource` (file doesn't exist)
|
|
150
|
+
- [x] 12.5 Rename `domain` references in `engine/topologies/tilt/resources/infra_resource.star` to `stack` (file doesn't exist)
|
|
151
|
+
- [x] 12.6 Update variable names in `engine/topologies/tilt/resources/infra_resource.star` from `svc` to `resource` (file doesn't exist)
|
|
152
|
+
- [x] 12.7 Rename `domain` references in `engine/topologies/tilt/resources/proxy_resource.star` to `stack` (file doesn't exist)
|
|
153
|
+
- [x] 12.8 Update variable names in `engine/topologies/tilt/resources/proxy_resource.star` from `svc` to `resource` (file doesn't exist)
|
|
154
|
+
- [x] 12.9 Rename `domain` references in `engine/topologies/tilt/resources/migration_resource.star` to `stack` (file doesn't exist)
|
|
155
|
+
- [x] 12.10 Update variable names in `engine/topologies/tilt/resources/migration_resource.star` from `svc` to `resource` (file doesn't exist)
|
|
156
|
+
|
|
157
|
+
## 13. Engine Topologies Platform - Docker and Compose
|
|
158
|
+
|
|
159
|
+
- [x] 13.1 Rename `domain` references in `engine/topologies/platform/docker/compose/compose.star` to `stack`
|
|
160
|
+
- [x] 13.2 Update docstrings in `engine/topologies/platform/docker/compose/compose.star` from "service" to "resource"
|
|
161
|
+
- [x] 13.3 Rename `domain` references in `engine/topologies/platform/docker/layers.star` to `stack` (file doesn't exist)
|
|
162
|
+
- [x] 13.4 Update docstrings in `engine/topologies/platform/docker/layers.star` from "service" to "resource" (file doesn't exist)
|
|
163
|
+
- [x] 13.5 Rename `domain` references in `engine/topologies/platform/docker/networking/traefik.star` to `stack`
|
|
164
|
+
- [x] 13.6 Update docstrings in `engine/topologies/platform/docker/networking/traefik.star` from "service" to "resource"
|
|
165
|
+
- [x] 13.7 Rename `domain` references in `engine/topologies/platform/docker/networking/traefik_helpers.star` to `stack`
|
|
166
|
+
- [x] 13.8 Update docstrings in `engine/topologies/platform/docker/networking/traefik_helpers.star` from "service" to "resource"
|
|
167
|
+
- [x] 13.9 Rename `domain` references in `engine/topologies/platform/docker/constants.star` to `stack`
|
|
168
|
+
- [x] 13.10 Update docstrings in `engine/topologies/platform/docker/constants.star` from "service" to "resource"
|
|
169
|
+
|
|
170
|
+
## 14. Engine Topologies Platform - Security and Proxy
|
|
171
|
+
|
|
172
|
+
- [x] 14.1 Rename `domain` references in `engine/topologies/platform/security/secrets.star` to `stack`
|
|
173
|
+
- [x] 14.2 Update docstrings in `engine/topologies/platform/security/secrets.star` from "service" to "resource"
|
|
174
|
+
- [x] 14.3 Rename `domain` references in `engine/topologies/platform/security/infisical.star` to `stack` (file doesn't exist)
|
|
175
|
+
- [x] 14.4 Update docstrings in `engine/topologies/platform/security/infisical.star` from "service" to "resource" (file doesn't exist)
|
|
176
|
+
- [x] 14.5 Rename `domain` references in `engine/topologies/platform/proxy/caddy.star` to `stack` (file doesn't exist)
|
|
177
|
+
- [x] 14.6 Update docstrings in `engine/topologies/platform/proxy/caddy.star` from "service" to "resource" (file doesn't exist)
|
|
178
|
+
- [x] 14.7 Rename `domain` references in `engine/topologies/platform/proxy/nginx.star` to `stack` (file doesn't exist)
|
|
179
|
+
- [x] 14.8 Update docstrings in `engine/topologies/platform/proxy/nginx.star` from "service" to "resource" (file doesn't exist)
|
|
180
|
+
- [x] 14.9 Rename `domain` references in `engine/topologies/platform/state/persistence.star` to `stack` (file doesn't exist)
|
|
181
|
+
- [x] 14.10 Update docstrings in `engine/topologies/platform/state/persistence.star` from "service" to "resource" (file doesn't exist)
|
|
182
|
+
|
|
183
|
+
## 15. Autogenerated Files and Final Verification
|
|
184
|
+
|
|
185
|
+
- [x] 15.1 Update autogenerated file naming in `discovery/registry.star` from `domains` to `stacks`
|
|
186
|
+
- [x] 15.2 Update autogenerated file naming in `engine/topologies/tilt/discovery/registry.star` from `domains` to `stacks`
|
|
187
|
+
- [x] 15.3 Update all `load()` statements that reference domain-named files to stack-named files
|
|
188
|
+
- [x] 15.4 Run test suite to verify all terminology changes work correctly
|
|
189
|
+
- [x] 15.5 Grep for remaining `manifest.get('domain')` patterns - should be 0
|
|
190
|
+
- [x] 15.6 Grep for remaining `domain_configs` references - should be 0
|
|
191
|
+
- [x] 15.7 Grep for remaining `svc` variables that should be `resource` - verified minimal
|
|
192
|
+
- [x] 15.8 Grep for remaining `service` docstrings that should say `resource` - verified 0
|
|
193
|
+
- [x] 15.9 Verify `app_resources` cache key is intentionally kept (per design decision)
|
|
194
|
+
- [x] 15.10 Final review: All domain→stack and service→resource migrations complete
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
## Context
|
|
2
|
+
|
|
3
|
+
The codebase currently has 174 .star files with 774 function definitions across multiple directories. Through analysis, we've identified several parameter inconsistency issues:
|
|
4
|
+
|
|
5
|
+
1. **Write Function Parameter Naming**: Functions use `write_fn`, `write_file_fn`, and `write_file_if_changed_fn` interchangeably for the same concept
|
|
6
|
+
2. **Parameter Ordering**: Some functions have `write_fn` at the end, others have it earlier in the parameter list
|
|
7
|
+
3. **Missing Documentation**: Most functions lack parameter documentation explaining expected types and purposes
|
|
8
|
+
4. **Naming Divergence**: The primary `/discovery/` system and deprecated `/engine/topologies/tilt/discovery/` system use different naming conventions (e.g., `register_new_service` vs `register_new_resource`)
|
|
9
|
+
5. **Optional Parameter Patterns**: Inconsistent use of `write_fn=None` pattern for dependency injection
|
|
10
|
+
|
|
11
|
+
These inconsistencies make the codebase harder to navigate, maintain, and extend. This refactoring aims to establish clear conventions without changing any functional behavior.
|
|
12
|
+
|
|
13
|
+
## Goals / Non-Goals
|
|
14
|
+
|
|
15
|
+
**Goals:**
|
|
16
|
+
- Standardize all write function parameter names to `write_fn`
|
|
17
|
+
- Ensure optional parameters consistently appear at the end of parameter lists
|
|
18
|
+
- Add parameter documentation (docstring-style comments) to all functions
|
|
19
|
+
- Align function names between duplicate discovery systems where they diverge
|
|
20
|
+
- Maintain 100% backward compatibility in behavior (no functional changes)
|
|
21
|
+
- Enable parallel execution of all 100 subtasks
|
|
22
|
+
|
|
23
|
+
**Non-Goals:**
|
|
24
|
+
- Changing function logic or behavior
|
|
25
|
+
- Adding new features or capabilities
|
|
26
|
+
- Removing deprecated files (they are kept for backward compatibility)
|
|
27
|
+
- Renaming functions unless they have divergent names between duplicate systems
|
|
28
|
+
- Adding runtime type checking (only documentation)
|
|
29
|
+
|
|
30
|
+
## Decisions
|
|
31
|
+
|
|
32
|
+
### Decision 1: Standardize on `write_fn` Parameter Name
|
|
33
|
+
**Rationale**: The name `write_fn` is concise, clear, and already used in the majority of functions. It's shorter than `write_file_if_changed_fn` without losing clarity.
|
|
34
|
+
|
|
35
|
+
**Alternatives considered**:
|
|
36
|
+
- `write_file_fn` - More explicit but redundant since context makes it clear
|
|
37
|
+
- `write_file_if_changed_fn` - Too verbose for frequent use
|
|
38
|
+
- Keep all variations - Rejected as it perpetuates inconsistency
|
|
39
|
+
|
|
40
|
+
### Decision 2: Optional Parameters at End of Signature
|
|
41
|
+
**Rationale**: Following Python/Starlark conventions, parameters with default values should come after required parameters. This makes function calls more readable and prevents positional argument errors.
|
|
42
|
+
|
|
43
|
+
**Pattern to enforce**:
|
|
44
|
+
```starlark
|
|
45
|
+
def function_name(required1, required2, optional1=None, optional2=True):
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Decision 3: Docstring Format for Starlark
|
|
49
|
+
**Rationale**: Starlark doesn't have a formal docstring standard like Python. We'll use a consistent comment-based format:
|
|
50
|
+
|
|
51
|
+
```starlark
|
|
52
|
+
def function_name(param1, param2, write_fn=None):
|
|
53
|
+
"""
|
|
54
|
+
Brief description of function.
|
|
55
|
+
|
|
56
|
+
Args:
|
|
57
|
+
param1: Description of param1 (type)
|
|
58
|
+
param2: Description of param2 (type)
|
|
59
|
+
write_fn: Optional write function for dependency injection (callable)
|
|
60
|
+
|
|
61
|
+
Returns:
|
|
62
|
+
Description of return value (type)
|
|
63
|
+
"""
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Decision 4: Parallel Task Execution
|
|
67
|
+
**Rationale**: Since these are independent refactoring tasks across different files, they can be executed in parallel. Each task focuses on a specific file or small group of related files.
|
|
68
|
+
|
|
69
|
+
**Task organization**:
|
|
70
|
+
- Group 1-40: `/discovery/` directory (primary system)
|
|
71
|
+
- Group 41-80: `/engine/topologies/tilt/` directory (deprecated system)
|
|
72
|
+
- Group 81-95: `/engine/topologies/platform/` directory
|
|
73
|
+
- Group 96-100: `/specs/` directory and cross-cutting concerns
|
|
74
|
+
|
|
75
|
+
## Risks / Trade-offs
|
|
76
|
+
|
|
77
|
+
**Risk**: Breaking changes for external callers using keyword arguments
|
|
78
|
+
- **Mitigation**: This is a **BREAKING** change as noted in proposal. External code will need to update parameter names. We'll document all changed parameter names in the tasks.
|
|
79
|
+
|
|
80
|
+
**Risk**: Inadvertent functional changes during refactoring
|
|
81
|
+
- **Mitigation**: Each task includes verification step to confirm no behavior changes. All existing tests must pass.
|
|
82
|
+
|
|
83
|
+
**Risk**: Merge conflicts with ongoing development
|
|
84
|
+
- **Mitigation**: Short timeline for completion. Tasks are small and focused, minimizing conflict window.
|
|
85
|
+
|
|
86
|
+
**Risk**: Deprecated system modifications may seem wasteful
|
|
87
|
+
- **Mitigation**: Keeping deprecated system consistent reduces cognitive load when comparing or potentially migrating between systems.
|
|
88
|
+
|
|
89
|
+
## Migration Plan
|
|
90
|
+
|
|
91
|
+
1. **Phase 1: Analysis** (completed)
|
|
92
|
+
- Catalog all 174 .star files and 774 functions
|
|
93
|
+
- Identify specific parameter inconsistencies
|
|
94
|
+
|
|
95
|
+
2. **Phase 2: Implementation** (current)
|
|
96
|
+
- Execute 100 parallel subtasks to fix parameter issues
|
|
97
|
+
- Each task updates specific files with standardized patterns
|
|
98
|
+
|
|
99
|
+
3. **Phase 3: Verification**
|
|
100
|
+
- Run full test suite
|
|
101
|
+
- Verify no functional changes
|
|
102
|
+
- Check for any missed inconsistencies
|
|
103
|
+
|
|
104
|
+
4. **Phase 4: Documentation**
|
|
105
|
+
- Update any developer documentation with new conventions
|
|
106
|
+
- Add parameter naming conventions to coding standards
|
|
107
|
+
|
|
108
|
+
## Open Questions
|
|
109
|
+
|
|
110
|
+
- Should we add a linting rule to prevent future parameter naming inconsistencies?
|
|
111
|
+
- Should we create a style guide document for Starlark conventions?
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
## Why
|
|
2
|
+
|
|
3
|
+
The codebase contains 174 .star files with 774 function definitions that have inconsistent parameter naming, ordering, and documentation. This inconsistency creates cognitive overhead for developers, makes the code harder to maintain, and increases the risk of bugs when functions are called with incorrect arguments. Standardizing function parameters across all star files will improve code readability, reduce maintenance burden, and establish clear conventions for future development.
|
|
4
|
+
|
|
5
|
+
## What Changes
|
|
6
|
+
|
|
7
|
+
- **Standardize write function parameter naming**: Unify all variations (`write_fn`, `write_file_fn`, `write_file_if_changed_fn`) to a consistent `write_fn` parameter name across all generator functions
|
|
8
|
+
- **Fix parameter ordering**: Ensure optional parameters with defaults (especially `write_fn=None`) consistently appear at the end of parameter lists
|
|
9
|
+
- **Add missing parameter documentation**: Add docstring-style comments for all function parameters explaining their purpose and types
|
|
10
|
+
- **Normalize function naming between duplicate systems**: Align function names between `/discovery/` (primary) and `/engine/topologies/tilt/discovery/` (deprecated) where they diverge (e.g., `register_new_service` vs `register_new_resource`)
|
|
11
|
+
- **Standardize optional parameter patterns**: Ensure all file-writing functions use consistent `write_fn=None` pattern for dependency injection
|
|
12
|
+
- **Add type hints where missing**: Document expected parameter types (string, dict, bool, function, etc.) in function signatures
|
|
13
|
+
|
|
14
|
+
## Capabilities
|
|
15
|
+
|
|
16
|
+
### New Capabilities
|
|
17
|
+
- `parameter-naming-consistency`: Standardize all write function parameter names to `write_fn`
|
|
18
|
+
- `parameter-ordering-standard`: Ensure consistent parameter ordering with optional params last
|
|
19
|
+
- `parameter-documentation`: Add docstring documentation for all function parameters
|
|
20
|
+
- `function-naming-alignment`: Align function names between duplicate discovery systems
|
|
21
|
+
- `optional-parameter-patterns`: Standardize `write_fn=None` pattern across all generators
|
|
22
|
+
|
|
23
|
+
### Modified Capabilities
|
|
24
|
+
<!-- No existing spec requirements are changing - this is purely refactoring for consistency -->
|
|
25
|
+
|
|
26
|
+
## Impact
|
|
27
|
+
|
|
28
|
+
- **Affected Files**: 174 .star files across `/discovery/`, `/engine/topologies/tilt/`, `/engine/topologies/platform/`, and `/specs/` directories
|
|
29
|
+
- **Function Count**: 774 function definitions will be reviewed and standardized
|
|
30
|
+
- **Dependencies**: No external dependencies affected - this is internal refactoring
|
|
31
|
+
- **Breaking Changes**: **BREAKING** - Any external code calling these functions with keyword arguments will need to update parameter names
|
|
32
|
+
- **Risk Level**: Medium - extensive changes across many files, but purely refactoring with no behavioral changes
|
|
33
|
+
- **Testing Required**: All existing tests must pass; no functional changes expected
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
## ADDED Requirements
|
|
2
|
+
|
|
3
|
+
### Requirement: Function naming alignment between duplicate systems
|
|
4
|
+
Functions in the primary `/discovery/` system and deprecated `/engine/topologies/tilt/discovery/` system SHALL use consistent naming where they serve identical purposes.
|
|
5
|
+
|
|
6
|
+
#### Scenario: Function names match between systems
|
|
7
|
+
- **WHEN** two functions in duplicate systems perform the same operation
|
|
8
|
+
- **THEN** they SHALL have identical names
|
|
9
|
+
|
|
10
|
+
#### Scenario: Divergent names are aligned
|
|
11
|
+
- **WHEN** a function in the primary system is named `register_new_service` and the equivalent in the deprecated system is named `register_new_resource`
|
|
12
|
+
- **THEN** the deprecated system function SHALL be renamed to match the primary system naming convention
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
## ADDED Requirements
|
|
2
|
+
|
|
3
|
+
### Requirement: Consistent optional write function parameter pattern
|
|
4
|
+
All file-writing functions SHALL use the `write_fn=None` pattern for optional write function injection.
|
|
5
|
+
|
|
6
|
+
#### Scenario: Write function parameter has None default
|
|
7
|
+
- **WHEN** a function accepts an optional write function parameter
|
|
8
|
+
- **THEN** the parameter SHALL have a default value of `None`
|
|
9
|
+
|
|
10
|
+
#### Scenario: Write function parameter is optional
|
|
11
|
+
- **WHEN** a generator function does not require an external write function
|
|
12
|
+
- **THEN** the `write_fn` parameter SHALL be optional with `None` default, allowing the function to use an internal default implementation
|
|
13
|
+
|
|
14
|
+
#### Scenario: Write function conditional usage
|
|
15
|
+
- **WHEN** a function receives `write_fn=None`
|
|
16
|
+
- **THEN** the function SHALL use its internal default write implementation
|
|
17
|
+
- **AND** **WHEN** a callable is passed to `write_fn`
|
|
18
|
+
- **THEN** the function SHALL use the provided callable instead
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
## ADDED Requirements
|
|
2
|
+
|
|
3
|
+
### Requirement: Function parameter documentation
|
|
4
|
+
All function parameters SHALL be documented with their purpose and expected type.
|
|
5
|
+
|
|
6
|
+
#### Scenario: Parameter has documentation comment
|
|
7
|
+
- **WHEN** a function defines parameters
|
|
8
|
+
- **THEN** each parameter SHALL have a docstring-style comment describing its purpose and type
|
|
9
|
+
|
|
10
|
+
#### Scenario: Parameter documentation includes type information
|
|
11
|
+
- **WHEN** parameter documentation is added
|
|
12
|
+
- **THEN** the documentation SHALL indicate the expected type (string, dict, bool, callable, etc.)
|
|
13
|
+
|
|
14
|
+
#### Scenario: Optional parameter documentation notes default
|
|
15
|
+
- **WHEN** a parameter has a default value
|
|
16
|
+
- **THEN** the documentation SHALL indicate the default value and that the parameter is optional
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
## ADDED Requirements
|
|
2
|
+
|
|
3
|
+
### Requirement: Write function parameter naming consistency
|
|
4
|
+
All functions that accept a file-writing callback parameter SHALL use the parameter name `write_fn` exclusively.
|
|
5
|
+
|
|
6
|
+
#### Scenario: Function uses write_fn parameter
|
|
7
|
+
- **WHEN** a generator function accepts a file-writing callback
|
|
8
|
+
- **THEN** the parameter SHALL be named `write_fn` and NOT `write_file_fn`, `write_file_if_changed_fn`, or other variations
|
|
9
|
+
|
|
10
|
+
#### Scenario: Inconsistent parameter names are corrected
|
|
11
|
+
- **WHEN** a function uses `write_file_fn` or `write_file_if_changed_fn` as parameter names
|
|
12
|
+
- **THEN** the parameter name SHALL be changed to `write_fn`
|