pyinfra v1.1 Release Notes
Release Date: 2020-08-26 // over 3 years ago-
๐ This is a big release with some major additions & improvements on
v1
.Highlights:
- Start modifying facts during fact gathering phase, resolving common issues with interdependent operations, expand documentation on this (docs)
- Implement state callback classes dramatically improving the API experience (see
examples/api_deploy.py
) - ๐ Add
@dockerssh
connector that enables pyinfra to build Docker containers on remote machines over SSH (@charles-l) - โ Add global
precondition
andpostcondition
operation arguments - ๐ Fix using
su_user
on BSD/MacOS systems - โ Rework verbosity flags and add noop logging (ie package X is already installed) (docs)
Notable change:
๐ The
yum.packages
anddnf.packages
operations have changed their "version join" string value - both package managers use-
to join name + version while allowing-
in the name. This leads to ambiguous behaviour for packages containing dashes, as such the version join value has been changed to=
- meaning it can now actually be used! This means to specify a specific version of a yum/dnf package you should use<name>=<version>
rather than<name>-<version>
.Smaller bits:
- Add
REQUIRE_PYINFRA_VERSION
config option (& deprecateMIN_PYINFRA_VERSION
) - Validate existing files in
file.download
with checksum arguments (@sysadmin75) - ๐ Stop stripping fact output (fixes
command
fact, @sysadmin75) - Add
extra_install_args
andextra_uninstall_args
kwargs toapt.packages
operation - โ Add
--use-sudo-password
CLI argument - Normalise
server.sysctl
handling of string/int values - ๐ Improve autocomplete/intellisense handling of pseudo modules
pyinfra.[host|state|inventory]
- ๐ Fix using sudo password with a SSH user that doesn't have access to
/tmp
- ๐ Fix
python.call
docstring (@leahneukirchen) - ๐ Fix
--serial
and--no-wait
executing operations twice - ๐ Fix
server.sysctl
usage with multiple values