github nat-n/poethepoet v0.49.0
0.49.0

3 hours ago

Enhancements

  • Add true_string and false_string options to customize the string values that boolean args are exposed as by @nat-n in #419
  • Support the .yml file extension for poe_tasks.yml and included config files by @Ab2nour in #426
  • Remove the pastel dependency, leaving pyyaml (and tomli on older pythons) as the only runtime dependencies by @nat-n in #411

Fixes

  • Resolve glob patterns in cmd tasks after parameter expansion, so expansions and quotes inside square bracket patterns are respected and unmatched globs are passed on unescaped by @nat-n in #425
  • Handle absolute glob patterns (e.g. /etc/host*) and ** within a path component in cmd tasks instead of crashing by @nat-n in #431
  • Propagate errors and exit codes from failed subtasks: errors in a switch case or a ref'd task are no longer swallowed, and poe now exits with the exit code of the first failed subtask instead of 1 by @nat-n in #430
  • Resolve subtask arg defaults against the env inherited from the parent task by @nat-n in #421
  • Detect and report cyclic deps/uses instead of silently running nothing or crashing by @nat-n in #421
  • Report malformed, empty, and non-table config files with clear errors instead of tracebacks by @nat-n in #428
  • Fix boolean flags forwarded to python tasks being inverted when their default is templated by @nat-n in #420

Breaking changes

These changes may affect a small number of existing configurations:

  • Consistent sys.argv for Python tasks with declared args. Script tasks that call a function, and expr tasks, now get the same sys.argv as script tasks that run a module: declared args as parsed (with defaults applied), followed by any args given after --. Templates like ${VAR} in args given on the command line are also no longer expanded for these tasks, matching other task types. See the migration guide for an example. (#420)

  • Square bracket glob patterns in cmd tasks are parsed like in bash. Whitespace, backslashes, quotes, and parameter expansions inside [...] are no longer taken literally, so e.g. [ -f foo ] is now four words rather than one pattern. To match a space or backslash, escape or quote it, e.g. [a\ b]. See the migration guide for details. (#425)

AI Agent Skill 🤖

  • Teach the task graph (deps, uses, uses_env) and steer agents towards declarative poe features rather than bash logic by @nat-n in #429

Upgrade an installed skill with:

poe _install_skill --upgrade

New Contributors

Full Changelog: v0.48.0...v0.49.0

Don't miss a new poethepoet release

NewReleases is sending notifications on new releases.