All Versions
Latest Version
Avg Release Cycle
8 days
Latest Release

Changelog History
Page 1

  • v2.5.3 Changes

    • ๐Ÿ›  Fix handling of facts with no arguments or with global arguments
    • ๐Ÿ›  Fix mutable default breaking Host.loop position tracking
    • ๐Ÿ‘ป Cleanup exception handling within operation code
  • v2.5.2 Changes

    • ๐Ÿ›  Fix/make safer check for sysvinit in server.service operation
    • ๐Ÿ›  Fix parsing of sticky/setgid/setuid permission bits in files.* facts
    • Respect TMPDIR when asking for sudo password (@jaysoffian)
    • ๐Ÿ›  Fix old windows fact names (@simon04)
    • ๐Ÿ›  Fix consistency of facts called in vs. out of operation context
    • ๐Ÿ›  Fix a bunch of pylint issues (@marksmayo)
    • ๐Ÿ›  Fix docstrings on python.* operations
  • v2.5.1 Changes

    • ๐Ÿ›  Fix bug in pre/post condition handling that would print non-fatal errors
  • v2.5 Changes

    โž• Added:

    • ๐Ÿง Add selinux.boolean, selinux.file_context, selinux.file_context_mapping & selinux.port operations (@morrison12)
    • โž• Add selinux.SEBoolean, selinux.FileContextMapping, selinux.SEPorts, selinux.SEPort facts (@morrison12)
    • โž• Add snap.package operation & snap.SnapPackage, snap.SnapPackages facts (@pabloxio)
    • โž• Add beta files.block operation implementation (@morrison12)

    ๐Ÿ›  Fixed:

    • Include all systemd units in systemd.SystemdStatus fact (@mariusmuja)
    • ๐Ÿ“ฆ Handle installed RPM packages in rpm.RpmPackage fact (@mariusmuja)
    • ๐Ÿ›  Fix host loop cycle errors with new host.loop method
    • ๐Ÿ“œ Always use ISO format date in server.Date fact, should resolve any outstanding parse errors

    Other changes:

    • ๐Ÿ›  Fix a whole load of documentation typos (@simonw)
    • Generic typing stub for operation decorator (@mariusmuja)
    • First pass at type annotations for the API (@lowercase00)
    • โž• Add type checking CI job
    • Decomposition of many internal API functions & cleanup (@lowercase00)
    • ๐ŸŽ Use macos-latest GitHub runner (@morrison12)
    • ๐Ÿ›  Fix documentation URL (@blaisep)
  • v2.4 Changes

    Delayed getting this out, lots of little improvements.

    โž• Added:

    • Add server.user_authorized_keys operation
    • Add global _continue_on_error argument
    • โž• Add dir_mode argument to files.sync operation (@filips123)
    • Copy local permissions when mode=True in files.put operation
    • โž• Add headers and insecure arguments to operation

    ๐Ÿ›  Fixed:

    • Get facts with host & state context (@jaysoffian)
    • ๐Ÿ›  Fix short facts with arguments (@jaysoffian)
    • ๐Ÿ›  Fix hang on launch of container in lxd.container operation (@zachwaite)
    • โš™ Run operations with host context
    • ๐Ÿ›  Fix idempotency with uploads to a directory in files.put operation

    Other changes:

    • ๐Ÿ›  Fix multiple doc typos (@timgates42)
    • ๐Ÿ›  Fix variable typo (@bouke-sf)
    • ๐Ÿ›  Fix CLI shell autocomplete doc (@jaysoffian)
    • Implement idempotency in git.bare_repo operation
    • โž• Add typing to fact classes
    • โœ… Start testing files operations with pathlib objects
  • v2.3 Changes

    ๐Ÿš€ Relatively small quick release with two additions and a bunch of fixes.

    โž• Added:

    • โž• Add create_home argument to server.user operation
    • Separate no change/change in proposed changes & results output
    • ๐Ÿ‘Œ Support IO-like objects as stdin

    ๐Ÿ›  Fixed:

    • ๐Ÿ›  Fix short fact gathering
    • ๐Ÿ›  Fix handling of IO-like objects when assume_exists=True in files.put operation
    • Don't fail to ensure user home dir that already exists as a link
    • ๐Ÿ“‡ Rename file utils to avoid clashes/confusion with operations


    • Check operation type stubs during CI
  • v2.2 Changes

    The main feature of 2.2 is the switch to using a DAG to generate operation order. This mostly replaces line-number ordering (still used to tie-break) and means hacks such as state.preserve_loop_order are no longer required!

    The second highlight feature is the inclusion of type stub files for operations that include all of the global arguments. Thank you to @StefanBRas for implementing this.

    Other changes:

    • 0๏ธโƒฃ Use home directory fact for default in server.user operation (@yunzheng)
    • ๐Ÿ›  Fix matching replace as a whole line in files.line operation
    • ๐Ÿ›  Fix bug in mysql.privileges invalid argument requesting MysqlUserGrants fact
  • v2.1 Changes

    First 2.x point release! Major feature: nested operations (at last!).

    ๐Ÿš€ Based on the changes to operations in 2.x nested operations make it possible to generate & execute operations on the fly at execution time, rather than using the low-level connector API. This unlocks all kinds of complex deploys that were previously impossible or complex to implement. Let's look at an example:

    from pyinfra import logger
    from pyinfra.operations import python, server
    def callback():
        result =["echo output"])"Got result: {result.stdout}")
        name="Execute callback function",

    Other new stuff:

    • โž• Add host.reload_fact(...) - bypasses the fact cache to force reloading of fact data
    • โž• Add deb.DebArch fact
    • Add ssh_paramiko_connect_kwargs host data used in the @ssh connector

    ๐Ÿ›  Bugfixes:

    • ๐Ÿ›  Fix: Remove state/host arguments from apt.dist_upgrade operation (@pabloxio)
    • ๐Ÿ›  Fix files.put hashing local file that doesn't exist when assume_exists=True
    • ๐Ÿ›  Fix parsing of link targets in RHEL 6 systems
    • ๐Ÿ“ฆ Prefer zypper over apt when both present in server.packages operation

    Internal changes:

    • ๐Ÿ›  Fix license link (@Lab-Brat)
    • โš™ Run black and isort across the codebase, now part of CI
  • v2.0.2 Changes

    • ๐Ÿ›  Fix for config.SUDO/etc handling for operation argument defaults
  • v2.0.1 Changes

    • Rewrite & fix/speedup systemd facts using systemctl show
    • ๐Ÿ‘Œ Support passing IO-like objects into files.template operation
    • ๐Ÿ‘Œ Support accept-new SSH config for StrictHostKeyChecking
    • ๐Ÿ›  Fix hashing of facts with non-keyword arguments
    • ๐Ÿ›  Fix connect to non-connected hosts before collecting facts
    • Fix config.REQUIRE_PYINFRA_VERSION & config.REQUIRE_PACKAGES handling
    • ๐Ÿ“„ Many little docs improvements