Activity

From 08/11/2010 to 09/09/2010

Today

avatar 01:47 AM Feature #8: Add timeout support
very good point. wouldn't everything be easier if we first iterate hosts then iterate tasks (instead the other way round)? for me this would be more intuitive anyway. axel rutz
avatar 12:02 AM Bug #231: Documentation code example fix (usage/execution.rst)
fix to earlier patch. Pradeep Gowda

09/08/2010

avatar 11:58 PM Bug #231: Documentation code example fix (usage/execution.rst)
the output does not match the code around line 118. see attachment for fix. Pradeep Gowda
avatar 09:36 PM Feature #8: Add timeout support
Took a crack at this tonight while thinking about it after a user request. The basics of skipping over a bad connect() are easy (just declare env var, test for it to select abort vs warn function). What to do other than that is a bit tougher. ... Jeff Forcier

09/07/2010

avatar 01:59 PM Support #228: PyCrypto >=2.1 has issues with pip
Looks like `ronny` in `#pip` tracked down the issue, has to do with how Python's `tarfile` module handles POSIX-style tar files, which was added/fixed in Python 2.6. They're patching pip now, and I'm just waiting to see what release(s) it comes ou... Jeff Forcier
avatar 11:04 AM Support #228: PyCrypto >=2.1 has issues with pip
Also, leaving this open as a reminder to see about bugfixing pip so that we can ideally remove this change later, and instead tell people to use pip 0.8.1 or whatever gets such a fix. (This isn't a great solution either, but it's much easier for p... Jeff Forcier
avatar 10:12 AM Support #228: PyCrypto >=2.1 has issues with pip
Spent quite a while poking at pip and I'm not seeing any way to tell whether we're being invoked by pip or not. Certainly nothing that's anywhere near foolproof -- something that might work when done via pypi won't work when done via a Git URL, an... Jeff Forcier
avatar 09:41 AM Support #228 (Assigned): PyCrypto >=2.1 has issues with pip
Reopening this, partly due to the above, and because I'm already getting reports from folks who, as feared, need both Fabric and a newer PyCrypto for other reasons, in the same environment. Bumping to 0.9.3 since any further tweaks to `setup.py... Jeff Forcier

09/06/2010

avatar 11:00 PM Support #228: PyCrypto >=2.1 has issues with pip
Went with the second option after all, if it wasn't clear. Curiosity got the better of me and I went looking to see *why* it's broken in 2.1...the odd thing is that PyCrypto itself doesn't appear to have changed its layout any, in terms of wher... Jeff Forcier
avatar 03:28 PM Bug #230 (Done): Arbitrary commands (fab -- mycommandhere) break without fabfile
Applied in changeset commit:f9de459d6573b47dd5ef438bbd2983bf971d788b. Jeff Forcier
avatar 01:59 PM Bug #230: Arbitrary commands (fab -- mycommandhere) break without fabfile
In other words, this feature was never tested outside of a Fabric project tree. It occurs in both 0.9.2 and master. Should hopefully be a simple reordering or logic fix in main.py. Reported by orkaa @ Freenode. Jeff Forcier
avatar 01:26 PM Feature #125: Support writing to a file in addition to appending
FYI: This is already done in my `master` branch. I'll need to remove it if you don't want to include as part of the 1.0 merge. Travis Swicegood
avatar 10:52 AM Feature #140: Recursive put() and get()
Thats cool. It has been merged with master fairly regularly, so if waiting is easier, thats cool. Erich Heine
avatar 01:56 AM Support #90: Update docs/templates to allow access to previous versions
Still want to set up a Nanoc site to handle the changes for me. For now I've taken to doing the following: * Update HEAD to refer to itself as the next tag, and link to the previous version(s) in the docs header. * Checkout the previous stable... Jeff Forcier
avatar 12:20 AM Support #216 (Done): Background processes FAQ Answer
I've updated the FAQ in a manner hopefully amenable to all -- it now mentions using dtach + ampersand, and also reorganizes the theory a bit more, as I understand it. Please correct me if I've gotten any of it wrong or managed to omit something :) Jeff Forcier
avatar 12:04 AM Support #228 (Done): PyCrypto >=2.1 has issues with pip
Applied in changeset commit:0cd27c941feba2de5491185fde56a27875ed34f8. Jeff Forcier

09/05/2010

