Changes in version 0.9.2
The following changes were implemented in Fabric 0.9.2:
Feature additions
- The reboot operation has been added, providing a way for
Fabric to issue a reboot command and then reconnect after the system has
restarted.
- python setup.py test now runs Fabric’s test suite (provided you have all
the prerequisites from the requirements.txt installed). Thanks to Eric
Holscher for the patch.
- Added functionality for loading fabfiles which are Python packages
(directories) instead of just modules (single files.) See
Fabfile discovery.
- Added output lines informing the user of which tasks are being executed (e.g.
[myserver] Executing task 'foo'.)
- Added support for lazy (callable) role definition values in env.roledefs.
- Added contrib.django module with basic Django
integration.
- env.local_user was added, providing easy and permanent
access to the local system username, even if an alternate remote username has
been specified.
- #29: Added support for arbitrary command-line-driven anonymous tasks
via fab [options] -- [shell command]. See Arbitrary remote shell commands.
- #52: Full tracebacks during aborts are now displayed if the user has
opted to see debug-level output.
- #101: Added colors module with basic color output support.
(#101 is still open: we plan to leverage the new module in Fabric’s
own output in the future.)
- #137: Commas used to separate per-task arguments may now be escaped
with a backslash. Thanks to Erich Heine for the patch.
- #144: hosts (and roles)
will now expand a single, iterable argument instead of requiring one to use
e.g. @hosts(*iterable).
- #151: Added a puts utility function, which allows
greater control over fabfile-generated (as opposed to Fabric-generated)
output. Also added fastprint, an alias to
puts allowing for convenient unbuffered,
non-newline-terminated printing.
- #208: Users rolling their own shell completion or who otherwise find
themselves performing text manipulation on the output of --list may now use --shortlist to get a plain, newline-separated
list of task names.
Bugfixes
- The interactive “what host to connect to?” prompt now correctly updates the
appropriate environment variables (hostname, username, port) based on user
input.
- Fixed a bug where Fabric’s own internal fabfile would pre-empt the user’s
fabfile due to a PYTHONPATH order issue. User fabfiles are now always loaded
at the front of the PYTHONPATH during import.
- Disabled some DeprecationWarnings thrown by Paramiko when that library is
imported into Fabric under Python 2.6.
- #44, #63: Modified rsync_project to
honor the SSH port and identity file settings. Thanks to Mitch Matuson
and Morgan Goose.
- #123: Removed Cygwin from the “are we on Windows” test; now, only
Python installs whose sys.platform says 'win32' will use Windows-only
code paths (e.g. importing of pywin32).
Documentation updates
- Added a few new items to the FAQ.
- #173: Simple but rather embarrassing typo fix in README. Thanks to
Ted Nyman for the catch.
- #194: Added a note to the install docs about a
possible edge case some Windows 64-bit Python users may encounter.
- #216: Overhauled the process backgrounding FAQ
to include additional techniques and be more holistic.
Packaging updates
- #86, #158: Removed the bundled Paramiko 1.7.4 and updated the
setup.py to require Paramiko >=1.7.6. This lets us skip the known-buggy
Paramiko 1.7.5 while getting some much needed bugfixes in Paramiko 1.7.6.