Split out non-ssh-dependent features into separate lib
See original GitHub issueThings are coming to a head and it’d be good to split out Fabric’s task execution stuff into its own “third party” tool/library so it can be used/referenced independently of our SSH functionality.
Right now, anybody wanting to use Fab-as-runner must still install ssh
and PyCrypto
, which sucks.
And if we’re splitting it between task running and SSH, having “Fabric” be “SSH + dependency on new runner tool” makes much more sense (both re: backwards compatibility, and overall usefulness) than vice versa.
Speaking of backwards compat, I am marking this 2.0 because it makes more sense to do it at a 2.0 backwards incompat barrier (since at the very least it adds a new install dependency to Fabric), but doing the split in, say, 1.6 or 1.7 should also be quite possible if the timing is better.
To be clear, this new tool would:
- Maybe, possibly, but probably not just be us glomping onto an existing tool like Paver
- Paver tries to do too much and I’ve never been a big fan of how its API feels
- Really not aware of any other tools that are at all well known and fit the use case any better
- EDIT: Baker actually looks half decent, though it’s obviously not a perfect match (nothing would be, anything would require some tweaks.)
- Have a distinct identity from Fabric, while probably remaining “affiliated”
- Name brainstorm incoming.
- Encompass the “run Python callables as tasks from the CLI with args” functionality that currently exists within Fabric
- Likely entail some refactoring of how that machinery works, if only just to make post-ripout integration easier
- Probably get some of the remaining big task-runner “missing features” implemented right off the bat (really just #452)
Issue Analytics
- State:
- Created 12 years ago
- Comments:55 (20 by maintainers)
Any ETA for Fabric 2.0 and Invoke 1.0 as Python 3.5 was released yesterday and will be the default in Ubuntu 16.04 LTS?
I started switching to invoke in combination with shell commands and some Paramiko because fabric is the last package without python3 support in my project