Skip to content

Releases: pyinfra-dev/pyinfra

v1.4.6

10 Jul 21:14
5000182
Compare
Choose a tag to compare
  • Properly handle shell quoting of filenames in all files.* facts
  • Update files.* operations to use explicit fact imports
  • Update the docs to show explicit fact import style

v1.4.5

10 Jul 21:14
7a2bc1c
Compare
Choose a tag to compare
  • Fix missing mysql connection arguments updating privileges mysql.database operation (@sfermigier)
  • Fix parallel upload of askpass files
  • Properly handle shell quoting of filenames, fixes filenames with shell characters/etc for all files.* operations

v1.4.4

10 Jul 21:13
f21315e
Compare
Choose a tag to compare
  • Fix brew casks fact for non-mac platforms

v1.4.3

30 May 16:52
44b938b
Compare
Choose a tag to compare
  • Fix user fact comments with spaces by refactoring the fact (@sysadmin75)
  • Fix parsing of tab delimited crontab files with special times (@hazayan)
  • Fix incorrect lowercasing of yum & dnf package names
  • Fix/enable passing to_ports as an integer in iptables.rule operation
  • Migrate iptables facts & operations to use explicit fact imports
  • Fix/implement idempotency in iptables operations

v1.4.2

19 May 16:54
44ead84
Compare
Choose a tag to compare
  • Fix/implement WinRM env support (@mfrg)
  • Fix/handle Brew 2.6+ new cask CLI (@morrison12)
  • Fix parsing of tab delimited crontab files (@hazayan)

v1.4.1

16 May 07:31
fca18c6
Compare
Choose a tag to compare
  • Improve deploy directory detection to handle nested directories
  • Copy existing file/directory permissions in files.sync operation
  • Treat exited systemd services as running in systemd.SystemdStatus fact
  • Fix handling of cache_time in apt.update operation
  • Fix invalid name arguments in windows.service, windows.file & windows.directory operations
  • Only show invalid auth argument warnings when not the defaults
  • Test operation global argument clashes

v1.4

29 Apr 16:33
92cd818
Compare
Choose a tag to compare

Three major themes to this release:

Explicit fact imports - this replaces the magic host.fact.X variables with explicitly imported facts, for example:

# previously: host.fact.apt_sources
from pyinfra.facts.apt import AptSources
host.get_fact(AptSources)

# previously: host.fact.file('/path/to/file')
from pyinfra.facts.files import File
host.get_fact(File, path='/path/to/file')

# also now possible (previously impossible):
host.get_fact(File, path='/path/to/file', sudo=True)

And the CLI changes accordingly:

# previously: pyinfra INVENTORY fact apt_sources
pyinfra INVENTORY fact apt.AptSources

# previously: pyinfra INVENTORY fact file:/path/to/file directory:/path/to/directory
pyinfra INVENTORY fact files.File path=/path/to/file files.Directory path=/path/to/directory

This is not yet standard across the project and will be updated in subsequent releases. This also finally enables using third party facts in a sensible and explict manner. Overall, this is a dramatic improvement to the pyinfra fact mechanism.

Windows operations expansion - massive thank you to @mfrg for implementing these, huge expansion of Windows facts & operations, making it possible to really use pyinfra with Windows targets (additions listed below).

Idempotency testing - verification of operation idempotency (calling the same op twice outputs no commands/changes the second time) through testing and a large expansion in verified idempotency. Operations can now specify themselves as non-idempotent when expected (for example, server.shell).

Operation & fact updates:

  • Add server.packages operation - generic package management using the default OS package manager
  • Add pip.venv operation - shortcut for pip.virtualenv(venv=True, ...)
  • Add server.Path fact
  • Add rpm.RpmPackageProvides fact & support package aliases for yum.packages & dnf.packages operations
  • Add windows_files.download, windows_files.put & windows_files.link operations (@mfrg)
  • Add windows_files.WindowsLink, windows_files.WindowsSha1File, windows_files.WindowsSha256File & windows_files.WindowsMd5File facts (@mfrg)

CLI updates:

  • New style fact gathering CLI arguments
  • Prefix SSH auth flags (--user becomes --ssh-user), deprecate old versions
  • Deprecate --facts & --operations CLI flags
  • Deprecate all-facts command
  • Hide deprecated options from --help

Other bits:

  • Show warnings when using invalid auth argument combinations (sudo_user without sudo, etc)
  • Bump minimum Paramiko version to 2.7

v1.3.12

29 Apr 16:32
e8f7f08
Compare
Choose a tag to compare
  • Fix & test loading non-RSA SSH keys with passwords (@Yakulu)

v1.3.11

29 Apr 16:32
dc8a77b
Compare
Choose a tag to compare
  • Fix custom SSH config parsing to support latest Paramiko features (Match directives)
  • Fix error loading SSH keys with passwords (try all key formats before failing)

v1.3.10

08 Apr 13:34
edc29d9
Compare
Choose a tag to compare
  • Properly escape postgresql role/database/owner operation commands (@RobWouters)
  • Add support for additional winrm transport types & options (@mfrg)
  • Fix for Git* facts where the target repo doesn't exist
  • Git branches update: master renamed to current and new next branch tracking next minor release
  • Contributing documentation page updated to include branch description