Releases: WarriorsCode/deck
Releases · WarriorsCode/deck
v0.7.1
v0.7.0
v0.6.0
Changelog
- b50e729 docs: update CHANGELOG for v0.6.0 release
- 8c20952 feat: crash recovery with restart policy on services
- e872ed1 feat: deck init detects project stacks and generates tailored config
- 28da21d feat: service dependencies with depends_on and ready checks
- c6b1767 feat: add deck doctor command
- d6c1902 feat: selective service targeting for all commands
- d03e57b feat: add deck run command for one-off commands in service context
- 3dc392a feat: add env_file support to bootstrap steps
v0.5.0
Added
- Per-step
envfield on bootstrap steps, hooks, and services with$(…)shell interpolation - Env values containing
$(…)are evaluated at runtime (not config load time) viash -c - Step-level
envmerges on top of globalenv— step values win on conflict - Shell interpolation runs in the step's working directory for correct relative path resolution
- Failed
$(…)commands produce an empty string and log a warning; the step continues normally
Changed
- Introduced
config.Envnamed type withMergeandToSlicemethods, replacing rawmap[string]string - Service
envvalues now support$(…)interpolation (previously only literal values)
v0.4.0
Added
--versionflag with ldflags injection at build time and git fallback at runtime
v0.3.0
Added
- Interactive
promptfield on bootstrap steps — reads multi-line input, exposes$DECK_INPUTand$DECK_INPUT_FILE - Non-TTY detection — prompts fail gracefully in CI/pipes instead of blocking
v0.2.0
Added
- Global
envmap — injected into all commands (bootstrap, hooks, services) - Per-service
envandenv_file— load dotenv files and override env vars per service - Per-hook
env_file— load dotenv files for lifecycle hooks dirfield on bootstrap steps and hooks- Log backlog — shows last 20 lines when tailing starts
- ANSI escape code stripping from service log output
Fixed
- Broadened ANSI stripping to cover all CSI sequences (dim, underline, cursor, etc.)
v0.1.0
Initial release.
Added
- Config parsing with
deck.yaml+deck.local.yamldeep merge (order-preserving) StringOrListtype — depstart/stopaccept string or list- Duplicate key rejection in config
- Dependency checker with multi-strategy fallback and polling
- Bootstrap step runner with idempotent check/run pattern
- Lifecycle hooks — pre-start (fail-fast) and post-stop (best-effort)
- Process manager — PID files, process group kill, SIGTERM → SIGKILL, stale PID cleanup
- Startup rollback — stops already-started services if a later service fails
- Log tailing with colored
[name]prefixes and timestamp auto-detection - Status formatters — table, JSON, Go template output
- Status shows all configured services with ports and log paths
- Engine orchestrator wiring the full lifecycle
- CLI commands:
up,start,stop,restart,status,logs,init - Graceful shutdown with 30s timeout, second signal force-exits
- Correct shutdown ordering:
deck upruns post-stop hooks before kill,deck stopkills first - goreleaser with Homebrew cask publishing