Enhancements
- Add
true_stringandfalse_stringoptions to customize the string values that boolean args are exposed as by @nat-n in #419 - Support the
.ymlfile extension forpoe_tasks.ymland included config files by @Ab2nour in #426 - Remove the
pasteldependency, leavingpyyaml(andtomlion 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
1by @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/usesinstead 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.argvfor Python tasks with declared args. Script tasks that call a function, and expr tasks, now get the samesys.argvas 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 --upgradeNew Contributors
Full Changelog: v0.48.0...v0.49.0