codd-dev 0.2.0a2__tar.gz → 0.2.0a4__tar.gz
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.
- {codd_dev-0.2.0a2 → codd_dev-0.2.0a4}/PKG-INFO +1 -1
- {codd_dev-0.2.0a2 → codd_dev-0.2.0a4}/codd/cli.py +14 -1
- {codd_dev-0.2.0a2 → codd_dev-0.2.0a4}/codd/generator.py +5 -1
- {codd_dev-0.2.0a2 → codd_dev-0.2.0a4}/pyproject.toml +1 -1
- {codd_dev-0.2.0a2 → codd_dev-0.2.0a4}/.gitignore +0 -0
- {codd_dev-0.2.0a2 → codd_dev-0.2.0a4}/LICENSE +0 -0
- {codd_dev-0.2.0a2 → codd_dev-0.2.0a4}/README.md +0 -0
- {codd_dev-0.2.0a2 → codd_dev-0.2.0a4}/codd/__init__.py +0 -0
- {codd_dev-0.2.0a2 → codd_dev-0.2.0a4}/codd/config.py +0 -0
- {codd_dev-0.2.0a2 → codd_dev-0.2.0a4}/codd/defaults.yaml +0 -0
- {codd_dev-0.2.0a2 → codd_dev-0.2.0a4}/codd/graph.py +0 -0
- {codd_dev-0.2.0a2 → codd_dev-0.2.0a4}/codd/hooks.py +0 -0
- {codd_dev-0.2.0a2 → codd_dev-0.2.0a4}/codd/implementer.py +0 -0
- {codd_dev-0.2.0a2 → codd_dev-0.2.0a4}/codd/planner.py +0 -0
- {codd_dev-0.2.0a2 → codd_dev-0.2.0a4}/codd/propagate.py +0 -0
- {codd_dev-0.2.0a2 → codd_dev-0.2.0a4}/codd/scanner.py +0 -0
- {codd_dev-0.2.0a2 → codd_dev-0.2.0a4}/codd/templates/codd.yaml.tmpl +0 -0
- {codd_dev-0.2.0a2 → codd_dev-0.2.0a4}/codd/templates/conventions.yaml.tmpl +0 -0
- {codd_dev-0.2.0a2 → codd_dev-0.2.0a4}/codd/templates/data_dependencies.yaml.tmpl +0 -0
- {codd_dev-0.2.0a2 → codd_dev-0.2.0a4}/codd/templates/doc_links.yaml.tmpl +0 -0
- {codd_dev-0.2.0a2 → codd_dev-0.2.0a4}/codd/templates/gitignore.tmpl +0 -0
- {codd_dev-0.2.0a2 → codd_dev-0.2.0a4}/codd/templates/overrides.yaml.tmpl +0 -0
- {codd_dev-0.2.0a2 → codd_dev-0.2.0a4}/codd/validator.py +0 -0
- {codd_dev-0.2.0a2 → codd_dev-0.2.0a4}/codd/verifier.py +0 -0
- {codd_dev-0.2.0a2 → codd_dev-0.2.0a4}/hooks/pre-commit +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: codd-dev
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.0a4
|
|
4
4
|
Summary: CoDD: Coherence-Driven Development — cross-artifact change impact analysis
|
|
5
5
|
Project-URL: Homepage, https://github.com/yohey-w/codd-dev
|
|
6
6
|
Project-URL: Repository, https://github.com/yohey-w/codd-dev
|
|
@@ -94,7 +94,7 @@ def impact(diff: str, path: str, output: str):
|
|
|
94
94
|
)
|
|
95
95
|
def generate(wave: int, path: str, force: bool, ai_cmd: str | None):
|
|
96
96
|
"""Generate CoDD documents for a specific wave."""
|
|
97
|
-
from codd.generator import generate_wave
|
|
97
|
+
from codd.generator import generate_wave, _load_project_config
|
|
98
98
|
|
|
99
99
|
project_root = Path(path).resolve()
|
|
100
100
|
codd_dir = project_root / "codd"
|
|
@@ -103,6 +103,19 @@ def generate(wave: int, path: str, force: bool, ai_cmd: str | None):
|
|
|
103
103
|
click.echo("Error: codd/ not found. Run 'codd init' first.")
|
|
104
104
|
raise SystemExit(1)
|
|
105
105
|
|
|
106
|
+
# Auto-generate wave_config if missing
|
|
107
|
+
config = _load_project_config(project_root)
|
|
108
|
+
if not config.get("wave_config"):
|
|
109
|
+
click.echo("wave_config not found. Auto-generating from requirements...")
|
|
110
|
+
from codd.planner import plan_init
|
|
111
|
+
|
|
112
|
+
try:
|
|
113
|
+
result = plan_init(project_root, ai_command=ai_cmd)
|
|
114
|
+
click.echo(f"wave_config generated from {len(result.requirement_paths)} requirement(s)")
|
|
115
|
+
except (FileNotFoundError, ValueError) as exc:
|
|
116
|
+
click.echo(f"Error auto-generating wave_config: {exc}")
|
|
117
|
+
raise SystemExit(1)
|
|
118
|
+
|
|
106
119
|
try:
|
|
107
120
|
results = generate_wave(project_root, wave, force=force, ai_command=ai_cmd)
|
|
108
121
|
except (FileNotFoundError, ValueError) as exc:
|
|
@@ -156,7 +156,11 @@ def _load_project_config(project_root: Path) -> dict[str, Any]:
|
|
|
156
156
|
def _load_wave_artifacts(config: dict[str, Any]) -> list[WaveArtifact]:
|
|
157
157
|
wave_config = config.get("wave_config")
|
|
158
158
|
if not isinstance(wave_config, dict) or not wave_config:
|
|
159
|
-
raise ValueError(
|
|
159
|
+
raise ValueError(
|
|
160
|
+
"codd.yaml is missing wave_config. "
|
|
161
|
+
"Run 'codd plan --init' to generate it from your requirements, "
|
|
162
|
+
"or 'codd generate' will auto-generate it for you."
|
|
163
|
+
)
|
|
160
164
|
|
|
161
165
|
artifacts: list[WaveArtifact] = []
|
|
162
166
|
for wave_key, entries in wave_config.items():
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|