Releases: pyinfra-dev/pyinfra
v3.5
New release with some really awesome new features, brought to you by the fantastic contributions of the community. New stuff:
- add
--diff
argument to show file diffs for potential file changes (@jgelens) - add
_retries
,_retry_delay
and_retry_until
global arguments (@shohamd4) - parallelize disconnecting from hosts (@gwelch-contegix)
- enable using SCP instead of SFTP for SSH file transfers (@DonDebonair)
New and updated operations/facts:
- facts/server: add
RebootRequired
fact (@wowi42) - operations/pip: support PEP-508 package versions (@morrison12)
- operations+facts/docker: add Docker plugin support (@DonDebonair)
- operations/files.put: add
atime
andmtime
arguments (@vram0gh2) - operations/openrc: support runlevel when enabling services (@sengo4hd)
- facts/yum+dnf+zypper: return
repoid
in repository facts
Operation/fact fixes:
- facts/files.File: add ls fallback support (@mrkbac)
- operations/openrc: add missing noop messages (@sengo4hd)
- operations/server.crontab: fix newline when replacing existing values (@Nananas)
- operations/files.block: fix examples doc (@morrison12)
- operations/files.block: fix case where file exists but line is missing (@morrison12)
- operations/files.block: improve handling of special characters in marker lines (@morrison12)
Internal/meta:
- documentation link fix (@sengo4hd)
v3.4.1
v3.4
Much delayed 3.4, great collection of additions and improvements. Huge THANK YOU to all contributors as always. New features:
New and updated operations/facts:
- operations/docker.network: add support for aux addresses (@DonDebonair)
- operations/files: try multiple hash functions in
files.get
+files.put
(@mrkbac) - operations/files.download: add
temp_dir
argument (@scy) - operations/files.download: add
extra_curl_args
andextra_wget_args
arguments (@jgelens) - operations/flatpak: add remote support (@Griffoen)
- operations/git + facts/git: add
GitTag
fact and support tag checkout (@wowi42) - operations/server.mount: add support for FreeBSD mounts (@DtxdF)
- facts/server: add
server.Port
fact to find process listening on port (@missytake)
Operation/fact fixes:
- operations/docker: handle case where no docker containers/etc exist (@wowi42)
- operations/files + operations/crontab: fix deletion of lines when
present=False
(@bad) - operations/files.block: avoid use of non-POSIX
chown -n
- operations/files.put: fix copying of local file mode (@vram0gh2)
- operations/server.user: fix appending of user groups (@aaron-riact)
- facts/server.Mounts: fix whitespace and escaped character parsing (@lemmi)
- facts/systemd: treat mounted units as active
Internal/meta:
- remove unncessary setuptools runtime dependency (@karlicoss)
v3.3.1
v3.3
Second release of 2025: loads of adds, fixes and documentation improvements. A huge THANK YOU to all contributors. Slightly changed format for the change list based on commit messages which should speed up releases:
New operations & arguments:
- operations/freebsd: add FreeBSD operations & facts (@DtxdF)
- operations/files.move: new operation (@Pirols)
- operations/server.user: enable adding user to secondary groups (Pirols)
- operations/postgres: enhance role management by adding
ALTER ROLE
support (@wowi42) - operations/postgres: enable modifying existing postgres databases (@wowi42)
- operations/docker.container: refactor to support container recreation (@minor-fixes)
Operation/fact fixes:
- operations/postgres: fix quoting of locale parameters (@xvello)
- operations/server: remove leftover deprecated parameter (@wowi42)
- operations/pacmen: update PACMAN_REGEX to support additional characters (@wowi42)
- operations/server.sysctl: handle 0 integer values correctly (@lemmi)
- operations/apt: dist-upgrade also supports --autoremove (@bauen1)
- operations/apt: fix parameter name in docs (@bauen1)
- operations/server: fix: lastlog is always null (@ingstem)
- operations/docker: Fixed a typo with the volumes parameter to docker.prune operation (@mpilone)
- facts/xbps.XbpsPackages: allow . in package names (@lemmi)
Connectors, CLI:
- connectors: improve detection of sudo password needed
- connectors/ssh: add support for
ServerAliveInterval
(@chipot) - cli: enable -h as shorthand for --help (@NichtJens)
Docs:
- docs: Add a section explaining connector flow (@goetzk)
- docs: Add inventory processing note and reference it (@goetzk)
- docs: Add example of logging to using operations docs (@goetzk)
- docs: fix wrong example operation using forbidden argument 'name' (@robertmx)
- docs: Add a note to the docs about using
_inner
when calling operations from other operations (@CSDUMMI) - docs: Document host, state, inventory in files.template (@mpilone)
- docs: Minor adjustments to wording help docs and help (@goetzk)
- docs: expand connectors documentation (@goetzk)
- docs: correct import path for any_changed, all_changed (@lemmi)
- docs: Add note re: global arguments to operations (@simonhammes)
Internal/meta:
- refactor: update opkg documentation and add requires_command to ZFS and Git tests (@wowi42)
- Update testing and development dependencies in setup.py (@wowi42)
- tests: Load test specs with PyYAML instead of json (@taliaferro)
- typing: Require explicit override decorator (@bauen1)
- api: don't execute callbacks within a greenlet if we're already in one
- ci: Github Actions support for python 3.12 (@wowi42)
- ci: Prevent docs job from running on forks (@simonhammes)
v3.2
Hello 2025! Here's pyinfra 3.2 - with another incredible round of contributions from the community, THANK YOU ALL. New stuff:
- Add total counts to results summary (@NichtJens)
- Enable passing extra data via
local.include
(@TimothyWillard) - Validate inventory files and display warnings for unexpected variables (@simonhammes)
New operations/facts:
- Add
pipx
operations (packages
,upgrade_all
,ensure_path
) facts (PipxPackages
,PipxEnvironment
) and operations (@maisim) - Add
server.OsRelease
fact (@wowi42) - Add
podman.PodmanSystemInfo
andpodman.PodmanPs
facts (@bauen1) - Add many extra arguments (including generic args) to
files.FindFiles*
facts (@JakkuSakura) - Add
system
argument togit.config
operation (@Pirols) - Add
psql_database
argument to postgres operations & facts (@hamishfagg) - Add
files.Sha384File
fact andsha384sum
argument tofiles.download
operation (@simonhammes) - Add
apt.SimulateOperationWillChange
fact (@bauen1) - Detect changes in
apt.upgrade
andapt.dist_upgrade
operations (@bauen1) - Add
fibootmgr.EFIBootMgr
fact (@bauen1) - Add opkg facts and operations (@morrison12)
Fixes:
- Multiple fixes for
server.crontab
operation and facts (@JakkuSakura) - Correctly handle
latest
argument with requirements file inpip.packages
operation (@amiraliakbari) - Fix regex used to parse installed apk packages (@simonhammes)
- Fix SSH connector overwriting known hosts files (@vo452)
Docs/internal tweaks:
- Add type annotations for many more operations (@simonhammes)
- Add typos CI checking to replace flake8-spellcheck (@simonhammes)
- Bump CI actions and dependencies (@simonhammes)
- Require JSON tests to include all arguments
- Remove unused
configparser
dependency (@bkmgit) - Many small documentation fixes/tweaks
v3.1.1
- Improve errors with 2.x style
@decorator
(vs@decorator()
) functions - Document adding custom connectors (@simonhammes)
- Add basic API example to docs (@pirate)
- Fix sphinx warnings (@simonhammes)
- Fix force & pull arguments in
git.worktree
operation - Fix
server.reboot
reconnection (@wackou) - Fix chroot/local connector non-utf file gets (@evoldstad)
- Fix
AptSources
fact to parse components in order & with digits (@rsfzi)
v3.1
Here's pyinfra 3.1 - a release primarily driven by contributors new and old - a HUGE THANK YOU to all of you who dedicate time to work on pushing pyinfra forward. New stuff:
- Add
zfs
operations (dataset
,snapshot
,volume
,filesystem
) facts (Pools
,Datasets
,Filesystems
,Snapshots
,Volumes
) (@taliaferro) - Add
flatpak
operations (packages
) and facts (FlatpakPackage
,FlatpakPackages
) (@JustScreaMy) - Add
jinja_env_kwargs
argument tofiles.template
operation (@DonDebonair) - Add using dictionaries as
@terraform
output (map from group -> hosts) - Add default
@terraform
output key -pyinfra_inventory.value
, promote connector to beta - Add support for multiple keys in each
server.authorized_keys
file (@matthijskooijman) - Add print all dependency versions with
--support
flag (@kytta)
Fixes:
- Fix when
ssh_hostname
is set as override data, don't do inventory hostname check - Fix
apt.AptSources
parsing special characters (@CondensedTea) - Fix
server.reboot
connection detection (@bauen1 + @lemmi) - Fix systemd flagging of sockets running (@bauen1)
- Fix mysql dump quoting (@simonhammes)
- Fix tilde expansion in files facts (@simonhammes)
- Fix host lookup check with SSH alias config (@simonhammes)
- Fix crontab comparison (@andrew-d)
Docs/internal tweaks:
- Improve operations documentation (@bauen1)
- Default to local machine if
user_name
set in systecmt (@bauen1) - Improve efficiency of Docker operations (@apecnascimento)
- Shallow copy
host.data
data to mutation
v3.0.2
v3.0.1
- Switch to
command -v
notwhich
inserver.Which
fact (@lemmi) - Fix detection of xbps in
server.packages
operation (@romain-dartigues) - Fix argument typo in operations doc (@scoufman)
- Add expanded note about detected changes + hidden side effects during execution
- Fix missing global arguments in group data files
- Fix
--group-data
CLI argument behaviour - Remove unused/dead
--quiet
flag