Skip to content

Releases: pyinfra-dev/pyinfra

v3.5

03 Sep 10:26
eb0e683
Compare
Choose a tag to compare

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 and mtime 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:

v3.4.1

14 Jul 20:32
e064e8b
Compare
Choose a tag to compare
  • fix config context when getting operation arguments

v3.4

09 Jul 14:17
bb5218c
Compare
Choose a tag to compare

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 and extra_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

29 Apr 10:58
88a8703
Compare
Choose a tag to compare
  • connectors/ssh: fix extra keep_alive key passing through to paramiko connect call (@chipot)
  • docs: refine installation guide with updated Python requirements and best practices (@wowi42)

v3.3

28 Apr 10:55
e4b76ea
Compare
Choose a tag to compare

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

09 Jan 21:33
935ce07
Compare
Choose a tag to compare

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 and podman.PodmanPs facts (@bauen1)
  • Add many extra arguments (including generic args) to files.FindFiles* facts (@JakkuSakura)
  • Add system argument to git.config operation (@Pirols)
  • Add psql_database argument to postgres operations & facts (@hamishfagg)
  • Add files.Sha384File fact and sha384sum argument to files.download operation (@simonhammes)
  • Add apt.SimulateOperationWillChange fact (@bauen1)
  • Detect changes in apt.upgrade and apt.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 in pip.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

25 Sep 21:41
9ce7ac4
Compare
Choose a tag to compare
  • 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

18 Aug 12:55
aad6c3b
Compare
Choose a tag to compare

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 to files.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

24 Jul 19:43
511e7c3
Compare
Choose a tag to compare
  • Fix OperationMeta.did_change: this is now a function as originally designed
  • Add quick test for host.when context manager
  • Remove extra detected changes note when not relevant

v3.0.1

21 Jul 18:34
94c5808
Compare
Choose a tag to compare
  • Switch to command -v not which in server.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