Skip to content

Releases: pyinfra-dev/pyinfra

v1.3.4

22 Jan 10:33
27f8fb3
Compare
Choose a tag to compare
  • Improve matching of user hostname in mysql_user_grants fact

v1.3.3

22 Jan 10:33
ca56d70
Compare
Choose a tag to compare
  • Fix support for package names in deb_package fact (@s-vx)
  • Fix check for match any vs. all in ensure packages util (fixes Pacman package groups)
  • Fix/support passing keyword functions into facts
  • Fix parsing of mysql_user_grants fact output
  • Fix idempotency of mysql.privileges operation

v1.3.2

13 Jan 18:49
1197a40
Compare
Choose a tag to compare
  • Add pacman_unpack_group fact (@unai-ndz)
  • Support Pacman package groups properly in packman.packages operation (@unai-ndz)
  • Fix only load git config if the repo directory exists in git.config operation
  • Fix global git config loading when files don't exist in git_config fact
  • Fix deploys doc example operation (@makom)
  • Fix (add quoting) download URLs containing shell characters in files.download operation
  • Fix checking for rsync in @local connector

v1.3.1

06 Jan 14:16
bc7e1f1
Compare
Choose a tag to compare
  • Add git_tracking_branch fact and rework git.worktree operation (@remybar)
  • Add user_mode arg to systemd.daemon_reload operation (@smdnv)
  • Add comment arg/support to server.user operation (@sprat)
  • Use StrictUndefined when rendering templates (@relaxdiego)
  • Allow numbers in pacman_packages fact
  • Remove restriction on group data types
  • Improve support for Path objects as operation arguments (@relaxdiego)
  • Improve error output when failing to start SFTP sessions (@relaxdiego)
  • Fix readme doc link (@mrshu)
  • Fix Docker tests and separate from main tests, don't run on PRs

v1.3

09 Dec 14:58
c14c669
Compare
Choose a tag to compare

Theme of this release is improving error handling and end user experience. Highlights:

  • Make most global arguments dynamic - support different chdir, sudo, etc for different hosts within the same operation call
  • Rework line number ordering to support any nested function calls and/or imports
  • Improve error handling for unexpected internal (pyinfra) and external (user code) errors
  • Detect and error when an operation calls another using global arguments
  • Properly fail when fact commands don't execute correctly vs. a given command not being present on the host, using requires_command fact attribute

Operation & fact updates:

  • Add git.worktree operation (@remybar)
  • Add git.bare_repo operation (@stchris)
  • Add user_mode argument to systemd.service operation (@jprltsnz)
  • Use hostnamectl where available for server.hostname operation
  • Use uname -a for hostname fact
  • Add user fact

Other bits:

  • Enable using use_sudo_password without sudo=True
  • Move testing & documentation processes to GitHub actions
  • Run tests on Windows & MacOS

v1.2.1

30 Oct 20:07
acf05a0
Compare
Choose a tag to compare
  • Add pip3_packages fact
  • Improve/fix handling of reboot exit code in server.reboot operation
  • Restore __eq__ functionality of pseudo modules
  • Add tests for the pseudo modules

v1.2

21 Oct 16:49
c287429
Compare
Choose a tag to compare

Lots of smaller bits in this release and massive improvement to the documentation.

Operation & fact updates:

  • Deprecate init.* operations, renamed to: systemd.service, upstart.service, launchd.service, bsdinit.service, sysvinit.service, sysvinit.enable, server.service
  • Add systemd.daemon_reload operation
  • Add files.rsync operation
  • Add port and user arguments to all ssh.* operations
  • Add apt_keys fact and use in apt.key operation
  • Add GPG facts: gkg_key, gpg_keys and gpg_secret_keys
  • Add additional_ips in network_devices fact
  • Add ipv4_addrs and ipv6_addrs facts to replace ipv[46]_addresses
  • Add linux_gui & has_gui facts

Other bits:

  • Add global chdir, preserve_su_env and su_shell arguments
  • Add Config.REQUIRE_PACKAGES to check requirements befor execution
  • Add host_before_connect and host_connect_error state callback methods
  • Support multiple --limit CLI arguments
  • Allow passing an integer in files.replace replacement lines (@vindarel)
  • Use curl if wget not present in apt.key operation
  • Completely remove use of use_default_on_error in facts
  • Many updates/tweaks to documentation + theme
  • Allow functions in/as group/host data (CLI)
  • Implement/use Angolia docsearch on documentation

v1.1.2

15 Sep 17:03
01e1b79
Compare
Choose a tag to compare
  • Add port=22 argument to the ssh.keyscan operation
  • Add extra_install_args argument to the pip.packages operation
  • Support uninstalling a requirements file in the pip.packages operation
  • Use state in files.replace operation, enabling noop support where appropriate
  • Add a warning when using use_su_login
  • Fix parsing stat output when groups contain spaces (file, directory, link facts)
  • Fix minimum gevent version (@alexandervdm)

v1.1.1

05 Sep 08:36
Compare
Choose a tag to compare
  • Don't fail for user error facts when the user will be added earlier in the deploy
  • Support shasum command in files.download operation
  • Consider waiting systemd units to be running (@i-do-cpp)
  • Improve regex for systemd units (support ones with .) (@i-do-cpp)
  • Fix sudo passwords with special characters (@sysadmin75)
  • Fix typo in host arg warning (@weakish)

v1.1

31 Aug 13:00
Compare
Choose a tag to compare

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