Skip to content

feat: add explicit CLI job selection - #5

Merged
yslib merged 26 commits into
mainfrom
feature/cli-job-selection
Jul 28, 2026
Merged

yslib merged 26 commits into
mainfrom
feature/cli-job-selection

Conversation

@yslib

@yslib yslib commented Jul 27, 2026

Copy link
Copy Markdown
Owner

Summary

  • replace the implicit command facade with explicit apply, dry-run, check providers, and list command families
  • add typed target, profile, and exact job selectors, including minimal provider closure for selected package jobs
  • add stable TSV listings for targets, profiles, and jobs so external tools such as fzf can compose an interactive workflow without becoming part of dot
  • separate complete static configuration validation from selected runtime resolution, and reuse one ExecutionPlan for apply and dry-run
  • document the new selection model and CLI contracts

Why

Dot needs execution granularity from an entire target/profile down to individual package, action, or link jobs. The previous CLI and manifest path could not expose that model cleanly or safely compose with external selectors.

This change makes selection explicit while preserving dot's core boundary: the complete TOML is validated statically, only selected jobs are resolved at runtime, and dot remains a bootstrap executor rather than a package manager or interactive DSL.

User impact

This intentionally removes the legacy implicit apply and global dry-run syntax. Users now select an explicit operation and may repeat --job for exact execution. The new list ... commands emit headerless stable TSV suitable for shell pipelines and fzf.

Validation

  • cargo fmt --all -- --check
  • cargo clippy --locked --all-targets --all-features -- -D warnings
  • cargo test --locked --all-targets --all-features (270 tests, 0 failures)
  • focused release-mode command and job-runner suites (32 tests, 0 failures)
  • production help/CLI smoke checks and development platform-override smoke checks
  • git diff --check main...HEAD

@yslib
yslib force-pushed the feature/cli-job-selection branch from 6b62260 to 07ef0ac Compare July 27, 2026 22:38
@yslib
yslib marked this pull request as ready for review July 28, 2026 06:47
@yslib
yslib merged commit b737465 into main Jul 28, 2026
7 checks passed
@yslib
yslib deleted the feature/cli-job-selection branch July 28, 2026 06:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant