[lifecycle]
name = "ggen"
version = "1.2.0"
[phases.validate-safety]
description = "Validate code safety (no panic points)"
commands = [
"./scripts/check-no-panic-points.sh",
]
error_handling = "stop"
required = true
timeout = 60
[phases.lint]
description = "Run clippy with strict warnings"
commands = [
"cargo clippy --all-targets --all-features -- -D warnings",
]
error_handling = "stop"
required = true
[phases.format-check]
description = "Check code formatting"
commands = [
"cargo fmt --all -- --check",
]
error_handling = "stop"
[phases.build]
description = "Build optimized release"
commands = [
"cargo build --release --all-features",
]
parallel = false
timeout = 600
[phases.build-debug]
description = "Build debug version"
commands = [
"cargo build --all-features",
]
parallel = false
[phases.test]
description = "Run comprehensive test suite"
commands = [
"cargo test --all-features --no-fail-fast",
"cargo test --doc",
]
parallel = false
timeout = 600
coverage_threshold = 80
[phases.test-release]
description = "Run tests in release mode"
commands = [
"cargo test --release --all-features",
]
parallel = false
[phases.security-audit]
description = "Run security audit"
commands = [
"cargo audit",
]
error_handling = "warn"
required = false
[phases.dependency-check]
description = "Check dependencies"
commands = [
"cargo deny check advisories",
]
error_handling = "warn"
[phases.fix-panic-points]
description = "Auto-fix panic points using ggen's own tools"
commands = [
"cargo script scripts/fix-panic-points.rs --dry-run",
]
error_handling = "continue"
[phases.generate-safe-patterns]
description = "Generate safe error handling patterns"
commands = [
"ggen template generate templates/safe-error-handling.tmpl",
]
error_handling = "continue"
[phases.readiness]
description = "Check production readiness"
commands = [
"./scripts/check-no-panic-points.sh",
"cargo clippy -- -D warnings",
"cargo test --all-features",
]
error_handling = "stop"
required = true
[phases.production-validate]
description = "Full production validation"
commands = [
"ggen lifecycle run validate-safety",
"ggen lifecycle run lint",
"ggen lifecycle run format-check",
"ggen lifecycle run test",
"ggen lifecycle run security-audit",
]
error_handling = "stop"
required = true
[phases.docs]
description = "Generate documentation"
commands = [
"cargo doc --no-deps --all-features",
]
[phases.install]
description = "Install ggen locally"
commands = [
"cargo install --path cli --force",
]
[phases.deploy]
description = "Deploy to production"
commands = [
"ggen lifecycle run production-validate",
"cargo build --release --all-features",
"cargo install --path cli --force",
]
error_handling = "stop"
requires = ["production-validate"]
[hooks]
before_build = ["validate-safety", "lint", "format-check"]
after_build = ["test"]
before_deploy = ["production-validate"]
on_init = ["setup-git-hooks"]
[phases.setup-git-hooks]
description = "Install git hooks for panic point prevention"
commands = [
"mkdir -p .git/hooks",
"cp .githooks/pre-commit .git/hooks/pre-commit",
"chmod +x .git/hooks/pre-commit",
]
[env.development]
logging.level = "debug"
performance.optimize = false
security.strict = false
[env.production]
logging.level = "warn"
performance.optimize = true
security.strict = true
monitoring.enabled = true
[workspace.cli]
path = "cli"
[workspace.core]
path = "ggen-core"
[workspace.ai]
path = "ggen-ai"
[performance]
parallel_execution = true
max_workers = 8
cache_enabled = true
cache_dir = "target/ggen-cache"
[pipelines]
dev = ["lint", "build-debug", "test"]
production = [
"validate-safety",
"lint",
"format-check",
"build",
"test",
"security-audit",
]
quick = ["validate-safety", "lint"]
dogfood = [
"fix-panic-points",
"generate-safe-patterns",
"validate-safety",
]