Theme of this release is improving error handling and end user experience. Highlights:
- Make most global arguments dynamic - support different
chdir
,sudo
, etc for different hosts within the same operation call - Rework line number ordering to support any nested function calls and/or imports
- Improve error handling for unexpected internal (pyinfra) and external (user code) errors
- Detect and error when an operation calls another using global arguments
- Properly fail when fact commands don't execute correctly vs. a given command not being present on the host, using
requires_command
fact attribute
Operation & fact updates:
- Add
git.worktree
operation (@remybar) - Add
git.bare_repo
operation (@stchris) - Add
user_mode
argument tosystemd.service
operation (@jprltsnz) - Use
hostnamectl
where available forserver.hostname
operation - Use
uname -a
forhostname
fact - Add
user
fact
Other bits:
- Enable using
use_sudo_password
withoutsudo=True
- Move testing & documentation processes to GitHub actions
- Run tests on Windows & MacOS