avatar 11:56 PM Support #229: Clean up monospaced-or-not lib names
I have a bad habit of referring to some library or tool names in `monospace` and others not. Typically capitalized stuff (like PyCrypto) doesn't get monospaced, but lowercased ones (like `setuptools`) do. However, I'm not even always consistent... Jeff Forcier
avatar 11:13 PM Bug #158 (Done): Slow disconnects at end of session
Just nuked Paramiko re #86, so this should also cease to be an issue going forwards. Jeff Forcier
avatar 11:11 PM Support #86: Explore move back to external Paramiko dependency
Going to spin off the PyCrypto issue into its own ticket: #228 Jeff Forcier
avatar 10:58 PM Support #228: PyCrypto >=2.1 has issues with pip
I could swear that it *used* to be possible to install PyCrypto 2.1+ via pip, but am not 100% positive. So the issue below may be due solely to a change in PyCrypto, or may be a combination of such a change and a change in pip. Installation of ... Jeff Forcier
avatar 10:30 PM Support #86 (Done): Explore move back to external Paramiko dependency
Applied in changeset commit:3b32c6af3906888fa9d56e6fd88b15584ed0ccb7. Jeff Forcier
avatar 10:29 PM Support #86: Explore move back to external Paramiko dependency
I've removed it in an unpushed commit in 0.9, and all tests pass on 0.9; merged that into master, ditto there; tossed it onto an Ubuntu server image and that also passes tests on both suites. (Furthermore, a full exercise of my personal fabfile, u... Jeff Forcier
avatar 10:23 PM Support #227: Have 'fab test' remind users about requirements.txt
Once in a while, especially when changes are made to the test process (e.g. when I added rudolf/--with-color) people get a bit confused by the bare ImportErrors (or whatever) that then pop up during `fab test`. It'd be nice to test for `ImportErro... Jeff Forcier
avatar 08:51 PM Support #226: Update test server to handle sftp
In order to write tests for #140 and related put/get tickets, we'll need to extend the test server so it can handle SFTP. Hopefully this won't be a ton of work, but it could be pretty complicated depending on the types of operations we need to per... Jeff Forcier
avatar 08:50 PM Feature #140: Recursive put() and get()
Erich, it looks like you've been basing your `feature140` branch off of master? If that's the case I guess we'll have to make this a 1.x feature. Not a huge deal since I was a bit iffy on holding off 0.9.2 until I could get this all settled, anyways. Jeff Forcier

09/04/2010

