Changelog¶
Next feature release
- [Support] #1229: Add some missing API doc hyperlink references. Thanks to Tony Narlock.
- [Support] #958: Remove the Git SHA portion of our version string generation; it was rarely useful & occasionally caused issues for users with non-Git-based source checkouts.
- [Support] #1213: Add useful exception message to the implicit
SystemExitraised by Fabric’s use ofsys.exitinside theabortfunction. This allows client code catchingSystemExitto have better introspection into the error. Thanks to Ioannis Panousis.
1.10.1 2014-12-19
- [Bug] #1226: Update
getto ensure thatenv.userhas access to tempfiles before changing permissions. Also corrected permissions from 404 to 0400 to match comment. Patch by Curtis Mattoon; original report from Daniel Watkins. - [Support] #1229: Add some missing API doc hyperlink references. Thanks to Tony Narlock.
- [Support] #958: Remove the Git SHA portion of our version string generation; it was rarely useful & occasionally caused issues for users with non-Git-based source checkouts.
- [Bug] #1180: Fix issue with unicode steam outputs crashing if stream encoding
type is None. Thanks to
@joekillerfor catch & patch. - [Bug] #1228: Update the
CommandTimeoutclass so it has a usefulstrinstead of appearing blank when caught by Fabric’s top level exception handling. Catch & patch from Tomaz Muraus. - [Support] #1213: Add useful exception message to the implicit
SystemExitraised by Fabric’s use ofsys.exitinside theabortfunction. This allows client code catchingSystemExitto have better introspection into the error. Thanks to Ioannis Panousis. - [Bug] #1019: (also #1022, #1186) Fix “is a tty” tests in
environments where streams (eg
sys.stdout) have been replaced with objects lacking a.isatty()method. Thanks to Miki Tebeka for the original report, Lele Long for a subsequent patch, and Julien Phalip for the final/merged patch. - [Bug] #1201: Don’t naively glob all
gettargets - only glob actual directories. This avoids incorrectly yielding permission errors in edge cases where a requested file is within a directory lacking the read permission bit. Thanks to Sassa Nf for the original report.
1.9.2 2014-12-19
- [Bug] #1226: Update
getto ensure thatenv.userhas access to tempfiles before changing permissions. Also corrected permissions from 404 to 0400 to match comment. Patch by Curtis Mattoon; original report from Daniel Watkins. - [Support] #1229: Add some missing API doc hyperlink references. Thanks to Tony Narlock.
- [Support] #958: Remove the Git SHA portion of our version string generation; it was rarely useful & occasionally caused issues for users with non-Git-based source checkouts.
- [Bug] #1180: Fix issue with unicode steam outputs crashing if stream encoding
type is None. Thanks to
@joekillerfor catch & patch. - [Bug] #1228: Update the
CommandTimeoutclass so it has a usefulstrinstead of appearing blank when caught by Fabric’s top level exception handling. Catch & patch from Tomaz Muraus. - [Support] #1213: Add useful exception message to the implicit
SystemExitraised by Fabric’s use ofsys.exitinside theabortfunction. This allows client code catchingSystemExitto have better introspection into the error. Thanks to Ioannis Panousis. - [Bug] #1019: (also #1022, #1186) Fix “is a tty” tests in
environments where streams (eg
sys.stdout) have been replaced with objects lacking a.isatty()method. Thanks to Miki Tebeka for the original report, Lele Long for a subsequent patch, and Julien Phalip for the final/merged patch. - [Bug] #1201: Don’t naively glob all
gettargets - only glob actual directories. This avoids incorrectly yielding permission errors in edge cases where a requested file is within a directory lacking the read permission bit. Thanks to Sassa Nf for the original report.
1.10.0 2014-09-04
[Feature] #975: Fabric can now be invoked via
python -m fabricin addition to the typical use of thefabentrypoint. Patch courtesy of Jason Coombs.Note
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_sudoandtemp_dirparams toget. This allows downloading files normally not accessible to the user usingsudo. Thanks to Jason Coombs for initial report and to Alex Plugaru for the patch (#1121).[Bug] #1188: Update
localto close non-pipe file descriptors in the child process so subsequent calls tolocalaren’t blocked on e.g. already-connected network sockets. Thanks to Tolbkni Kao for catch & patch.
1.9.1 2014-08-06
- [Bug] #1167: Add Jinja to
test_requiresinsetup.pyfor the couple of newish tests that now require it. Thanks to Kubilay Kocak for the catch. - [Bug] #600: Clear out connection caches in full when prepping parallel-execution subprocesses. This avoids corner cases causing hangs/freezes due to client/socket reuse. Thanks to Ruslan Lutsenko for the initial report and Romain Chossart for the suggested fix.
- [Bug] #1026: Fix a typo preventing quiet operation of
is_link. Caught by@dongweiming. - [Bug] #1059: Update IPv6 support to work with link-local address formats.
Fix courtesy of
@obormot. - [Bug] #1096: Encode Unicode text appropriately for its target stream object to avoid issues on non-ASCII systems. Thanks to Toru Uetani for the original patch.
- [Bug] #852: Fix to respect
template_dirfor non Jinja2 templates inupload_template. Thanks to Adam Kowalski for the patch and Alex Plugaru for the initial test case. - [Bug] #1134: Skip bad hosts when the tasks are executed in parallel. Thanks to
Igor Maravić
@i-maravic. - [Bug] #1146: Fix a bug where
upload_templatefailed to honorlcdwhenmirror_local_modeisTrue. Thanks to Laszlo Marai for catch & patch. - [Bug] #1147: Use
statinstead oflstatwhen testing directory-ness in the SFTP module. This allows recursive downloads to avoid recursing into symlinks unexpectedly. Thanks to Igor Kalnitsky for the patch. - [Bug] #1165: Prevent infinite loop condition when a gateway host is enabled &
the same host is in the regular target host list. Thanks to
@CzBiXfor catch & patch.
1.8.5 2014-08-06
- [Bug] #1167: Add Jinja to
test_requiresinsetup.pyfor the couple of newish tests that now require it. Thanks to Kubilay Kocak for the catch. - [Bug] #600: Clear out connection caches in full when prepping parallel-execution subprocesses. This avoids corner cases causing hangs/freezes due to client/socket reuse. Thanks to Ruslan Lutsenko for the initial report and Romain Chossart for the suggested fix.
- [Bug] #1026: Fix a typo preventing quiet operation of
is_link. Caught by@dongweiming. - [Bug] #1059: Update IPv6 support to work with link-local address formats.
Fix courtesy of
@obormot. - [Bug] #1096: Encode Unicode text appropriately for its target stream object to avoid issues on non-ASCII systems. Thanks to Toru Uetani for the original patch.
- [Bug] #852: Fix to respect
template_dirfor non Jinja2 templates inupload_template. Thanks to Adam Kowalski for the patch and Alex Plugaru for the initial test case. - [Bug] #1134: Skip bad hosts when the tasks are executed in parallel. Thanks to
Igor Maravić
@i-maravic. - [Bug] #1146: Fix a bug where
upload_templatefailed to honorlcdwhenmirror_local_modeisTrue. Thanks to Laszlo Marai for catch & patch. - [Bug] #1147: Use
statinstead oflstatwhen testing directory-ness in the SFTP module. This allows recursive downloads to avoid recursing into symlinks unexpectedly. Thanks to Igor Kalnitsky for the patch. - [Bug] #1165: Prevent infinite loop condition when a gateway host is enabled &
the same host is in the regular target host list. Thanks to
@CzBiXfor catch & patch.
1.7.5 2014-08-06
- [Bug] #1167: Add Jinja to
test_requiresinsetup.pyfor the couple of newish tests that now require it. Thanks to Kubilay Kocak for the catch. - [Bug] #600: Clear out connection caches in full when prepping parallel-execution subprocesses. This avoids corner cases causing hangs/freezes due to client/socket reuse. Thanks to Ruslan Lutsenko for the initial report and Romain Chossart for the suggested fix.
- [Bug] #1026: Fix a typo preventing quiet operation of
is_link. Caught by@dongweiming. - [Bug] #1059: Update IPv6 support to work with link-local address formats.
Fix courtesy of
@obormot. - [Bug] #1096: Encode Unicode text appropriately for its target stream object to avoid issues on non-ASCII systems. Thanks to Toru Uetani for the original patch.
- [Bug] #852: Fix to respect
template_dirfor non Jinja2 templates inupload_template. Thanks to Adam Kowalski for the patch and Alex Plugaru for the initial test case. - [Bug] #1134: Skip bad hosts when the tasks are executed in parallel. Thanks to
Igor Maravić
@i-maravic. - [Bug] #1146: Fix a bug where
upload_templatefailed to honorlcdwhenmirror_local_modeisTrue. Thanks to Laszlo Marai for catch & patch. - [Bug] #1147: Use
statinstead oflstatwhen testing directory-ness in the SFTP module. This allows recursive downloads to avoid recursing into symlinks unexpectedly. Thanks to Igor Kalnitsky for the patch. - [Bug] #1165: Prevent infinite loop condition when a gateway host is enabled &
the same host is in the regular target host list. Thanks to
@CzBiXfor catch & patch.
1.9.0 2014-06-08
- [Bug] #965: Tweak IO flushing behavior when in linewise (& thus
parallel) mode so interwoven output is less frequent. Thanks to
@akidatafor catch & patch. - [Feature] #741: Add env.prompts dictionary, allowing users to set up custom prompt responses (similar to the built-in sudo prompt auto-responder.) Thanks to Nigel Owens and David Halter for the patch.
- [Feature] #1082: Add
ptypassthrough kwarg toupload_template. - [Support]: Modified packaging data to reflect that Fabric requires Paramiko < 1.13 (which dropped Python 2.5 support.)
- [Support] #1105: Enhance
setup.pyto allow Paramiko 1.13+ under Python 2.6+. Thanks to to@Arfreverfor catch & patch. - [Support] #1106: Fix a misleading/ambiguous example snippet in the
fabusage docs to be clearer. Thanks to@zed. - [Feature] #1101: Reboot operation now supports custom command. Thanks to Jonas Lejon.
- [Feature] #938: Add an env var env.effective_roles specifying roles used in the currently executing command. Thanks to Piotr Betkier for the patch.
- [Feature] #1078: Add
.commandand.real_commandattributes tolocalreturn value. Thanks to Alexander Teves (@alexanderteves) and Konrad Hałas (@konradhalas).
1.8.4 2014-06-08
1.7.4 2014-06-08
1.8.3 2014-03-21
- [Support]: Modified packaging data to reflect that Fabric requires Paramiko < 1.13 (which dropped Python 2.5 support.)
1.7.3 2014-03-21
- [Support]: Modified packaging data to reflect that Fabric requires Paramiko < 1.13 (which dropped Python 2.5 support.)
1.8.2 2014-02-14
- [Bug] #1046: Fix typo preventing use of ProxyCommand in some situations. Thanks to Keith Yang.
- [Bug] #917: Correct an issue with
put(use_sudo=True, mode=xxx)where thechmodwas trying to apply to the wrong location. Thanks to Remco (@nl5887) for catch & patch. - [Bug] #955: Quote directories created as part of
put‘s recursive directory uploads whenuse_sudo=Trueso directories with shell meta-characters (such as spaces) work correctly. Thanks to John Harris for the catch.
1.7.2 2014-02-14
- [Bug] #1046: Fix typo preventing use of ProxyCommand in some situations. Thanks to Keith Yang.
- [Bug] #917: Correct an issue with
put(use_sudo=True, mode=xxx)where thechmodwas trying to apply to the wrong location. Thanks to Remco (@nl5887) for catch & patch. - [Bug] #955: Quote directories created as part of
put‘s recursive directory uploads whenuse_sudo=Trueso directories with shell meta-characters (such as spaces) work correctly. Thanks to John Harris for the catch.
1.8.1 2013-12-24
- [Bug] #948: Handle connection failures due to server load and try connecting to hosts a number of times specified in env.connection_attempts.
- [Bug] #957: Fix bug preventing use of env.gateway with
targets requiring password authentication. Thanks to Daniel González,
@Bengruntand@adrianbnfor their bug reports. - [Bug] #956: Fix pty size detection when running inside Emacs. Thanks to
@akitadafor catch & patch.
1.7.1 2013-12-24
- [Support] #984: Make this changelog easier to read! Now with per-release sections, generated automatically from the old timeline source format.
- [Bug] #948: Handle connection failures due to server load and try connecting to hosts a number of times specified in env.connection_attempts.
- [Bug] #957: Fix bug preventing use of env.gateway with
targets requiring password authentication. Thanks to Daniel González,
@Bengruntand@adrianbnfor their bug reports. - [Bug] #956: Fix pty size detection when running inside Emacs. Thanks to
@akitadafor catch & patch.
1.6.4 2013-12-24
1.5.5 2013-12-24
1.8.0 2013-09-20
- [Feature] #910: Added a keyword argument to rsync_project to configure the
default options. Thanks to
@moorepantsfor the patch. - [Support] #984: Make this changelog easier to read! Now with per-release sections, generated automatically from the old timeline source format.
- [Feature] #931: Allow overriding of
abortbehavior via a custom exception-returning callable set as env.abort_exception. Thanks to Chris Rose for the patch.
1.7.0 2013-07-26
- [Feature] #845: Downstream synchronization option implemented for
rsync_project. Thanks to Antonio Barrero for the patch. - [Bug] #84: Fixed problem with missing -r flag in Mac OS X sed version. Thanks to Konrad Hałas for the patch.
- [Bug] #864: Allow users to disable Fabric’s auto-escaping in
run/sudo. Thanks to Christian Long and Michael McHugh for the patch. - [Feature] #812: Add
use_globoption toputso users trying to upload real filenames containing glob patterns (*,[etc) can disable the default globbing behavior. Thanks to Michael McHugh for the patch. - [Bug] #694: Allow users to work around ownership issues in the default
remote login directory: add
temp_dirkwarg for explicit specification of which “bounce” folder to use when callingputwithuse_sudo=True. Thanks to Devin Bayer for the report & Dieter Plaetinck / Jesse Myers for suggesting the workaround. - [Feature] #826: Enable sudo extraction of compressed archive via
use_sudokwarg inupload_project. Thanks to@abecfor the patch. - [Feature] #908: Support loading SSH keys from memory. Thanks to Caleb Groom for the patch.
- [Feature] #924: Add new env var option colorize-errors to enable coloring errors and warnings. Thanks to Aaron Meurer for the patch.
- [Feature] #922: Task argument strings are now displayed when using
fab -d. Thanks to Kevin Qiu for the patch. - [Feature] #925: Added
contrib.files.is_link. Thanks to@jtangasfor the patch.
1.6.2 2013-07-26
- [Bug] #882: Fix a
getbug regarding spaces in remote working directory names. Thanks to Chris Rose for catch & patch. - [Bug] #884: The password cache feature was not working correctly with password-requiring SSH gateway connections. That’s fixed now. Thanks to Marco Nenciarini for the catch.
- [Bug] #171: Added missing cross-references from
envvariables documentation to corresponding command-line options. Thanks to Daniel D. Beck for the contribution. - [Bug] #593: Non-ASCII character sets in Jinja templates rendered within
upload_templatewould causeUnicodeDecodeErrorwhen uploaded. This has been addressed by encoding asutf-8prior to upload. Thanks to Sébastien Fievet for the catch. - [Bug] #912: Leaving
template_dirun-specified when usingupload_templatein Jinja mode used to cause'NoneType' has no attribute 'startswith'errors. This has been fixed. Thanks to Erick Yellott for catch & to Erick Yellott + Kevin Williams for patches.
1.6.1 2013-05-23
- [Feature] #845: Downstream synchronization option implemented for
rsync_project. Thanks to Antonio Barrero for the patch. - [Bug] #367: Expand paths with tilde inside (
contrib.files). Thanks to Konrad Hałas for catch & patch. - [Bug] #861: Gracefully handle situations where users give a single string
literal to
env.hosts. Thanks to Bill Tucker for catch & patch. - [Bug] #871: Use of string mode values in
put(local, remote, mode="NNNN")would sometimes causeUnsupported operanderrors. This has been fixed. - [Bug] #870: Changes to shell env var escaping highlighted some extraneous and
now damaging whitespace in
with path():. This has been removed and a regression test added. - [Bug] #328:
lcdwas no longer being correctly applied toupload_template; this has been fixed. Thanks to Joseph Lawson for the catch. - [Bug] #868: Substantial speedup of parallel tasks by removing an unnecessary
blocking timeout in the
JobQueueloop. Thanks to Simo Kinnunen for the patch.
1.6.0 2013-03-01
- [Feature] #249: Allow specification of remote command timeout value by setting env.command_timeout. Thanks to Paul McMillan for suggestion & initial patch.
- [Feature] #787: Utilize new Paramiko feature allowing us to skip the use of
temporary local files when using file-like objects in
get/put. - [Feature] #735: Add
ok_ret_codesoption toenvto allow alternate return codes to be treated os “ok”. Thanks to Andy Kraut for the pull request. - [Feature] #706: Added env.tasks, returning list of tasks to
be executed by current
fabcommand. - [Feature] #818: Added env.eagerly_disconnect option to help prevent pile-up of many open connections.
- [Feature] #730: Add env.system_known_hosts/–system-known-hosts to allow loading a user-specified system-level SSH
known_hostsfile. Thanks to Roy Smith for the patch. - [Bug] #703: Add a
shellkwarg to many methods infilesto help avoid conflicts withcdand similar. Thanks to@mikekfor the patch. - [Feature] #402: Attempt to detect stale SSH sessions and reconnect when they
arise. Thanks to
@webengineerfor the patch. - [Feature] #823: Add env.remote_interrupt which controls whether Ctrl-C is forwarded to the remote end or is captured locally (previously, only the latter behavior was implemented). Thanks to Geert Jansen for the patch.
- [Feature] #821: Add
remote_tunnelto allow reverse SSH tunneling (exposing locally-visible network ports to the remote end). Thanks to Giovanni Bajo for the patch.
1.5.4 2013-03-01
- [Bug] #587: Warn instead of aborting when env.use_ssh_config is True but the configured SSH conf file doesn’t exist. This allows multi-user fabfiles to enable SSH config without causing hard stops for users lacking SSH configs. Thanks to Rodrigo Pimentel for the report.
- [Bug] #839: Fix bug in
rsync_projectwhere IPv6 address were not always correctly detected. Thanks to Antonio Barrero for catch & patch. - [Bug] #843: Ensure string
pool_sizevalues get run throughint()before deriving final result (stdlibmin()has odd behavior here...). Thanks to Chris Kastorff for the catch. - [Bug] #844: Account for SSH config overhaul in Paramiko 1.10 by e.g. updating
treatment of
IdentityFileto handle multiple values. This and related SSH config parsing changes are backwards incompatible; we are including them in this release because they do fix incorrect, off-spec behavior.
1.5.3 2013-01-28
- [Bug] #791: Cast
reboot‘swaitparameter to a numeric type in case the caller submitted a string by mistake. Thanks to Thomas Schreiber for the patch. - [Bug] #654: Parallel runs whose sum total of returned data was large (e.g. large return values from the task, or simply a large number of hosts in the host list) were causing frustrating hangs. This has been fixed.
- [Bug] #805: Update
shell_envto play nice with Windows (7, at least) systems andlocal. Thanks to Fernando Macedo for the patch. - [Bug] #806: Force strings given to
getpassduring password prompts to be ASCII, to prevent issues on some platforms when Unicode is encountered. Thanks to Alex Louden for the patch.
1.5.2 2013-01-15
- [Bug]: Added current host string to prompt abort error messages.
- [Bug] #775: Shell escaping was incorrectly applied to the value of
$PATHupdates in our shell environment handling, causing (at the very least)localbinary paths to become inoperable in certain situations. This has been fixed. - [Bug] #792: The newish
shell_envcontext manager was incorrectly omitted from thefabric.apiimport endpoint. This has been remedied. Thanks to Vishal Rana for the catch. - [Bug] #604: Fixed wrong treatment of backslashes in put operation when uploading
directory tree on Windows. Thanks to Jason Coombs for the catch and
@diresys& Oliver Janik for the patch. for the patch. - [Bug] #766: Use the variable name of a new-style
fabric.tasks.Tasksubclass object when the object name attribute is undefined. Thanks to@todddelucafor the patch.
1.5.1 2012-11-15
1.5.0 2012-11-06
[Feature] #615: Updated
sudoto honor the new setting env.sudo_user as a default for itsuserkwarg.[Support] #626: Clarity updates to the tutorial. Thanks to GitHub user
m4zfor the patches.[Support] #634: Clarified that
lcddoes no special handling re: the user’s current working directory, and thus relative paths given to it will be relative toos.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
quietandwarn_onlykeyword arguments torun/sudowhich are aliases forsettings(hide('everything'), warn_only=True)andsettings(warn_only=True), respectively. (Also added correspondingcontextmanagers.) 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
@Arfreverfor 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
@Arfreverfor the catch.[Feature] #646: Allow specification of which local streams to use when
run/sudoprint the remote stdout/stderr, via e.g.run("command", stderr=sys.stdout).[Feature] #241: Add the command executed as a
.commandattribute to the return value ofrun/sudo. (Also includes a second attribute containing the “real” command executed, including the shell wrapper and any escaping.)[Support] #651: Added note about nesting
withstatements 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/sudoadded in the form of theshell_envcontext 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_oncewhich 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:
requirefailed 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:
getwould fail when filenames had % in their path. Thanks to John Begeman[Feature] #699: Allow
nameattribute 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
printstatements to be forwards compatible. Thanks to Francesco Del Degan for the patch.[Feature] #725: Updated
localto allow override of which local shell is used. Thanks to Mustafa Khattab.[Feature] #723: Add the
group=argument tosudo. 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
nameargument totask(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_templateto have a more useful return value, namely that of its internalputcall. Thanks to Miquel Torres for the catch & Rodrigue Alcazar for the patch.[Feature] #763: Add
--initial-password-promptto 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.nestedby 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
taskwraps 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
@acrishfor providing the original patches to both Fabric and Paramiko.
- Thanks in no particular order to Erwin Bolwidt, Oskari Saarenmaa, Steven
Noonan, Vladimir Lazarenko, Lincoln de Sousa, Valentino Volonghi, Olle
Lundberg and Github user
1.4.4 2012-11-06
- [Support] #681: Fixed outdated docstring for
runs_oncewhich 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] #693: Fixed edge case where
abortdriven failures within parallel tasks could result in a top level exception (aKeyError) regarding error handling. Thanks to Marcin Kuźmiński for the report. - [Bug] #718:
isinstance(foo, Bar)is used inmaininstead oftype(foo) == Barin order to fix some edge cases. Thanks to Mikhail Korobov. - [Bug] #749: Gracefully work around calls to
fabric.versionon systems lacking/bin/sh(which causes anOSErrorinsubprocess.Popencalls.) - [Feature] #684: (also #569) Update how
taskwraps task functions to preserve additional metadata; this allows decorated functions to play nice with Sphinx autodoc. Thanks to Jaka Hudoklin for catch & patch.
1.4.3 2012-07-06
- [Support] #634: Clarified that
lcddoes no special handling re: the user’s current working directory, and thus relative paths given to it will be relative toos.getcwd(). Thanks to @techtonik for the catch. - [Support] #640: (also #644) Update packaging manifest so
sdist tarballs include all necessary test & doc files. Thanks to Mike Gilbert
and
@Arfreverfor 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
@Arfreverfor the catch. - [Bug] #649: Don’t swallow non-
abort-driven exceptions in parallel mode. Fabric correctly printed such exceptions, and returned them fromexecute, but did not actually cause the child or parent processes to halt with a nonzero status. This has been fixed.executenow also honors env.warn_only so users may still opt to call it by hand and inspect the returned exceptions, instead of encountering a hard stop. Thanks to Matt Robenolt for the catch. - [Support] #651: Added note about nesting
withstatements on Python 2.6+. Thanks to Jens Rantil for the patch. - [Bug] #652: Show available commands when aborting on invalid command names.
- [Bug] #659: Update docs to reflect that
localcurrently honors env.path. Thanks to @floledermann for the catch. - [Bug] #671: reject-unknown-hosts sometimes resulted in a password prompt instead of an abort. This has been fixed. Thanks to Roy Smith for the report.
1.3.8 2012-07-06
- [Support] #634: Clarified that
lcddoes no special handling re: the user’s current working directory, and thus relative paths given to it will be relative toos.getcwd(). Thanks to @techtonik for the catch. - [Support] #640: (also #644) Update packaging manifest so
sdist tarballs include all necessary test & doc files. Thanks to Mike Gilbert
and
@Arfreverfor 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
@Arfreverfor the catch. - [Bug] #649: Don’t swallow non-
abort-driven exceptions in parallel mode. Fabric correctly printed such exceptions, and returned them fromexecute, but did not actually cause the child or parent processes to halt with a nonzero status. This has been fixed.executenow also honors env.warn_only so users may still opt to call it by hand and inspect the returned exceptions, instead of encountering a hard stop. Thanks to Matt Robenolt for the catch. - [Support] #651: Added note about nesting
withstatements on Python 2.6+. Thanks to Jens Rantil for the patch. - [Bug] #652: Show available commands when aborting on invalid command names.
- [Bug] #659: Update docs to reflect that
localcurrently honors env.path. Thanks to @floledermann for the catch. - [Bug] #671: reject-unknown-hosts sometimes resulted in a password prompt instead of an abort. This has been fixed. Thanks to Roy Smith for the report.
1.4.2 2012-05-07
- [Bug] #610: Change detection of
env.key_filename‘s type (added as part of SSH config support in 1.4) so it supports arbitrary iterables. Thanks to Brandon Rhodes for the catch. - [Bug] #609: (and #564) Document and clean up env.sudo_prefix so it can be more easily modified by users facing uncommon
use cases. Thanks to GitHub users
3point2for the cleanup andSirScottfor the documentation catch. - [Bug] #616: Add port number to the error message displayed upon connection failures.
- [Bug] #617: Fix the
clean_revertbehavior ofsettingsso it doesn’tKeyErrorfor newly created settings keys. Thanks to Chris Streeter for the catch. - [Bug] #624: Login password prompts did not always display the username being authenticated for. This has been fixed. Thanks to Nick Zalutskiy for catch & patch.
- [Bug] #625:
hide/showdid not correctly restore prior display settings if an exception was raised inside the block. This has been fixed. - [Support] #626: Clarity updates to the tutorial. Thanks to GitHub
user
m4zfor the patches. - [Bug] #562: Agent forwarding would error out or freeze when multiple uses of
the forwarded agent were used per remote invocation (e.g. a single
runcommand resulting in multiple Git or SVN checkouts.) This has been fixed thanks to Steven McDonald and GitHub user@lynxis.
1.3.7 2012-05-07
- [Bug] #610: Change detection of
env.key_filename‘s type (added as part of SSH config support in 1.4) so it supports arbitrary iterables. Thanks to Brandon Rhodes for the catch. - [Bug] #609: (and #564) Document and clean up env.sudo_prefix so it can be more easily modified by users facing uncommon
use cases. Thanks to GitHub users
3point2for the cleanup andSirScottfor the documentation catch. - [Bug] #616: Add port number to the error message displayed upon connection failures.
- [Bug] #617: Fix the
clean_revertbehavior ofsettingsso it doesn’tKeyErrorfor newly created settings keys. Thanks to Chris Streeter for the catch. - [Bug] #624: Login password prompts did not always display the username being authenticated for. This has been fixed. Thanks to Nick Zalutskiy for catch & patch.
- [Bug] #625:
hide/showdid not correctly restore prior display settings if an exception was raised inside the block. This has been fixed. - [Support] #626: Clarity updates to the tutorial. Thanks to GitHub
user
m4zfor the patches. - [Bug] #562: Agent forwarding would error out or freeze when multiple uses of
the forwarded agent were used per remote invocation (e.g. a single
runcommand resulting in multiple Git or SVN checkouts.) This has been fixed thanks to Steven McDonald and GitHub user@lynxis.
1.4.1 2012-04-04
- [Bug] #306: Remote paths now use posixpath for a separator. Thanks to Jason Coombs for the patch.
- [Bug] #572: Parallel task aborts (as oppposed to unhandled exceptions) now correctly print their abort messages instead of tracebacks, and cause the parent process to exit with the correct (nonzero) return code. Thanks to Ian Langworth for the catch.
- [Bug] #551:
--listoutput now detects terminal window size and truncates (or doesn’t truncate) accordingly. Thanks to Horacio G. de Oro for the initial pull request. - [Bug] #499:
contrib.files.firstused an outdated function signature in its wrappedexistscall. This has been fixed. Thanks to Massimiliano Torromeo for catch & patch. - [Bug] #458:
with_settingsdid not perfectly matchsettings, re: ability to inline additional context managers. This has been corrected. Thanks to Rory Geoghegan for the patch. - [Bug] #584:
upload_projectdid not take explicit remote directory location into account when untarring, and now usescdto address this. Thanks to Ben Burry for the patch. - [Bug] #568:
executeallowed too much of its internal state changes (to variables such asenv.host_stringandenv.parallel) to persist after execution completed; this caused a number of different incorrect behaviors.executehas been overhauled to clean up its own state changes – while preserving any state changes made by the task being executed. - [Bug] #395: Added an FAQ entry detailing how to handle init scripts which misbehave when a pseudo-tty is allocated.
- [Bug] #607: Allow
localto display stdout/stderr when it warns/aborts, if it was capturing them. - [Bug] #608: Add
capturekwarg torsync_projectto aid in debugging rsync problems.
1.3.6 2012-04-04
- [Bug] #306: Remote paths now use posixpath for a separator. Thanks to Jason Coombs for the patch.
- [Bug] #572: Parallel task aborts (as oppposed to unhandled exceptions) now correctly print their abort messages instead of tracebacks, and cause the parent process to exit with the correct (nonzero) return code. Thanks to Ian Langworth for the catch.
- [Bug] #551:
--listoutput now detects terminal window size and truncates (or doesn’t truncate) accordingly. Thanks to Horacio G. de Oro for the initial pull request. - [Bug] #499:
contrib.files.firstused an outdated function signature in its wrappedexistscall. This has been fixed. Thanks to Massimiliano Torromeo for catch & patch. - [Bug] #458:
with_settingsdid not perfectly matchsettings, re: ability to inline additional context managers. This has been corrected. Thanks to Rory Geoghegan for the patch. - [Bug] #584:
upload_projectdid not take explicit remote directory location into account when untarring, and now usescdto address this. Thanks to Ben Burry for the patch. - [Bug] #568:
executeallowed too much of its internal state changes (to variables such asenv.host_stringandenv.parallel) to persist after execution completed; this caused a number of different incorrect behaviors.executehas been overhauled to clean up its own state changes – while preserving any state changes made by the task being executed. - [Bug] #395: Added an FAQ entry detailing how to handle init scripts which misbehave when a pseudo-tty is allocated.
- [Bug] #607: Allow
localto display stdout/stderr when it warns/aborts, if it was capturing them. - [Bug] #608: Add
capturekwarg torsync_projectto aid in debugging rsync problems.
1.4.0 2012-02-13
- [Support] #467: (also #468, #469) Handful of documentation clarification tweaks. Thanks to Paul Hoffman for the patches.
- [Support] #459: Update our
setup.pyfiles to note that PyCrypto released 2.4.1, which fixes the setuptools problems. - [Feature] #72: SSH agent forwarding support has made it into Fabric’s SSH
library, and hooks for using it have been added (disabled by default; use
-Aor env.forward_agent to enable.) Thanks to Ben Davis for porting an existing Paramiko patch tosshand providing the necessary tweak to Fabric. - [Feature] #506: A new output alias,
commands, has been added, which allows hiding remote stdout and local “running command X” output lines. - [Feature] #13: Env vars may now be set at runtime via the new
--setcommand-line flag. - [Feature] #8: Added
--skip-bad-hosts/env.skip_bad_hosts option to allow skipping past temporarily down/unreachable hosts. - [Support] #532: Reorganized and cleaned up the output of
fab --help. - [Bug] #487: Overhauled the regular expression escaping performed in
appendandcontainsto try and handle more corner cases. Thanks to Neilen Marais for the patch. - [Feature] #474:
executenow allows you to access the executed task’s return values, by itself returning a dictionary whose keys are the host strings executed against. - [Feature] #12: Added the ability to try connecting multiple times to
temporarily-down remote systems, instead of immediately failing. (Default
behavior is still to only try once.) See env.timeout and
env.connection_attempts for controlling both
connection timeouts and total number of attempts.
reboothas also been overhauled (but practically deprecated – see its updated docs.) - [Feature] #3: Fabric can now load a subset of SSH config functionality
directly from your local
~/.ssh/configif env.use_ssh_config is set toTrue. See ssh-config for details. Thanks to Kirill Pinchuk for the initial patch. - [Feature] #138: env.port may now be written to at fabfile module level to set a default nonstandard port number. Previously this value was read-only.
- [Feature] #559:
rsync_projectnow allows users to append extra SSH-specific arguments torsync‘s--rshflag.
1.3.5 2012-02-13
- [Bug] #410: Fixed a bug where using the
taskdecorator inside/under another decorator such ashostscould cause that task to become invalid when invoked by name (due to how old-style vs new-style tasks are detected.) Thanks to Dan Colish for the initial patch. - [Bug] #495: Fixed documentation example showing how to subclass
Task. Thanks to Brett Haydon for the catch and Mark Merritt for the patch.
1.2.6 2012-02-13
- [Bug] #339: Don’t show imported
colorsmembers in--listoutput. Thanks to Nick Trew for the report. - [Bug] #494: Fixed regression bug affecting some
envvalues such asenv.portunder parallel mode. Symptoms includedrsync_projectbailing out due to a None port value when run under@parallel. Thanks to Rob Terhaar for the report. - [Bug] #510: Parallel mode is incompatible with user input, such as
password/hostname prompts, and was causing cryptic
Operation not supported by deviceerrors when such prompts needed to be displayed. This behavior has been updated to cleanly and obviouslyabortinstead. - [Bug] #492:
@paralleldid not automatically trigger linewise output, as was intended. This has been fixed. Thanks to Brandon Huey for the catch. - [Bug] #410: Fixed a bug where using the
taskdecorator inside/under another decorator such ashostscould cause that task to become invalid when invoked by name (due to how old-style vs new-style tasks are detected.) Thanks to Dan Colish for the initial patch. - [Bug] #495: Fixed documentation example showing how to subclass
Task. Thanks to Brett Haydon for the catch and Mark Merritt for the patch.
1.1.8 2012-02-13
- [Bug] #339: Don’t show imported
colorsmembers in--listoutput. Thanks to Nick Trew for the report. - [Bug] #494: Fixed regression bug affecting some
envvalues such asenv.portunder parallel mode. Symptoms includedrsync_projectbailing out due to a None port value when run under@parallel. Thanks to Rob Terhaar for the report. - [Bug] #510: Parallel mode is incompatible with user input, such as
password/hostname prompts, and was causing cryptic
Operation not supported by deviceerrors when such prompts needed to be displayed. This behavior has been updated to cleanly and obviouslyabortinstead. - [Bug] #492:
@paralleldid not automatically trigger linewise output, as was intended. This has been fixed. Thanks to Brandon Huey for the catch. - [Bug] #410: Fixed a bug where using the
taskdecorator inside/under another decorator such ashostscould cause that task to become invalid when invoked by name (due to how old-style vs new-style tasks are detected.) Thanks to Dan Colish for the initial patch. - [Bug] #495: Fixed documentation example showing how to subclass
Task. Thanks to Brett Haydon for the catch and Mark Merritt for the patch.
1.3.4 2012-01-12
- [Bug] #339: Don’t show imported
colorsmembers in--listoutput. Thanks to Nick Trew for the report. - [Bug] #494: Fixed regression bug affecting some
envvalues such asenv.portunder parallel mode. Symptoms includedrsync_projectbailing out due to a None port value when run under@parallel. Thanks to Rob Terhaar for the report. - [Bug] #510: Parallel mode is incompatible with user input, such as
password/hostname prompts, and was causing cryptic
Operation not supported by deviceerrors when such prompts needed to be displayed. This behavior has been updated to cleanly and obviouslyabortinstead. - [Bug] #492:
@paralleldid not automatically trigger linewise output, as was intended. This has been fixed. Thanks to Brandon Huey for the catch.
1.3.3 2011-11-23
- [Bug] #230: Fix regression re: combo of no fabfile & arbitrary command use. Thanks to Ali Saifee for the catch.
- [Bug] #482: Parallel mode should imply linewise output; omission of this behavior was an oversight.
- [Bug] #342: Combining
cdwithputand itsuse_sudokeyword caused an unrecoverable error. This has been fixed. Thanks to Egor M for the report. - [Bug] #341:
appendincorrectly failed to detect that the line(s) given already existed in files hidden to the remote user, and continued appending every time it ran. This has been fixed. Thanks to Dominique Peretti for the catch and Martin Vilcans for the patch. - [Bug] #397: Some poorly behaved objects in third party modules triggered exceptions during Fabric’s “classic or new-style task?” test. A fix has been added which tries to work around these.
- [Bug] #400: Handle corner case of systems where
pwd.getpwuidraisesKeyErrorfor the user’s UID instead of returning a valid string. Thanks to Dougal Matthews for the catch. - [Bug] #437:
with_settingsnow correctly preserves the wrapped function’s docstring and other attributes. Thanks to Eric Buckley for the catch and Luke Plant for the patch. - [Bug] #443:
existsdidn’t expand tildes; now it does. Thanks to Riccardo Magliocchetti for the patch. - [Bug] #446: Add QNX to list of secondary-case
sedtargets. Thanks to Rodrigo Madruga for the tip. - [Bug] #450: Improve traceback display when handling
ImportErrorfor dependencies. Thanks to David Wolever for the patches. - [Bug] #475: Allow escaping of equals signs in per-task args/kwargs.
- [Bug] #441: Specifying a task module as a task on the command line no longer blows up but presents the usual “no task by that name” error message instead. Thanks to Mitchell Hashimoto for the catch.
1.2.5 2011-11-23
- [Bug] #230: Fix regression re: combo of no fabfile & arbitrary command use. Thanks to Ali Saifee for the catch.
- [Bug] #482: Parallel mode should imply linewise output; omission of this behavior was an oversight.
- [Bug] #342: Combining
cdwithputand itsuse_sudokeyword caused an unrecoverable error. This has been fixed. Thanks to Egor M for the report. - [Bug] #341:
appendincorrectly failed to detect that the line(s) given already existed in files hidden to the remote user, and continued appending every time it ran. This has been fixed. Thanks to Dominique Peretti for the catch and Martin Vilcans for the patch. - [Bug] #397: Some poorly behaved objects in third party modules triggered exceptions during Fabric’s “classic or new-style task?” test. A fix has been added which tries to work around these.
- [Bug] #400: Handle corner case of systems where
pwd.getpwuidraisesKeyErrorfor the user’s UID instead of returning a valid string. Thanks to Dougal Matthews for the catch. - [Bug] #437:
with_settingsnow correctly preserves the wrapped function’s docstring and other attributes. Thanks to Eric Buckley for the catch and Luke Plant for the patch. - [Bug] #443:
existsdidn’t expand tildes; now it does. Thanks to Riccardo Magliocchetti for the patch. - [Bug] #446: Add QNX to list of secondary-case
sedtargets. Thanks to Rodrigo Madruga for the tip. - [Bug] #450: Improve traceback display when handling
ImportErrorfor dependencies. Thanks to David Wolever for the patches. - [Bug] #475: Allow escaping of equals signs in per-task args/kwargs.
- [Bug] #441: Specifying a task module as a task on the command line no longer blows up but presents the usual “no task by that name” error message instead. Thanks to Mitchell Hashimoto for the catch.
1.1.7 2011-11-23
- [Bug] #230: Fix regression re: combo of no fabfile & arbitrary command use. Thanks to Ali Saifee for the catch.
- [Bug] #482: Parallel mode should imply linewise output; omission of this behavior was an oversight.
- [Bug] #342: Combining
cdwithputand itsuse_sudokeyword caused an unrecoverable error. This has been fixed. Thanks to Egor M for the report. - [Bug] #341:
appendincorrectly failed to detect that the line(s) given already existed in files hidden to the remote user, and continued appending every time it ran. This has been fixed. Thanks to Dominique Peretti for the catch and Martin Vilcans for the patch. - [Bug] #397: Some poorly behaved objects in third party modules triggered exceptions during Fabric’s “classic or new-style task?” test. A fix has been added which tries to work around these.
- [Bug] #400: Handle corner case of systems where
pwd.getpwuidraisesKeyErrorfor the user’s UID instead of returning a valid string. Thanks to Dougal Matthews for the catch. - [Bug] #437:
with_settingsnow correctly preserves the wrapped function’s docstring and other attributes. Thanks to Eric Buckley for the catch and Luke Plant for the patch. - [Bug] #443:
existsdidn’t expand tildes; now it does. Thanks to Riccardo Magliocchetti for the patch. - [Bug] #446: Add QNX to list of secondary-case
sedtargets. Thanks to Rodrigo Madruga for the tip. - [Bug] #450: Improve traceback display when handling
ImportErrorfor dependencies. Thanks to David Wolever for the patches. - [Bug] #475: Allow escaping of equals signs in per-task args/kwargs.
- [Bug] #441: Specifying a task module as a task on the command line no longer blows up but presents the usual “no task by that name” error message instead. Thanks to Mitchell Hashimoto for the catch.
1.3.2 2011-11-07
1.2.4 2011-11-07
- [Bug] #457: Ensured that Fabric fast-fails parallel tasks if any child
processes encountered errors. Previously, multi-task invocations would
continue to the 2nd, etc task when failures occurred, which does not fit with
how Fabric usually behaves. Thanks to Github user
sdcookefor the report and Morgan Goose for the fix. - [Support] #467: (also #468, #469) Handful of documentation clarification tweaks. Thanks to Paul Hoffman for the patches.
- [Support] #459: Update our
setup.pyfiles to note that PyCrypto released 2.4.1, which fixes the setuptools problems.
1.1.6 2011-11-07
- [Bug] #457: Ensured that Fabric fast-fails parallel tasks if any child
processes encountered errors. Previously, multi-task invocations would
continue to the 2nd, etc task when failures occurred, which does not fit with
how Fabric usually behaves. Thanks to Github user
sdcookefor the report and Morgan Goose for the fix. - [Support] #467: (also #468, #469) Handful of documentation clarification tweaks. Thanks to Paul Hoffman for the patches.
- [Support] #459: Update our
setup.pyfiles to note that PyCrypto released 2.4.1, which fixes the setuptools problems.
1.3.1 2011-10-24
- [Bug] #457: Ensured that Fabric fast-fails parallel tasks if any child
processes encountered errors. Previously, multi-task invocations would
continue to the 2nd, etc task when failures occurred, which does not fit with
how Fabric usually behaves. Thanks to Github user
sdcookefor the report and Morgan Goose for the fix.
1.3.0 2011-10-23
- [Support] #416: Updated documentation to reflect move from Redmine to Github.
- [Support] #393: Fixed a typo in an example code snippet in the task docs. Thanks to Hugo Garza for the catch.
- [Feature] #19: Tasks may now be optionally executed in parallel. Please see the parallel execution docs for details. Major thanks to Morgan Goose for the initial implementation.
- [Feature] #21: It is now possible, using the new
executeAPI call, to execute task objects (by reference or by name) from within other tasks or in library mode.executehonors the other tasks’hosts/rolesdecorators, and also supports passing in explicit host and/or role arguments. - [Support] #275: To support an edge use case of the features released in #19, and to lay the foundation for #275, we have forked Paramiko into the Python ‘ssh’ library and changed our dependency to it for Fabric 1.3 and higher. This may have implications for the more uncommon install use cases, and package maintainers, but we hope to iron out any issues as they come up.
1.2.3 2011-10-23
- [Bug] #430: Tasks decorated with
runs_onceprinted extraneous ‘Executing...’ status lines on subsequent invocations. This is noisy at best and misleading at worst, and has been corrected. Thanks to Jacob Kaplan-Moss for the report. - [Bug] #182: During display of remote stdout/stderr, Fabric occasionally printed extraneous line prefixes (which in turn sometimes overwrote wrapped text.) This has been fixed.
- [Bug] #323:
putforgot how to expand leading tildes in the remote file path. This has been corrected. Thanks to Piet Delport for the catch.
1.1.5 2011-10-23
- [Bug] #430: Tasks decorated with
runs_onceprinted extraneous ‘Executing...’ status lines on subsequent invocations. This is noisy at best and misleading at worst, and has been corrected. Thanks to Jacob Kaplan-Moss for the report. - [Bug] #182: During display of remote stdout/stderr, Fabric occasionally printed extraneous line prefixes (which in turn sometimes overwrote wrapped text.) This has been fixed.
- [Bug] #323:
putforgot how to expand leading tildes in the remote file path. This has been corrected. Thanks to Piet Delport for the catch.
1.0.5 2011-10-23
- [Bug] #430: Tasks decorated with
runs_onceprinted extraneous ‘Executing...’ status lines on subsequent invocations. This is noisy at best and misleading at worst, and has been corrected. Thanks to Jacob Kaplan-Moss for the report. - [Bug] #182: During display of remote stdout/stderr, Fabric occasionally printed extraneous line prefixes (which in turn sometimes overwrote wrapped text.) This has been fixed.
- [Bug] #323:
putforgot how to expand leading tildes in the remote file path. This has been corrected. Thanks to Piet Delport for the catch.
1.2.2 2011-09-01
- [Bug] #303: Updated terminal size detection to correctly skip over non-tty
stdout, such as when running
fab taskname | other_command. - [Bug] #373: Re-added missing functionality preventing host exclusion from working correctly.
- [Bug] #396:
--shortlistbroke after the addition of--list-formatand no longer displayed the short list format correctly. This has been fixed. - [Support] #393: Fixed a typo in an example code snippet in the task docs. Thanks to Hugo Garza for the catch.
- [Bug] #252:
settingswould silently fail to setenvvalues for keys which did not exist outside the context manager block. It now works as expected. Thanks to Will Maier for the catch and suggested solution.
1.1.4 2011-09-01
- [Bug] #303: Updated terminal size detection to correctly skip over non-tty
stdout, such as when running
fab taskname | other_command. - [Bug] #373: Re-added missing functionality preventing host exclusion from working correctly.
- [Bug] #396:
--shortlistbroke after the addition of--list-formatand no longer displayed the short list format correctly. This has been fixed. - [Support] #393: Fixed a typo in an example code snippet in the task docs. Thanks to Hugo Garza for the catch.
- [Bug] #252:
settingswould silently fail to setenvvalues for keys which did not exist outside the context manager block. It now works as expected. Thanks to Will Maier for the catch and suggested solution.
1.0.4 2011-09-01
- [Bug] #303: Updated terminal size detection to correctly skip over non-tty
stdout, such as when running
fab taskname | other_command. - [Bug] #373: Re-added missing functionality preventing host exclusion from working correctly.
- [Bug] #396:
--shortlistbroke after the addition of--list-formatand no longer displayed the short list format correctly. This has been fixed. - [Support] #393: Fixed a typo in an example code snippet in the task docs. Thanks to Hugo Garza for the catch.
- [Bug] #252:
settingswould silently fail to setenvvalues for keys which did not exist outside the context manager block. It now works as expected. Thanks to Will Maier for the catch and suggested solution.
1.2.1 2011-08-21
- [Bug] #389: Fixed/improved error handling when Paramiko import fails. Thanks to Brian Luft for the catch.
- [Support] #416: Updated documentation to reflect move from Redmine to Github.
- [Bug] #417: abort-on-prompts would incorrectly abort when set to True, even if both password and host were defined. This has been fixed. Thanks to Valerie Ishida for the report.
1.1.3 2011-08-21
- [Bug] #380: Improved unicode support when testing objects for being string-like. Thanks to Jiri Barton for catch & patch.
- [Bug] #389: Fixed/improved error handling when Paramiko import fails. Thanks to Brian Luft for the catch.
- [Support] #416: Updated documentation to reflect move from Redmine to Github.
- [Bug] #417: abort-on-prompts would incorrectly abort when set to True, even if both password and host were defined. This has been fixed. Thanks to Valerie Ishida for the report.
1.0.3 2011-08-21
- [Bug] #380: Improved unicode support when testing objects for being string-like. Thanks to Jiri Barton for catch & patch.
- [Bug] #389: Fixed/improved error handling when Paramiko import fails. Thanks to Brian Luft for the catch.
- [Support] #416: Updated documentation to reflect move from Redmine to Github.
- [Bug] #417: abort-on-prompts would incorrectly abort when set to True, even if both password and host were defined. This has been fixed. Thanks to Valerie Ishida for the report.
1.2.0 2011-07-12
- [Support] #382: Experimental overhaul of changelog formatting & process to make supporting multiple lines of development less of a hassle.
- [Feature] #22: Enhanced
@taskto add aliasing, per-module default tasks, and control over the wrapping task class. Thanks to Travis Swicegood for the initial work and collaboration.