Note when commands and tasks can accept extra args in -l
/ --list
output.
Add support for hiding commands and tasks from -l
/ --list
output.
Add support for documenting commands and tasks and listing them with their documentation via
-l
/ --list
.
Support an optional leading :
in factor argument values to parallel factor parameter default
syntax and better visually separate factor values from factor names.
This change adds support for command parametrization via environment variables, Python interpreter marker environment values and factors similar to those found in tox configuration.
Improve error message when the project root cannot be discovered.
Fix commands with an argv0 of "python" on Windows and add support for argv0 being a Python script.
Fix -p
/ --parallel
handling of tasks - no longer flatten them.
Gracefully handle keyboard interrupt and kill in-flight processes with logging.
Fix missing typing-extensions dependency and update README.
Fix -s
/ --skip
interaction with extra args support.
Add support for skipping task steps with -s
/ --skip
.
Fix dev-cmd
handling of execution errors. Previously an uncaught exception assigning
__traceback__
could be observed in certain situations.
Fix dev-cmd
for interactive commands that read from stdin.
Fix sdist release to include tests and uv.lock
.
Add support for Python 3.8.
Also improve color support for Windows.
Add -q
/ --quiet
to quiet dev-cmd
output to just the output of the commands it runs.
Also fix the dev-cmd
exit code to reflect the exit code of a failing command when there is
exactly one failing command.
Finally, fix dev-cmd
color setting propagation to subprocesses in certain situations where
NO_COLOR
or FORCE_COLOR
are present in the environment.
Add knobs to control when and how dev-cmd
exits an invocation that has command failures:
[tool.dev-cmd] exit-style
and-k
/--keep-going
or-X
/--exit-style
allow configuring how quickly thedev-cmd
invocation exits after a command failure. By default, it exits after the step containing the 1st command failure completes, but an immediate end or continuation through all steps can be requested.[tool.dev-cmd] grace-period
and--grace-period
allow configuring how in-flight commands are terminated when exiting an invocation with command errors.
Emit a trailing message indicating overall run status and timing.
Fix inadvertent -p
/ --parallel
output interleaving.
Add support for --color
choice and respect ambient color setting when there is not --color
choice.
Add support for -p
/ --parallel
to request all top-level commands and tasks requested on the
command line be run in parallel.
Also, re-work task parallelization to be more robust and general. Now sub-lists in a task definition are either run in parallel or serial depending on their nesting depth, which can be arbitrarily deep. The 1st level, the task list itself, is run in serial to seed the alternation.
Several parallelization fixes:
- Restore color support.
- Restore
accepts-extra-args
support. - Complete parallel tasks incrementally.
Breaking pre-1.0 changes:
[tool.dev-cmd.aliases]
is now named[tool.dev-cmd.tasks]
.- The default task or command is now specified with the
default
key in the `[tool.dev-cmd] table. The key is just the name for the task or command that should be default.
Fix regression in cwd and env support for commands.
Add support for parallelizing execution of commands in an task.
Fix project root dir detection.
Guarantee commands are run in the root project dir or else the custom
cwd
project sub-dir defined for the command.
Update project metadata.
Initial release.