avatar 09:36 PM Feature #221: Consider upgrading @runs_once to memoize instead of short circuiting
N.B. I rewrote the tests wholesale using Fudge to do the #-times-called assertions, not sure why that did not occur to me sooner :) Jeff Forcier
avatar 09:24 PM Feature #221 (Done): Consider upgrading @runs_once to memoize instead of short circuiting
Applied in changeset commit:0a673140d1bf3541096a976edf17fe394edff8f5. Jeff Forcier
avatar 08:27 PM Feature #221: Consider upgrading @runs_once to memoize instead of short circuiting
Aha, so the problem was the rebase, since it changes the SHAs around (though I wonder why GH still lets you access the old ones, I suppose they're still floating around in the repo even if they're now unreachable via the DAG?). What I want now is ... Jeff Forcier
avatar 06:43 PM Support #87: Set up a buildbot
Haven't checked out python 2.5 yet (tho the Lucid PPA indicates it did build) but noting here that I wanted to see how well Hudson could run the changes merged into master from #7 -- the TTY related stuff did blow up pretty spectacularly, but as a... Jeff Forcier
avatar 04:37 PM Feature #206: Possibly allow multiple fabfiles
Optparse is good for this, it has an action argument called "append" which creates a list like you describe. So: fab -f foo.py -f bar.py .... Would end up as a list: ["foo.py", "bar.py" ] in the return dict. As for the implicit ... Erich Heine
avatar 02:47 PM Feature #208 (Done): fab --shortlist
Applied in changeset commit:161cac74870d6fc87e4931ab73969d19be1963da. Jeff Forcier
avatar 12:14 PM Feature #221: Consider upgrading @runs_once to memoize instead of short circuiting
Re: tests, I waffle on whether to use classes, modules or simply commented blocks within modules, to group stuff. You're right that classes make it easier to target test runs, and honestly I had no problem indenting stuff when I wrote RSpec tests ... Jeff Forcier
avatar 12:10 PM Feature #208: fab --shortlist
No worries, I can handle it myself =) Jeff Forcier
avatar 11:33 AM Feature #221: Consider upgrading @runs_once to memoize instead of short circuiting
The cherry-pick should have worked... it was rebased, so could be an issue there. As of right now its `HEAD^` on my master. Of course, a straight merge of my `master` will get it too ;-) * `TestOf` is an old habit from my days at [SimpleTest... Travis Swicegood
avatar 11:19 AM Feature #208: fab --shortlist
Weird - I didn't get a notification that you'd updated this. :-/ No I haven't. Travis Swicegood
avatar 12:13 AM Feature #221: Consider upgrading @runs_once to memoize instead of short circuiting
I can't seem to reach your commit when I pull down your repo and try to cherry-pick it; did it get moved around or removed or something? I can still see it on GitHub but `git cherry-pick` tells me "unknown revision". That aside, I like your upd... Jeff Forcier

09/03/2010

avatar 10:34 PM Feature #144 (Done): hosts decorator can not accept a list object as it's argument
Applied in changeset commit:d4f91e0961f22d890c7f63987c4ab3f5a0f20fa4. Jeff Forcier
avatar 05:48 PM Bug #137: Allow escaped commas in command line
Note: I added a test for this, cleaned up the code a tiny bit, added a changelog entry and backported it to 0.9, so it will be released in 0.9.2. Jeff Forcier
avatar 05:45 PM Bug #137 (Done): Allow escaped commas in command line
Applied in changeset commit:2c8aa1e0995289d925e06e23aa0390180eedbb2c. Jeff Forcier
avatar 05:30 PM Feature #224 (Assigned): Allow creation of parallel network tests
It is? #214 looks potentially *related* but not at all a full dupe. I though I did have a "faster tests" ticket but can't find it if so, so I'm fine with keeping this one. Jeff Forcier
avatar 03:43 PM Bug #218 (Assigned): Update get(), env.all_hosts to work for library users
I'm renaming this ticket and bumping it to 1.0 to address the issue of keeping `get`'s multi-server download file separation working for library users. However, at least it no longer throws AttributeErrors. Jeff Forcier
avatar 03:16 PM Bug #220 (Done): test_version has a bug
Hm, well I'm not getting errors because...the fix is already in my tree. Except I don't seem to have cherry-picked your changeset. Aha -- I fixed it in mid June when getting complaints from folks who didn't have Git installed. Perhaps I committ... Jeff Forcier
avatar 02:52 PM Feature #224: Allow creation of parallel network tests
Doh! This is a dupe of #214. Travis Swicegood
avatar 02:51 PM Feature #225: Break tests into unit and functional
Would be useful to break the two types of test into different groups so they can be run independently. The easiest way to do this is to create a `tests/functional` and `tests/unit` directory. Test run times went from < 0.3 seconds up to > 17 sec... Travis Swicegood
avatar 02:49 PM Feature #224: Allow creation of parallel network tests
I didn't add a version as there isn't a post-1.0 version. Travis Swicegood
avatar 02:48 PM Feature #224: Allow creation of parallel network tests
Currently the code in master requires that it be run sequential. It isn't capable of creating multiple SSH servers. Would help the test speed if the tests could be run parallel, but this would require that each test server be forked off on its o... Travis Swicegood
avatar 02:16 PM Bug #223 (Done): Full stack tests choking on passphrase-vs-password issue
Travis' patch is definitely an acceptable way to go for the time being. The test `test_passphrase_prompt_displays_host_string` is now not really testing what it's supposed to, but I'm fine leaving it be for now and will make a note on #85 about it. Jeff Forcier
avatar 01:54 PM Bug #223: Full stack tests choking on passphrase-vs-password issue
I've got it working on my branch with the diff at http://gist.github.com/564260 Not sure if that is the correct way to go about it though. Travis Swicegood
avatar 01:52 PM Bug #223: Full stack tests choking on passphrase-vs-password issue
On my own dev Macs, where I have an agent running and key files in my SSH dir, I get the `Passphrase for private key` prompt when logging into a server (including the test server); however on a "pristine" Ubuntu install with no keys or agents, tho... Jeff Forcier
avatar 12:59 PM Bug #220: test_version has a bug
Gonna take a look at this now, still confused as I never got it myself. Also changing version to 1.0 since this is not 0.9 related. Jeff Forcier
avatar 10:44 AM Bug #218: Update get(), env.all_hosts to work for library users
Another fix is to change like 365 from: if len(env.all_hosts) > 1: To: if hasattr(env, 'all_hosts') and len(env.all_hosts) > 1: Travis Swicegood
avatar 10:42 AM Bug #220: test_version has a bug
FYI: This has been merged into my master branch. Travis Swicegood
avatar 10:41 AM Feature #221: Consider upgrading @runs_once to memoize instead of short circuiting
Just added this at [commit d7dec0c3][1] to my master (what I'm affectionately referring to as the future Fabric 1.0) ;-) along with tests. [1]: http://github.com/tswicegood/fabric/commit/d7dec0c3f23b4479fe229532f73543e22af0ea92 Travis Swicegood
avatar 10:05 AM Feature #76: Use decorator to define tasks
@Erich: I've merged these changes into my master branch. Be aware that it's constantly rebased on top of Jeff's master. In implementing the code I started looking for ways to simplify it. The double task decorator bothered my design sensibili... Travis Swicegood

09/02/2010

avatar 01:01 PM Bug #85: Prompts for "passphrase" instead of "password" in some situations
Not sure why this was under 0.9, it's a wart but is not going to be an easy fix and is best left for 1.0 (or post-1.0). Jeff Forcier
avatar 12:57 PM Support #111 (Done): Backport major compatible "1.0" (master) features to 0.9.x
Ok, first pass is done. Everything left involves the refactored run/sudo, for the most part. Thinking it's best to leave that for 1.0, I need to start pushing releases out quicker anyway, so the more work I do on 0.9 is less I'm doing to get 1.0 a... Jeff Forcier

09/01/2010

avatar 10:05 PM Support #222: Look into upgrading Redmine
Basics: * Current Redmine is a heavily modified version of Redmine 0.8's release branch. * Upstream is now up to at least 1.0 representing a year, year and a half of their own dev. * Upstream has fixed at least some of the major problems our ... Jeff Forcier
avatar 05:31 PM Support #111: Backport major compatible "1.0" (master) features to 0.9.x
Double check the PYTHONPATH pre-emption issue (the topmost bug in the 1.0 changelog) as I think it got merged into 0.9 a while ago (or my cherry-pick just now went totally seamlessly?) and make sure that A) it is in fact fixed on 0.9, and B) the c... Jeff Forcier

