GithubHelp home page GithubHelp logo

alexanderarvidsson / fabric3.11 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mathiasertl/fabric

0.0 0.0 0.0 17.3 MB

Simple, Pythonic remote execution and deployment. (Python 2.7/3.4+ fork)

Home Page: http://fabfile.org

License: BSD 2-Clause "Simplified" License

Python 100.00%

fabric3.11's Introduction

DEPRECRECATED

The excellent Fabric now finally supports Python3, there is thus no longer a use for this project. Please use mainline Fabric instead.

No really, deprecated

Read above.

What it said here before

Fabric3 is a Python (2.7 or 3.4+) library and command-line tool for streamlining the use of SSH for application deployment or systems administration tasks. This is a fork of the original Fabric (git) with the intention of providing support for Python3, while maintaining support for all non-archaic versions of Python2. Please see below for known differences with the upstream version of Fabric. To switch to Fabric3, simply do:

pip uninstall Fabric
pip install Fabric3

... and don't forget to update any requirements.txt files accordingly:

# Fabric==1.12.0
Fabric3==1.12.0.post1

It provides a basic suite of operations for executing local or remote shell commands (normally or via sudo) and uploading/downloading files, as well as auxiliary functionality such as prompting the running user for input, or aborting execution.

Typical use involves creating a Python module containing one or more functions, then executing them via the fab command-line tool. Below is a small but complete "fabfile" containing a single task:

from fabric.api import run

def host_type():
    run('uname -s')

If you save the above as fabfile.py (the default module that fab loads), you can run the tasks defined in it on one or more servers, like so:

$ fab -H localhost,linuxbox host_type
[localhost] run: uname -s
[localhost] out: Darwin
[linuxbox] run: uname -s
[linuxbox] out: Linux

Done.
Disconnecting from localhost... done.
Disconnecting from linuxbox... done.

In addition to use via the fab tool, Fabric3's components may be imported into other Python code, providing a Pythonic interface to the SSH protocol suite at a higher level than that provided by e.g. the Paramiko library (which Fabric3 itself uses.)

Differences with Fabric

Generally this project aims to be a drop-in replacement for Fabric and will periodically merge any changes from the upstream project. Any differences are noted here:

  • The release installs as Fabric3. Despite its name, this version is tested with Python2.7 and Python 3.4+.
  • Versioning is based on upstream Fabric releases, with a postX appended. So version "1.12.0.post1" is equivalent to Fabrics own "1.12.0" release.
  • fabric.utils.RingBuffer is removed, use collections.deque from the standard library instead.
  • In Python3, Fabric3 implements its own version of contextlib.nested based on contextlib.ExitStack, since it's no longer available in Python3. Please note that it was removed with good reason, we do not encourage you use it.
  • Fabric3 requires the six library for compatibility.
  • Minimum requirements for paramiko have been bumped to 1.17.0.

ChangeLog

This ChangeLog lists changes other then that of the upstream Fabric release.

1.12.0.post1
  • Sync with 1.12.0 upstream release.
  • Fix prompts in Python3.5 (see #18)
1.11.1.post1
  • Require paramiko 1.17.0 or later.
1.10.2.post2 (2016-01-31)
  • Identify as Fabric3 on the command-line (#4).
  • Fix UnicodeDecodeError when receiving remote data (#5).
  • Require paramiko 1.16.0.
1.10.2.post3 (2016-02-07)
  • Cleanup imports in main code base and test suite.
  • Add Python 2/3/3.5 classifiers in setup.py.
  • Remove fabric.utils.RingBuffer with collections.deque from stdlib.
  • Remove with_statement __future__ import, it does nothing in Python 2.6+.

fabric3.11's People

Contributors

bitprophet avatar chrisvest avatar mathiasertl avatar goosemo avatar tswicegood avatar ploxiln avatar konradhalas avatar max-arnold avatar akitada avatar davidhalter avatar mw44118 avatar rasky avatar sophacles avatar opie4624 avatar focusaurus avatar alex avatar calebgroom avatar offbyone avatar stnatic avatar alisaifee avatar rsaikali avatar owenn avatar matthewwithanm avatar msabramo avatar hgdeoro avatar fgmacedo avatar ericholscher avatar rodrigc avatar ssteinerx avatar mitechie avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.