8 ms·
Shovel: Rake for Python
- schettino72 15y agoit seems the whole point is simplicity > Tasks should be easy to define -- one decorator, no options lets see how long it lasts... at some point they will realize they need a build-tool. Rake is a build-tool. Shovel is not.
- kuviaq 15y agoWhat does this solve that fabric doesn't? Read through the docs but didn't see any comparisons.
- tobych 15y agoFabric isn't mentioned once in the README. Says "We didn't like the alternatives out there." with no details. Having said that, it looks like the HTTP server is the USP here. Being able to have non-techies run Fabric tasks is definitely a goal that's passed me fleetingly in the night. So, add this to Fabric and we're good. EDIT: The author, Dan Lecocq is near me in Seattle so, what with it being a small world and all, I just wrote to him (in case he's not the author of this thread) via his blog to ask him what he didn't like about Fabric, and suggested he respond here.
- unicron 15y ago> Being able to have non-techies run Fabric tasks is definitely a goal that's passed me fleetingly in the night. Isn't that equipping monkeys with guns? We all know what happens when you do that: http://www.youtube.com/watch?v=AabGdnTxqD0 http://www.youtube.com/watch?v=AabGdnTxqD0
- sophacles 15y agoAs a user of and sometimes contributor to fabric, I would like to point out that fabric is really good, but not perfect. No software really is. There are times I have chafed against fabric -- sometimes I would like it to be "heavier" doing more things automatically, and there are others I would like it to be "lighter", getting out of my way so I can just do my stuff. I will still reach for fabric first when I need tools, but it is nice to have alternatives available for those times I need something else. Similarly, it frequently benefits all projects to have a few alternatives and different implementations for the same concept. Ideas can be explored independently and features can be borrowed back and forth. If nothing else, and provided that shovel gets to a fuller development stage, this could be a good thing for all.
- CptCodeMonkey 15y agoThe only thing I don't like about Fabric ( and perhaps I missed reading a step in the docs ) is working with very complex systems, I wanted to break fabric recipes/scripts into multiple files and found doing `fab -f zkservers.py reload` slightly tedious. I've much rather do `./zkservers.py reload`
- herge 15y agoIt doesn't seem to do task dependency like Rake, which is unfortunate. It's the only thing missing from fabric. I'm half a mind to write my own with pbs (https://github.com/amoffat/pbs https://github.com/amoffat/pbs) thrown in...
- lost-theory 15y agoRight now it seems more comparable to argparse than Rake or fabric. The server part is neat, but a lot of my fabric tasks would probably time out in the browser (unless this can run tasks in the background, async).
- mattdeboard 15y agoSee absolutely no overwhelming cause to invest time switching from Fabric to this. I think everyone (including fabric maintainers) would love some alternative solutions in this space but this seems like a lateral move.
- endlessvoid94 15y agoWHY CAN'T WE JUST USE MAKEFILES
- jmtulloss 15y agoWhile perhaps not eloquently stated, the point is valid. Makefiles work as well as anything for most of these sorts of tasks.
- snprbob86 15y ago> Makefiles work as well as anything I'd argue that they always work better than any of these language-specific alternatives ever do. I'm not saying that GNUMake or BSD's Make or any particular Make is perfect. Surely there is still a lot of evolution to happen in build systems. What I am saying is that if you have a bunch of scripts to run & a bunch of files they produce, you can't beat a general purpose dependency graph with files for nodes and command lines for edges. Lately, I `touch Makefile` as one of the absolute first things I do on a project, regardless of language or framework, even when just hacking around. I'll even write a Makefile if I'm just doing some data analysis, like multi-stage log grepping. I find `rm intermediate.file; make` to be a nice alternative to putzing with command history and avoiding waisting time redoing expensive steps. Hell, we completely manage the configuration on our servers using Make instead of something like Puppet or Chef. So far, it's working pretty well, bit I'm still a newbie at sysadmin stuff. We've even replaced all of the db migration & other common Rails rake tasks with a few short bash scripts and ~10 lines of Make. We use .sql files for migrations and store db/schema.sql instead of db/schema.rb. It's two orders of magnitude faster to run our tiny script/dump-schemas.sh against psql instead of loading the Rails environment to query the db.
- phtrivier 15y agoCause sometimes you need your tasks to have, you know, logic and stuff ? Or am I the only one who want to do the equivalent of a "if" in a build script from times to times, and feel completely helpless with Make ?
- 15y ago
- obtu 15y agoWe already have Paver[1] in this space. It has task dependencies, can replace distutils, is used at Mozilla. [1] http://paver.github.com/paver/ http://paver.github.com/paver/
- nigma 15y agoInteresting, but at this stage the only functionality it provides is tasks discovery and argument passing. What I would like to see is some facility to aid with writing meaningful tasks that execute system utilities or perform work on remote servers over ssh. The Web API is also a nice concept, but I would prefer a control panel over Fabric-like tool rather than a dependency that I have to install on every target host.
- reuser 15y agoPython already has tools for this. IF I were interested in my working environment becoming more like a Ruby working environment, why wouldn't I just use Ruby?
- jamesgeck0 15y agoOne thing Shovel has going for it is that it appears to "just work" for Windows users. Compare to the setup process for Fabric: http://www.jonnyreeves.co.uk/2011/08/getting-python-and-fabric-installed-on-windows/ http://www.jonnyreeves.co.uk/2011/08/getting-python-and-fabr... Windows doesn't support hashbangs, so Shovel does currently need a batch file in Python's Scripts directory, but that's not a huge deal.