Skip to content

Releases: pyinfra-dev/pyinfra

v1.3.5

06 Feb 13:26
6c7169f
Compare
Choose a tag to compare
  • Add support for relative includes: local.include('./relative_file.py')
  • Fix parsing of special times in server.Crontab fact
  • Fix editing special_time in server.crontab operation
  • Fix printing of imported modules in group data files when using debug-inventory
  • Use/respect __all__ if defined in group data files

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)