[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.
[Feature] #615: Updated sudo to honor the new setting env.sudo_user as a default for its user kwarg.
[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] #633: Allow users to turn off host list deduping by setting env.dedupe_hosts to False. This enables running the same task multiple times on a single host, which was previously not possible.
[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] #640: (also #644) Update packaging manifest so sdist tarballs include all necessary test & doc files. Thanks to Mike Gilbert and @Arfrever for catch & patch.
[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] #646: Allow specification of which local streams to use when run/sudo print the remote stdout/stderr, via e.g. run("command", stderr=sys.stdout).
[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.
[Feature] #491: (also [Feature] #385:) IPv6 host string support. Thanks to Max Arnold for the patch.
[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] #725: Updated local to allow override of which local shell is used. Thanks to Mustafa Khattab.
[Feature] #723: Add the group= argument to sudo. Thanks to Antti Kaihola for the pull request.
[Feature] #761: Allow advanced users to parameterize fabric.main.main() to force loading of specific fabfiles.
[Feature] #578: Add name argument to task (docs) to allow overriding of the default “function name is task name” behavior. Thanks to Daniel Simmons for catch & patch.
[Feature] #665: (and #629) Update upload_template to have a more useful return value, namely that of its internal put call. Thanks to Miquel Torres for the catch & Rodrigue Alcazar for the patch.
[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.
[Support] #103: (via #748) Long standing Sphinx autodoc issue requiring error-prone duplication of function signatures in our API docs has been fixed. Thanks to Alex Morega for the patch.
[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.