pyinfra v1.1 Release Notes

Release Date: 2020-08-26 // over 3 years ago
  • ๐Ÿš€ 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 and postcondition 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 (& deprecate MIN_PYINFRA_VERSION)
    • Validate existing files in file.download with checksum arguments (@sysadmin75)
    • ๐Ÿ›  Stop stripping fact output (fixes command fact, @sysadmin75)
    • Add extra_install_args and extra_uninstall_args kwargs to apt.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