New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Split out non-ssh-dependent features into separate lib #565
Comments
|
🍰 |
|
A totally new tool that would fit the use case well is always an option too, of course. |
|
Updated description a bunch. @kennethreitz: this really would kinda be a new "thing", just based on the existing needs/feature set of that half of Fabric. The idea is for it to be its own entity re: installation, development schedule etc, but still controlled by the Fabric devs/community. |
|
Ideas:
Sorry I suck at names :( |
|
Also things like "kirk" (as in captain kirk). I tried to think of something fabric related that has to do with running tasks but I can't think of one that ties in with tasks + fabric. But Loom isn't a bad name either I don't think. |
|
Initial name brainstorm. Concepts
Names not taken on PyPI
Binary namesThanks, Oxford American Writer's Thesaurus as presented by OS X's Dictionary application!
Not in top brainstorming form today. Want moar. |
|
@dstufft Loom's an OK name, and CEO is a mostly-ok concept (not a big fan of the comic book reference, if only because it seems obscure, I'd never heard of the character ;)). Main problem is coming up with a good binary name, I feel like a verb is pretty much a must for it to work well. Not sure what would work for either of those. |
|
Boss: Runs things. |
|
partake. Kinda like Make, but for Python. |
|
Executive. |
|
I like the idea of it orienting around tasks. Hmm.. |
|
@kennethreitz I like Boss, other than the potential confusion with a certain New Jersey native (sorry, just not a fan, bad roommate experience in college) As I said to @dstufft, binary names are definitely key here, so if you can, please try to keep those in mind too. A great project name doesn't help if the project-name-as-binary sounds kinda dumb ;) |
|
Maid is interesting. Performs your tasks for you. Similar to "Make". Butler too. We could pick a random british-sounding butler name. |
|
|
|
Aside from impinging upon my (boundless, naturally) masculinity, |
|
I just squatted the name, just in case. I like it a lot so far. |
|
Boss as a library name is already taken FWIW On Tuesday, February 21, 2012 at 8:38 PM, Jeff Forcier wrote:
|
|
|
|
@dstufft So it is, and I couldn't think of a good binary name for that either, |
|
@kennethreitz mentioned EDIT: also |
|
|
|
Invoked. |
|
I really like Invoked and |
|
Project name could just be "Invoke" too, does the binary and the project need different names? |
|
I think 'invoked' has a bit more pizzazz to it than 'invoke', but either could work. |
|
Name doesn't have to differ, no, it's just that many times it makes more sense to. I had a thought while walking to the train (on said train now :P go go smartphone tethering!) which is that we could possibly skip all this and simply move the entire In other words, having one callable for the standalone lib and a different one for the SSH-using setup doesn't necessarily have to happen, and could even be a detriment. Pluses:
Minuses:
|
|
You can have a command line client become extensible. Look at how nose allows plugin entrypoints to be expressed from its command line tool |
|
I think the extra extensibility would be a good thing regardless of which way it goes. The name confusion would be an issue I think. This is a personal thing but I like the look of As far as the different binaries go, I would just make sure the core binary (invoke) is extensible to allow all the fabric things to happen, and then have fab just call the same entry point as invoke (i.e. the actual fab/invoke binaries would just be ultra minimalistic callers of a I'd think if you go the invoke + fabric route that pre 2.0 both fabfiles and "Invokefiles"? would be supported, and then with 2.0 just Invoke files? So essentially i'm +1 for splitting it into distinct "task runner" and "remote/ssh stuff", putting in compat shims for 1.x, and deprecating stuff for 2.x. This split I think would make both libs better, the task runner would support some really nice extensability (and probably external tasks that can easily be depended on, ran etc). And the remote/ssh stuff would benefit from having a smaller set of responsibilities allowing it to be more focused/ My cents anyways. |
|
I should clarify I don't hate the other way, I'm happy that this discussion is happening at all :) |
|
Well it's not like you'd have to type it very frequently, eh? ;) But yes, |
|
taskfile.py |
|
you |
|
Yea, the "these are @kennethreitz I've never really been a big fan of XYZFile as a naming convention, and especially since these days it's frequently not a single file, I see no need to continue the convention outside of Fab 1.x :) |
|
I would totally love to see this happen. I've always viewed Fabric as a generic Pythonic way to store "tasks" for a project, whether they are local or remote based, something closer to Rake/Make. However, when trying to intro to new people, several people were confused on this viewpoint and viewed it only as a deployment tool. I would second the module/folder aspect, toward having it be easier to make generic tasks that are drop-in able. New style tasks definitely went a good way toward that. |
|
@askedrelic Yup, having it be two-things-in-one has always been a bit confusing unfortunately. Unrelated: I summon @tswicegood to this thread since he and I were discussing the issue a few weeks ago and I figure he might want to weigh in. As usual I do reserve the right to disagree ;) |
|
I was summoned? :-) I like the idea of moving over to As far as naming, what about shifting from having an external executable that's installed to having people add this to the bottom: Then you just use Python. I'm ok with an executable, just don't know if its necessary. FWIW, I started a project a few weeks back for handling package creation called Side bet, I wonder how long it would be until @niran submitted a PR updating the README to include the obvious, albeit horrible theme song. |
|
I think having an on-your- And yes, the entire point of this is to end up with a lib that lets you get the tasky stuff without needing any SSH/network/crypto deps :) |
|
I completely agree with @bitprophet on the executable. It makes it way easier to run. If someone wants to use something other than |
|
+1. |
|
Just throwing an idea out there, I think it's more convenient too. FWIW, I registered Friday on PyPI if you want to use it. |
|
@bitprophet Sorry, I figured you knew about how to use entrypoints. I was voting, in my own way, for doing a frontend in a fashion similar to nose and keeping the name as fab. |
|
Ideas are great, I love ideas :) Friday's a little too on the cutesy side, though I do like the pop culture reference. That song is so great! I think for now I'm going with straight up The main downside of this name is the generic-ness, but that's a problem with every project I've ever taken over or created, and in this case none of the more specific options felt right to me. /justification |
|
@dcolish Acknowledged, thanks! I've not made a final decision yet, but I think at this point the sensible approach is:
EDIT: I should take a look at how this will work, quickly, before making anything final. Practice vs theory and all that. May run into angles I am not thinking about here. |
|
Invoke has a beta release now (after lots of recent work building it up). Already in:
Sprinting on it and hoping to start prototyping how Fab 2 will bolt onto it, this week. |
|
ensure clean |
|
What's the status of fabric 2? Is there a fork out there that is covering this? I mean the stuff that fabric2 should cover that is not invoke. |
|
@mvaled It'll appear shortly, has been in a private 'clean' branch of the fabric repo. |
|
Sorry if this if off topic but I sort of have to ask again: Thanks for all the great work on invoke and fabric! |
|
@dmr I'm in the middle of getting a Fabric 2 working on top of Invoke. A bunch of features to be ported over from Fabric 1 will inform design decisions for Invoke (for new features or existing ones - e.g. the recent config overhaul was one of these), so I don't want to label Invoke 1.0 until it's been "battle tested" sufficiently. My plan is to have an alpha of Fabric 2 ready for the public by PyCon at the latest (ideally much sooner) and that will lead into Fabric 2.0 + Invoke 1.0. |
|
Thank you for the clarification, where can I help? |
|
I'm working on it in a private branch for the short term until I get something I'm happy with and will be announcing on twitter/mailing list/etc once I'm ready for feedback, so please stay tuned. |
|
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 |
|
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? |
Things 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
sshandPyCrypto, 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:
The text was updated successfully, but these errors were encountered: