[Feature] #975: Fabric can now be invoked via python -m fabric in addition to the typical use of the fab entrypoint. Patch courtesy of Jason Coombs.
This functionality is only available under Python 2.7.
[Feature] #1090: Add option to skip unknown tasks. Credit goes to Jonas Lundberg.
[Feature] #1098: Add support for dict style roledefs. Thanks to Jonas Lundberg.
[Feature] #700: Added use_sudo and temp_dir params to get. This allows downloading files normally not accessible to the user using sudo. Thanks to Jason Coombs for initial report and to Alex Plugaru for the patch (#1121).
[Bug] #1188: Update local to close non-pipe file descriptors in the child process so subsequent calls to local aren’t blocked on e.g. already-connected network sockets. Thanks to Tolbkni Kao for catch & patch.
[Support] #626: Clarity updates to the tutorial. Thanks to GitHub user m4z for the patches.
[Support] #634: Clarified that lcd does no special handling re: the user’s current working directory, and thus relative paths given to it will be relative to os.getcwd(). Thanks to @techtonik for the catch.
[Feature] #627: Added convenient quiet and warn_only keyword arguments to run/sudo which are aliases for settings(hide('everything'), warn_only=True) and settings(warn_only=True), respectively. (Also added corresponding context managers.) Useful for remote program calls which are expected to fail and/or whose output doesn’t need to be shown to users.
[Support] #645: Update Sphinx docs to work well when run out of a source tarball as opposed to a Git checkout. Thanks again to @Arfrever for the catch.
[Feature] #241: Add the command executed as a .command attribute to the return value of run/sudo. (Also includes a second attribute containing the “real” command executed, including the shell wrapper and any escaping.)
[Support] #651: Added note about nesting with statements on Python 2.6+. Thanks to Jens Rantil for the patch.
[Feature] #669: Updates to our Windows compatibility to rely more heavily on cross-platform Python stdlib implementations. Thanks to Alexey Diyan for the patch.
[Feature] #263: Shell environment variable support for run/sudo added in the form of the shell_env context manager. Thanks to Oliver Tonnhofer for the original pull request, and to Kamil Kisiel for the final implementation.
[Support] #681: Fixed outdated docstring for runs_once which claimed it would get run multiple times in parallel mode. That behavior was fixed in an earlier release but the docs were not updated. Thanks to Jan Brauer for the catch.
[Bug] #702: require failed to test for “empty” values in the env keys it checks (e.g. require('a-key-whose-value-is-an-empty-list') would register a successful result instead of alerting that the value was in fact empty. This has been fixed, thanks to Rich Schumacher.
[Bug] #711: get would fail when filenames had % in their path. Thanks to John Begeman
[Feature] #699: Allow name attribute on file-like objects for get/put. Thanks to Peter Lyons for the pull request.
[Bug] #704: Fix up a bunch of Python 2.x style print statements to be forwards compatible. Thanks to Francesco Del Degan for the patch.
[Feature] #761: Allow advanced users to parameterize fabric.main.main() to force loading of specific fabfiles.
[Feature] #763: Add --initial-password-prompt to allow prefilling the password cache at the start of a run. Great for sudo-powered parallel runs.
[Bug] #736: Ensure context managers that build env vars play nice with contextlib.nested by deferring env var reference to entry time, not call time. Thanks to Matthew Tretter for catch & patch.
[Bug] #767: Fix (and add test for) regression re: having linewise output automatically activate when parallelism is in effect. Thanks to Alexander Fortin and Dustin McQuay for the bug reports.
[Feature] #684: (also #569) Update how task wraps task functions to preserve additional metadata; this allows decorated functions to play nice with Sphinx autodoc. Thanks to Jaka Hudoklin for catch & patch.
[Feature] #38: (also #698) Implement both SSH-level and ProxyCommand-based gatewaying for SSH traffic. (This is distinct from tunneling non-SSH traffic over the SSH connection, which is #78 and not implemented yet.)
- Thanks in no particular order to Erwin Bolwidt, Oskari Saarenmaa, Steven Noonan, Vladimir Lazarenko, Lincoln de Sousa, Valentino Volonghi, Olle Lundberg and Github user @acrish for providing the original patches to both Fabric and Paramiko.