aboutsummaryrefslogtreecommitdiffstats
path: root/libbe/command
Commit message (Collapse)AuthorAgeFilesLines
* command:target: Print full ID (bugdir/bug) on --resolveW. Trevor King2013-07-101-1/+1
| | | | | | | | | | | | The old implementation just printed the bug UUID (without the bugdir/ prefix). This lead to the command we suggest in `be target --help`: $ be depend --status -closed,fixed,wontfix --severity -target \ $(be target --resolve) failing with an invalid ID. Reported-by: Michael Sperber <sperber@deinprogramm.de>
* command:html: Rework comment <div> closingW. Trevor King2013-03-121-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Comment nesting wasn't working properly before, where you could get things like: <div class="comment root" id="a"> </div> <!-- close a --> <div class="comment" id="a/b"> <div class="comment" id="a/b/c"> <div class="comment root" id="d"> </div> <!-- close d --> </div> <!-- close a/b/c --> </div> <!-- close a/b --> from a comment tree (using fake ids) of: . |-- a | `-- a/b | `-- a/b/c `-- d The new handling pushes the `div_close(depth)` call to the front of the comment block, because a comment's depth tells us how many of the already-rendered comments we need to close. Closing comments at the top of the block means that we'll always have at least one unclosed comment to close after the comment loop completes. With the new handling, we'll get a more appropriate: <div class="comment root" id="a"> <div class="comment" id="a/b"> <div class="comment" id="a/b/c"> </div> <!-- close a/b/c --> </div> <!-- close a/b --> </div> <!-- close a --> <div class="comment root" id="C29a03522-ed6e-4a9a-8823-23a1c513865f"> </div> <!-- close d --> Reported-by: Owen Jacobson <owen.jacobson@grimoire.ca>
* Transition to libbe.LOG for loggingW. Trevor King2013-01-241-3/+3
| | | | | | | This makes it easier to tweak log verbosity and redirect logs to other handlers. For example, the WSGI servers are unstable with stderr closed, and crash with an IOError if they try to print a warning to stderr.
* libbe:command:util: fix bugdir access for complete_status and complete_severityW. Trevor King2012-12-131-2/+2
| | | | | | | | | | | | Fix a bug introduced by: commit 4db1a045a0606bead191a563abc54dfa8352efe0 Author: W. Trevor King <wking@tremily.us> Date: Wed Aug 29 23:26:17 2012 -0400 Rewrite commands to use bugdirs instead of a single bugdir. Reported-by: James Spencer <james.s.spencer@gmail.com>
* Use libbe.util.http.HTTP_USER_ERROR everywhere instead of hardcoding 418W. Trevor King2012-10-283-6/+4
|
* command:html: remove %default from option help stringsW. Trevor King2012-10-271-6/+5
|
* command:serve_*: remove wordy "with, for example" from help messageW. Trevor King2012-10-272-4/+2
|
* command:serve_commands: fix --repo -> --server in help messageW. Trevor King2012-10-271-1/+1
|
* command: use mapfiles (JSON) instead of YAML for the command serverW. Trevor King2012-10-262-8/+7
|
* doc: update :class: to :py:class: for modern Sphinx.W. Trevor King2012-10-262-6/+6
|
* doc: update :mod: to :py:mod: for modern Sphinx.W. Trevor King2012-10-261-1/+1
|
* Ran update-copyright.py.W. Trevor King2012-10-1626-27/+32
|
* command:html: convert -moz-border-radius to border-radius.W. Trevor King2012-09-171-9/+9
| | | | | | border-radius and friends are standard CSS3 [1]. [1]: http://www.w3.org/TR/css3-background/#the-border-radius
* command.html: display "Target:" detail for bugs with targets.W. Trevor King2012-09-171-0/+10
|
* command:html: fix two auto% -> auto typos in CSS.W. Trevor King2012-09-171-2/+2
| | | | | | | | | | | | | | | | | | These were introduced in commit d61d54ce33022f0613c5e19e2f52be4ab77c4664 Author: Gianluca Montecchi <gian@grys.it> Date: Mon Jan 24 22:47:32 2011 +0100 New html output for html command and propogated in commit 5b6be7a511670cdf1961d13040cddcb34e70b8a1 Author: W. Trevor King <wking@drexel.edu> Date: Sun Apr 17 02:41:07 2011 -0400 Rework `be html` to use Jinja2 templates.
* command:html: add --strip-email option.W. Trevor King2012-09-031-6/+21
|
* command:html: oops, use default arguments for 'notify' and 'auth'.W. Trevor King2012-09-031-2/+2
|
* command:html: fix super(HTML. self) -> super(HTML, self).W. Trevor King2012-09-031-1/+1
|
* command:help: add `repo` and `server` topics.W. Trevor King2012-09-031-1/+60
|
* command:help: match against command names (not module names).W. Trevor King2012-09-031-1/+1
|
* command:html: rewrite as a libbe.util.wsgi.ServerCommand.W. Trevor King2012-09-031-291/+368
| | | | | | | | | Now `be html` defaults to serving the BE repo live. With the `--export-html` option, it reverts to the earlier static dump behaviour. This will make it easier for others to embed a read-only HTML server in their own app (e.g. as a gitorious issue tracker).
* command:serve-storage: rename server_version to BE-storage-server/<VERSION>.W. Trevor King2012-09-031-1/+1
| | | | | | | | | | This catches the server version up with: commit 0336db8d4052a319f1d959a33fc847814551e3f8 Author: W. Trevor King <wking@tremily.us> Date: Wed Aug 29 23:55:37 2012 -0400 command:serve-storage: rename `be serve` -> `be serve-storage`.
* command:serve_commands: allow unspecified parameters (use defaults).W. Trevor King2012-09-031-2/+12
| | | | | | | | | | | | | | | Also raise UnknownCommand if there is no `command` key in the posted dict (malformed request). With the new code, you can run commands with: $ wget --post-data='command: list' http://localhost:8000/run/ instead of having to go through and specify all the parameters explicitly. This will make the command server more robust for use with older clients (who may not know about all the parameters that the server knows about). Parameters sent by the client that the server does not know about are silently ignored.
* command:import_xml: fix `--r` -> `-r` in long help.W. Trevor King2012-09-031-2/+2
|
* command:import_xml: fix be-mbox-to-xml -> be-mail-to-xml.W. Trevor King2012-09-031-3/+3
| | | | | | | | | | This catches the doc up with misc/xml/be-mail-to-xml: commit c8985785eb741ff646082879f1ca5e9cfe3873b0 Author: W. Trevor King <wking@drexel.edu> Date: Wed Jan 20 15:22:28 2010 -0500 'be-mbox-to-xml' -> 'be-mail-to-xml' + support for several formats.
* command:serve-storage: rename `be serve` -> `be serve-storage`.W. Trevor King2012-08-292-5/+9
| | | | | | | | | | This will help avoid confusion between be serve-storage and be serve-commands
* Rewrite commands to use bugdirs instead of a single bugdir.W. Trevor King2012-08-2921-407/+620
| | | | | | | The bulk of the work is in regard to XML, with new BugDir.xml and .from_xml methods to support the new <bugdir> entity. I also split the guts import_xml's ._run method into sub-methods to make the import logic more obvious.
* util:wsgi: add BEExceptionApp for translating storage exceptions.W. Trevor King2012-08-291-10/+0
| | | | | | This fixes .test_get_initial_value for the HTTP backend, because the tests use TestingHTTP.getURL, which only catch HandlerError, not the more specific storage exceptions.
* libbe:util:wsgi: extract WSGI utilities into a separate module.W. Trevor King2012-08-272-1118/+84
|
* command:serve_commands: remove duplicate cruft and get working unit tests.W. Trevor King2012-08-241-327/+19
|
* command:serve: add ability to pass raw POST data with getURL.W. Trevor King2012-08-241-12/+16
| | | | | | | | | | This is analagous to the earlier change to get_post_url: commit 0cd072b9710ee964e6f449abd9265d85e02f34d2 Author: W. Trevor King <wking@tremily.us> Date: Fri Aug 24 09:29:58 2012 -0400 util:http: add ability to pass raw POST data with get_post_url.
* command:serve_commands: new command for running a command server.W. Trevor King2012-08-242-2/+700
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is an initial step towards improving BE's efficiency. Previously, BE gets slow as the bug count increases for several commands (e.g. `be list`), because it takes time to load the bugdir information from disk at each invocation. If you use a remote repo (`be --repo http://localhost:8000/ list`), the server process may have already loaded the repo from disk, but now your listing process has to fetch everything over the wire. This is even worse than loading it from disk. With the new `be serve-commands` and `be --server URL ...` pair, the bugdir loading happens once on the server, and all the processing is also carried out on the server. This means that calls like `be --server http://localhost:8000/ list` will scale much better than other methods. For example: $ time be --server http://localhost:8000/ list > /dev/null real 0m2.234s user 0m0.548s sys 0m0.114s $ time be --server http://localhost:8000/ list > /dev/null real 0m0.730s user 0m0.548s sys 0m0.112s $ time be list > /dev/null real 0m2.453s user 0m2.289s sys 0m0.166s $ time be list > /dev/null real 0m2.521s user 0m2.350s sys 0m0.172s The first call to a cold server takes about the same time as a local call, because you need to load the bugs from the filesystem. However, later calls to a warm server are 3x faster, while later local calls are still slow. This is currently a minimal working implementation. There's a good deal of code in libbe.command.serve that I'd like to abstract out into a libbe.util library (since there's still a bunch of duplication between libbe.command.serve and libbe.command.serve_commands). The remote calls are also not as fast as I'd like, likely due to library load times. This commit just locks in an initial working implementation.
* command:base: only cleanup UseInterface.storage_callback if it's there.W. Trevor King2012-08-241-1/+2
| | | | | It's hard to see why it wouldn't be, but .setup_command handles the case where it's missing, so we should be consistent here.
* command:base: use is/is-not None instead of ==/!= None in setup_command.W. Trevor King2012-08-241-3/+3
| | | | More Pythonic.
* command:serve: wrap server in ExceptionApp regardless of SSL.W. Trevor King2012-08-241-1/+1
| | | | Previously, only the SSL server was using ExceptionApp.
* command:serve: add SilentRequestHandler to avoid double-logging requests.W. Trevor King2012-08-231-2/+8
| | | | | | | | | | | | | | | | They were being logged by the request handler, and then logged again by WSGI_Object.log_request. After this patch, requests are only logged when logger.level is at a <= level (e.g. closer to DEBUG) than the WSGI_Object.log_level (usually INFO). For example, in Serve_setup_logging, self.logger.setLevel(logging.INFO) will get request logs printed, but self.logger.setLevel(logging.WARNING) will not.
* Make the full UUIDs optional for `new` and `comment`.W. Trevor King2012-03-032-2/+14
| | | | | This makes the default output less threatening for new users, while still supplying the full UUIDs for driving BE from external software.
* Print full UUIDs during `new` and `comment`.Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)2012-03-022-2/+2
|
* Avoid generating another StringIO instance in StringInputOutput.get_stdout().W. Trevor King2012-02-241-2/+1
|
* Ran update-copyright.py.W. Trevor King2012-02-1625-250/+250
|
* Fix my busted 1512c0e2a64e patch to libbe/util/encoding.py.W. Trevor King2011-11-131-1/+1
| | | | | | | | | | | | | | Some temporary changes to encoding.py seem to have been added to commit 1512c0e2a64e19c8d4e5697257a4df5ddd8bc727 Author: W. Trevor King <wking@drexel.edu> Date: Tue Nov 8 07:14:43 2011 -0500 by accident. The initial change came from discussions with Niall Douglas, during which I realized that "filesystem encoding" ususally means the encoding for the *path*, not the *contents*. To avoid further confusion I'd renamed `get_filesystem_encoding` to the less ambiguous `get_text_file_encoding`. This commit should complete the transition.
* Ran update_copyright.py.W. Trevor King2011-11-091-0/+1
|
* Add ImportError to UnknownCommand output in get_command doctest.W. Trevor King2011-07-301-0/+1
| | | | | | | | | | This catches the test result up after: Commit: 0d5c9c68e947617c9d073d5f19351bdd8f3866db Author: W. Trevor King <wking@drexel.edu> Date: Wed May 25 10:30:19 2011 -0400 Attach ImportError message to UnknownCommand to aid debugging.
* Raise UserError if summary is not given to `be commit`.W. Trevor King2011-05-251-0/+3
| | | | | | | | | If the user doesn't provide the summary on the command line, through stdin, or through editor_string, raise an error. This will generally happen with $ be commit (user doesn't enter any text in the editory)
* Attach ImportError message to UnknownCommand to aid debugging.W. Trevor King2011-05-251-3/+8
|
* Rework summary handling in `be commit`.W. Trevor King2011-05-251-6/+18
| | | | | | Now you can run `be commit` with no options and have the summary split off the body automatically. This should be more familiar to most VCS users.
* Run update_copyright.py.W. Trevor King2011-05-2524-11/+44
|
* Move Tim Guirgies' help for status/severity overrides to .W. Trevor King2011-05-253-35/+54
|
* Remove "be set" reference in favour of actual helpTim Guirgies2011-05-252-2/+32
| | | | | | | | Because "be set severity blah" does not actually work, referring users there to set custom severity levels is just cruel (I spent a half hour trying to figure out what I was doing wrong). Thus, it is much easier to, at least for now, state in the help message what they must do in order to get custom severities and statuses.
* Teach be status --help to load per tree configTim Guirgies2011-05-251-0/+4
| | | | | | Again, there is discrepancy between severity.py and status.py. I thought this feature was extremely useful in severity.py and it should be put into status.py too.