08/29/2010

avatar 11:43 PM Support #111: Backport major compatible "1.0" (master) features to 0.9.x
Still backporting; takes more effort than expected due to fragmentation of a "feature" over the entire timeline (eg initial implementation, later tweaks, yet later doc updates, etc) not to mention the occasional less-than-ideal commit atomicity. ... Jeff Forcier
avatar 02:06 PM Support #111: Backport major compatible "1.0" (master) features to 0.9.x
Doing this for 0.9.2 after all, at least partly. Anything I feel needs more work to backport will probably still be copied into an 0.9 based branch to free up master for merging #7. Didn't remember this ticket until partway in; will add a list ... Jeff Forcier

08/27/2010

avatar 05:07 PM Bug #212 (Worksforme): Hitting Ctrl-C during I/O still requires shell reset
Not getting this behavior anymore, though I definitely recall it being a problem. Will reopen if/when I can get a reproducible test case. (Not a literal test case...this may not be possible to actually unit test...) Jeff Forcier
avatar 02:33 PM Support #216: Background processes FAQ Answer
I'm not entirely sure, I only have access to the binary. If the dev gets back to me, I'll let you know! Erich Heine
avatar 02:25 PM Support #216: Background processes FAQ Answer
Indeed, I was suggesting the above as an addition to, not a replace of, the current FAQ answer. Sorry for being unclear! That is interesting that /dev/null to stdin breaks some programs... Is this with programs like 'top' that expect a tty? Braden Pellett
avatar 02:02 PM Support #216: Background processes FAQ Answer
This and dtach should be mentioned, because there are cases where /dev/null to stdin breaks programs ( I don't know why, but we have custom bit of code that breaks on this... :( ). Other than that, it works very well. Also, mentioning screen and ... Erich Heine

08/25/2010

avatar 03:26 PM Bug #220: test_version has a bug
No, it was from the master branch. Erich Heine
avatar 02:16 PM Bug #220: test_version has a bug
Hm, that test section passes for me on the #7 branch, I probably backported something without testing on the older branch. You're getting this on the 0.9 branch? Jeff Forcier
avatar 02:04 PM Feature #144: hosts decorator can not accept a list object as it's argument
Erich -- yea, definitely. I've done this before in a number of places and I usually check for class inclusion in `types.StringTypes` first, and if that fails, then I assume an iterable (or explicitly test for iterable if I'm feeling paranoid). Thi... Jeff Forcier
avatar 12:49 PM Feature #221: Consider upgrading @runs_once to memoize instead of short circuiting
I.e. right now it just has a bare `return` in the 2nd through Nth calls; may be more sensible to make it memoize the result of the first call and return that instead. Not backwards compatible, though also unlikely to actually break anybody's real ... Jeff Forcier
avatar 12:40 PM Feature #144: hosts decorator can not accept a list object as it's argument
Careful with that "single iterable argument" concept -- strings are iterable, this has bitten me in the past. Erich Heine
avatar 02:28 AM Feature #76: Use decorator to define tasks
@Travis In my branch I have done the following: 1. Merged my fix for ticket #220 into the branch, just because all tests pass that way :) 2. Merged my code, bitprophet's master and your master into my taskmodel branch 3. Created 2 new tests in... Erich Heine
avatar 02:01 AM Bug #220: test_version has a bug
I created [a branch](http://github.com/sophacles/fabric/tree/bug220) in my github fork which fixes this. Erich Heine
avatar 01:57 AM Bug #220: test_version has a bug
The testing function test_get_version in tests/test_version.py is broken. It builds strings for comparing 1.0 alpha releases in a way different from how fabric/version.py get_version() builds the same string. As a result testing spits errors for t... Erich Heine
avatar 12:29 AM Feature #2: Make `put` sudo-able
oops, pushed submit x2 :( Erich Heine
avatar 12:29 AM Feature #2: Make `put` sudo-able
The simple put is sort of already built into #140 -- depending on how simple you mean, operations.put/get cover most file transfers, and only file transfers (but w/ globs etc). sftp.put,get,put_dir,get_dir cover non-globbed simple put and get... ... Erich Heine

08/24/2010

avatar 11:56 PM Feature #208: fab --shortlist
Sure, go crazy (and thanks!). I thought somebody had a patch for this somewhere but obviously nothing's listed here. If you have any better ideas for the long flag name, feel free to brainstorm. Maybe `--list-names`, or (possibly harder to impl... Jeff Forcier
avatar 11:40 PM Feature #208: fab --shortlist
@Jeff -- want me to implement this? Travis Swicegood
avatar 11:39 PM Feature #76: Use decorator to define tasks
@Erich -- Saw your changes. It would be awesome if you could add in a few test cases to cover the change and demonstrate the failure cases. Currently, all of the `@task` related code in my `master` branch is 100% tested. It would be great to ke... Travis Swicegood
avatar 10:45 PM Feature #76: Use decorator to define tasks
Update to some stuff Travis did is here: http://github.com/sophacles/fabric/tree/taskmodel . I made all of the decorators modify Task objects instead operate within closures. This makes @task work in combination with @hosts, @roles, etc. It ... Erich Heine
avatar 05:07 PM Bug #219 (Done): Blank lines after silent commands
Applied in changeset commit:b28be830bfbd4f552fd3c66ff517cd237859aad2. Jeff Forcier
avatar 04:00 PM Bug #219: Blank lines after silent commands
After the #7 work, noticed spurious blank lines occurring between run commands; pattern is that it only happens for silent commands such as `mkdir` or `test`. Looks to be largely due to the "safety" newline printed near the end of `fabric.opera... Jeff Forcier
avatar 02:19 PM Bug #209 (Done): Some password prompts no longer specify the user
Calling this jerk done, even if there are other issues they darn well belong in another ticket of their own :) Jeff Forcier
avatar 12:52 PM Bug #218: Update get(), env.all_hosts to work for library users
* `get` currently uses `env.all_hosts` (which is updated by `fabric/main.py` at runtime) to determine whether it should be doing something with downloaded files to avoid clobbering. * This doesn't work in library use because `env.all_hosts` is th... Jeff Forcier
avatar 12:34 PM Bug #209: Some password prompts no longer specify the user
For now, what I've done is made the getpass mock "smarter" insofar as it doesn't print its own newline if the prompt is just a space character. This works under the assumption that a single space prompt implies a passthrough of the remote prompt t... Jeff Forcier

08/23/2010

avatar 03:42 PM Feature #217: Allow file handling methods (put/get/etc) to handle file-like objects and/or StringIO
Instead of just real files, allow virtual files to also be thrown into these functions for additional flexibility. Plus: much more flexible, don't force people to write out files on disk just to work around the lack of it. Minus: some additi... Jeff Forcier
avatar 03:15 PM Bug #209: Some password prompts no longer specify the user
That'll be difficult without a major restructuring of the IO loop, which I am not going to do right now. Also, realized that just printing a newline is not enough, it *has* to come from the server in many cases so that the IO loop will print the ... Jeff Forcier
avatar 12:11 AM Bug #209: Some password prompts no longer specify the user
Have added the space after sudo prompts, and also updated password memory features. Still working on frustrating edge cases in output, including differences between test mechanisms and real world visual quirks. For example: * Our mocked `get... Jeff Forcier

08/20/2010

avatar 06:18 PM Support #216: Background processes FAQ Answer
Actually, that little `_runbg` function would better be: def _runbg( command, out_file="/dev/null", err_file=None, shell=True, pty=False ): run('nohup %s >%s 2>%s </dev/null &' % (command, out_file, err_file or '&1'), shell, pty) ... Braden Pellett

08/19/2010

avatar 11:14 AM Feature #2: Make `put` sudo-able
npmap has an implementation of this [here](http://paste.pocoo.org/show/252043/). Curious whether it'd be nice to do a bit of refactoring (Esp. with the #140 stuff in) so that it is still possible to access the "simple put" functionality in a st... Jeff Forcier

08/18/2010

avatar 07:18 PM Support #216: Background processes FAQ Answer
The FAQ about running background processes only makes note of using something like dtach or screen for non-daemonizing processes: [Why can’t I run programs in the background with &? It makes Fabric hang.](http://docs.fabfile.org/0.9.1/faq.html#... Braden Pellett

08/16/2010

avatar 02:08 PM Feature #28: Allow put-style globbing with get
run('ls') is probably not very portable, but paramiko has listdir_attr() method, which in conjunction with fnmatch module can do the trick (I guess) Max Arnold
avatar 10:45 AM Feature #215 (Duplicate): get() should allow remote wildcards and optional file mode
Mostly a dupe; will add note re: mode kwarg to the other ticket (though honestly not 100% sure it's a necessary feature :)) Jeff Forcier
avatar 03:25 AM Feature #215: get() should allow remote wildcards and optional file mode
It will be good to be able: get("/remote/path/*.sh", "/tmp", mode=True) get("/remote/path/*.sh", "/tmp", mode='0644') and get executability bit copied or overridden if necessary. Max Arnold
avatar 03:21 AM Feature #79: Optional host prefix for get
I think host prefix should be completely optional and customizable. Probably this can be done with string interpolation: without prefix: get("/path/to/source/file.txt", "/tmp/%(filename)s") with prefix: get("/path/to/source/file.tx... Max Arnold

08/15/2010

avatar 08:51 AM Bug #214: Potential Paramiko forking bug
Bastih from the Django community pinged me on IRC to say he had an error message like the following: <type 'exceptions.AssertionError'> PID check failed. RNG must be re-initialized after fork(). Hint: Try Random.atfork() and had fixed it... Jeff Forcier

08/14/2010

avatar 10:48 PM Bug #190 (Done): Sudo prompt mixed up a bit
As a result of changes in #209, this is no longer an issue. Jeff Forcier
avatar 10:23 PM Bug #213: Password memory edge case: passphrase vs password
The password memory implemented in #192 has a minorish edge case, in that we do not differentiate between passphrase and password prompts (except for which prompt is displayed to the user) when we store connection-level passwords. What this lea... Jeff Forcier

08/13/2010

avatar 08:29 PM Feature #144: hosts decorator can not accept a list object as it's argument
Revisiting this now after a slight prodding, I think it probably would be the most user-friendly thing to look for a special case of a single, iterable argument. This should go in `fabric.main._merge`. Jeff Forcier

08/12/2010

avatar 02:22 PM Bug #209: Some password prompts no longer specify the user
TODO * Add space after sudo prompt, if possible (looks funny with cursor immediately after the colon), but don't waste much time on it. * Remove "previous password" machinery from `prompt_for_password`, as discussed in #192 * Double check all... Jeff Forcier
« Previous
 

Also available in: Atom