Please note

This documentation is for the latest stable (0.9.3) release of Fabric. To view documentation for the in-development (1.0) version, please click here.

Previous stable versions: 0.9.0, 0.9.1, 0.9.2

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 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.


  • 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 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.