Releases: pyinfra-dev/pyinfra
v1.3.4
v1.3.3
v1.3.2
- Add
pacman_unpack_group
fact (@unai-ndz) - Support Pacman package groups properly in
packman.packages
operation (@unai-ndz) - Fix only load git config if the repo directory exists in
git.config
operation - Fix global git config loading when files don't exist in
git_config
fact - Fix deploys doc example operation (@makom)
- Fix (add quoting) download URLs containing shell characters in
files.download
operation - Fix checking for rsync in
@local
connector
v1.3.1
- Add
git_tracking_branch
fact and reworkgit.worktree
operation (@remybar) - Add
user_mode
arg tosystemd.daemon_reload
operation (@smdnv) - Add
comment
arg/support toserver.user
operation (@sprat) - Use
StrictUndefined
when rendering templates (@relaxdiego) - Allow numbers in
pacman_packages
fact - Remove restriction on group data types
- Improve support for
Path
objects as operation arguments (@relaxdiego) - Improve error output when failing to start SFTP sessions (@relaxdiego)
- Fix readme doc link (@mrshu)
- Fix Docker tests and separate from main tests, don't run on PRs
v1.3
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
v1.2.1
v1.2
Lots of smaller bits in this release and massive improvement to the documentation.
Operation & fact updates:
- Deprecate
init.*
operations, renamed to:systemd.service
,upstart.service
,launchd.service
,bsdinit.service
,sysvinit.service
,sysvinit.enable
,server.service
- Add
systemd.daemon_reload
operation - Add
files.rsync
operation - Add
port
anduser
arguments to allssh.*
operations - Add
apt_keys
fact and use inapt.key
operation - Add GPG facts:
gkg_key
,gpg_keys
andgpg_secret_keys
- Add
additional_ips
innetwork_devices
fact - Add
ipv4_addrs
andipv6_addrs
facts to replaceipv[46]_addresses
- Add
linux_gui
&has_gui
facts
Other bits:
- Add global
chdir
,preserve_su_env
andsu_shell
arguments - Add
Config.REQUIRE_PACKAGES
to check requirements befor execution - Add
host_before_connect
andhost_connect_error
state callback methods - Support multiple
--limit
CLI arguments - Allow passing an integer in
files.replace
replacement lines (@vindarel) - Use
curl
ifwget
not present inapt.key
operation - Completely remove use of
use_default_on_error
in facts - Many updates/tweaks to documentation + theme
- Allow functions in/as group/host data (CLI)
- Implement/use Angolia docsearch on documentation
v1.1.2
- Add
port=22
argument to thessh.keyscan
operation - Add
extra_install_args
argument to thepip.packages
operation - Support uninstalling a requirements file in the
pip.packages
operation - Use state in
files.replace
operation, enabling noop support where appropriate - Add a warning when using
use_su_login
- Fix parsing stat output when groups contain spaces (
file
,directory
,link
facts) - Fix minimum gevent version (@alexandervdm)
v1.1.1
- Don't fail for user error facts when the user will be added earlier in the deploy
- Support
shasum
command infiles.download
operation - Consider waiting systemd units to be running (@i-do-cpp)
- Improve regex for systemd units (support ones with
.
) (@i-do-cpp) - Fix sudo passwords with special characters (@sysadmin75)
- Fix typo in host arg warning (@weakish)
v1.1
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
and dnf.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