aboutsummaryrefslogtreecommitdiffstats
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>
* util:wsgi: Don't clobber `handler` when clearing StreamHandlersW. Trevor King2013-01-311-2/+2
| | | | | | | | | | | | | This bug was introduced in: commit 400c9251eedbd1caa3b28135b4bc5d2bf2124ac5 Author: W. Trevor King <wking@tremily.us> Date: Thu Jan 24 02:43:53 2013 -0500 util:wsgi: If we're logging to a file, shift libbe.LOG too where the removed handlers clobbered our initial TimedRotatingFileHandler.
* util:wsgi: If we're logging to a file, shift libbe.LOG tooW. Trevor King2013-01-241-0/+5
| | | | This avoids attempts to log to stderr if we're daemonizing the server.
* Transition to libbe.LOG for loggingW. Trevor King2013-01-247-35/+41
| | | | | | | 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.
* MANIFEST.in: Distribute AUTHORS with the BE sourceW. Trevor King2013-01-231-0/+1
|
* MANIFEST.in: Distribute COPYING with the BE sourceW. Trevor King2013-01-231-0/+1
|
* setup.py: Mention Jinja and CherryPy as requirementsW. Trevor King2013-01-231-1/+4
| | | | | | | | | | | | | | | | Unfortunately, none of the current Python installation tools (easy_install, pip, others?) actaully use the `Requires` field that this populates [1,2], and it's gone since PEP 345, replaced by `Requires-Dist` [2,3,4]. Eventually a new packaging library (distutils2, packaging, distlib, ...) will land in the Python standard library and we can use whatever interface it provides for specifying dependencies [5]. [1]: http://blog.doughellmann.com/2007/11/requiring-packages-with-distutils.html [2]: http://ziade.org/2010/02/10/pep-345-and-386-accepted-summary-of-changes/ [3]: http://www.python.org/dev/peps/pep-0345/#requires-dist-multiple-use [4]: http://www.python.org/dev/peps/pep-0426/#requires-dist-multiple-use [5]: http://ncoghlan_devs-python-notes.readthedocs.org/en/latest/pep_ideas/core_packaging_api.html
* storage:util:upgrade: Strip any trailing space from the versionW. Trevor King2013-01-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Not just '\n'. Mark Mikofski reported an error on the upgrade from 1.4 to 1.5 on MS Windows: > upgrading bugdir from "Bugs Everywhere Directory v1.4" to "Bugs Everywhere Directory v1.5" > Traceback (most recent call last): > ... > File "c:\...\libbe\storage\util\upgrade.py", line 141, in check_initial_version > assert version == self.initial_version, '%s: %s' % (path, version) > AssertionError: c:\...\.be\version: Bugs Everywhere Directory v1.4 > > **notes:** I set a breakpoint and it does seem that they are not the same > (Pdb) self.initial_version > 'Bugs Everywhere Directory v1.4' > (Pdb) version > u'Bugs Everywhere Directory v1.4\r' We don't need to convert to Unicode, because on Python 2.7: $ python2.7 -c "print('a' == u'a')" True Strange, but true ;). One day we'll migrate BE to Python 3...
* update-copyright: Bump to version 0.5 (requires Python 3)W. Trevor King2013-01-231-0/+0
| | | | Upgrade to match our configuration file.
* 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>
* ui:util:pager: cleanup pager implementationW. Trevor King2012-11-291-28/+45
| | | | | | | | | | | | | Changes: * Import libraries with an underscore prefix to avoid polluting the module's public namespace. * Use a copy `env` to avoid messing with the child process' environment. * Pass the tweaked environment on to the PAGER (e.g. for PATH). * Handle PAGER='' (by not paging). * Use shlex.split to handle cases like PAGER='less -FRSX' (thanks to Da_Blitz from pocketnix.org for the bug report and shlex idea).
* ui:util:pager: document Nathan Weizenbaum as author of Ruby inspirationW. Trevor King2012-11-291-1/+2
| | | | | | | | | | Nathan's post is released under CC BY-SA 3.0 Unported. According the the FSF, the CC BY-SA 2.0 Generic was not compatible with BE's GPLv2+ [1]. I expect my Python implementation is sufficiently different from Nathan's original notes to be classified as "fair use" and not an "adaptation". [1]: http://www.gnu.org/licenses/license-list.html#ccbysa
* release.py: use Python 2.7 for sphinx-buildW. Trevor King2012-11-121-1/+2
|
* doc:Makefile: use Python 2.7 for generate-libbe-txt.pyW. Trevor King2012-11-121-1/+1
|
* storage:base: convert to Python 3.3 compatibilityW. Trevor King2012-11-121-6/+8
|
* storage: convert to Python 3 compatibilityW. Trevor King2012-11-121-9/+9
|
* version: convert to Python 3 compatibilityW. Trevor King2012-11-121-10/+12
|
* test: convert to Python 3 compatibilityW. Trevor King2012-11-121-3/+3
|
* release.py: build HTML docs when cutting releasesW. Trevor King2012-11-121-0/+7
|
* util:wsgi: handle all dispatch() exceptions in BEExceptionAppW. Trevor King2012-10-281-9/+15
| | | | | | This brings BEExceptionApp into closer agreement with libbe.ui.command_line.dispatch(), and avoids having the server go down when a user submits a silly command.
* util:http: special handling for HTTP_USER_ERROR in get_post_url().W. Trevor King2012-10-281-4/+5
|
* Use libbe.util.http.HTTP_USER_ERROR everywhere instead of hardcoding 418W. Trevor King2012-10-284-9/+7
|
* util:wsgi: catch NoIDMatches in BEExceptionAppW. Trevor King2012-10-281-0/+4
|
* util:wsgi: add --daemon, --pidfile, and --logfileW. Trevor King2012-10-281-25/+151
| | | | | | | | | | | | | | | | | | | | This allows you to manage BE servers from inetd scripts, etc. Shortcomings of the current implementation: * ServerCommand._daemonize() currently only sets a SIGTERM handler and double forks. If you want to do this right, see PEP 3143. Unfortunately, the PEP seems to have stalled, python-daemon appears unmaintained, and I don't care enough at the moment to do this right. * ServerCommand._get_pidfile() races between checking for an existing PID file and claiming the file itself. It is possible that two processes would check around the same time, and both see no existing file. Then they would both open the PID file and write their pid, without noticing that the other process was contending for the file. Solving this requires file locking, which is difficult to do portably. This shouldn't be an issue in normal operation, where each server will be using its own PID file path.
* util:wsgi: fix From -> from typo in pyOpenSSL commentW. Trevor King2012-10-271-1/+1
|
* util:wsgi: fix get_cert_filenames -> _get_cert_filenames typoW. Trevor King2012-10-271-1/+1
| | | | | | | | | | | This was broken in the creation of libbe.util.wsgi from libbe.command.serve: commit 0fa17f6bf6a809df14ae1930542059a9e62066b0 Author: W. Trevor King <wking@tremily.us> Date: Mon Aug 27 13:37:58 2012 -0400 libbe:util:wsgi: extract WSGI utilities into a separate module.
* util:wsgi: import os.path for _get_cert_filenames()W. Trevor King2012-10-271-0/+1
| | | | | | | | | | | This was lost in the creation of libbe.util.wsgi from libbe.command.serve: commit 0fa17f6bf6a809df14ae1930542059a9e62066b0 Author: W. Trevor King <wking@tremily.us> Date: Mon Aug 27 13:37:58 2012 -0400 libbe:util:wsgi: extract WSGI utilities into a separate module.
* doc:install: CherryPy is *not* used for HTTP, only for HTTPS.W. Trevor King2012-10-271-3/+4
| | | | | | For plain HTTP, we use wsgiref.simple_server from the stdlib. Also include the `html` command as a WSGI-based command.
* util:wsgi: fix Clossing -> Closing typo.W. Trevor King2012-10-271-1/+1
|
* util:wsgi: remove %default from option help stringsW. Trevor King2012-10-271-2/+2
|
* command:html: remove %default from option help stringsW. Trevor King2012-10-271-6/+5
|
* README: Update NumPy/SciPy doc linkW. Trevor King2012-10-271-1/+1
|
* README: wrap doc/index.txt reference in backticksW. Trevor King2012-10-271-2/+2
| | | | | File names, code, etc., should have special markup so they aren't confused with regular text.
* storage:util:upgrade: use YAML parser to get BE Tree 1 0 settingsW. Trevor King2012-10-271-1/+1
| | | | | | | | | | | This fixes the "Bugs Everywhere Tree 1 0" -> "Bugs Everywhere Directory v1.1" upgrade broken by the switch to JSON in: commit a95915c6c7d6a4e29c1e5547580e0c1fed2467e1 Author: W. Trevor King <wking@tremily.us> Date: Mon Sep 17 08:14:21 2012 -0400 storage:util:mapfile: convert YAML settings to JSON.
* misc:completion:be.zsh: update import-xml --comment-root -> --rootW. Trevor King2012-10-271-2/+2
| | | | | | | | | | This catches the script up with: 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.
* test_usage.sh: update import-xml --comment-root -> --rootW. Trevor King2012-10-271-1/+1
| | | | | | | | | | This catches the tests up with: 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.
* storage:vcs:git: don't accept pygit2 version 0.17.3.W. Trevor King2012-10-271-2/+2
| | | | | | | | | | | | | | | | My Repository.revparse_single() series was merged into pygit2 with: Merge: 3e9daa4 0238fb7 Author: J. David Ibáñez <jdavid.ibp@gmail.com> Date: Tue Sep 25 15:10:55 2012 +0200 Merge remote-tracking branch 'wking/revparse' But this happened after the 0.17.3 release. The next pygit2 release should contain the .revparse_single() code. The getattr() hackery works because versions of pygit2 before 0.17.3 lacked a __version__ attribute.
* doc:power: add Zsh completion location and update Bash install locationW. Trevor King2012-10-271-1/+3
| | | | | This puts both scripts in the right spot on Gentoo, and shows the suggested installed filename (not just the suggested directory).
* 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
|
* doc:tutorial: use a Git tag for the `be diff` exampleW. Trevor King2012-10-261-2/+8
| | | | | | I haven't tagged 1.1.0 yet, but earlier tags do not use Bugs Everywhere Directory v1.5, and we don't have on-the-fly storage updates yet.
* doc:tutorial: fix ReST formatting for `be show --xml` exampleW. Trevor King2012-10-261-1/+1
|
* doc:tutorial: move "you think" before quote in initialization sectionW. Trevor King2012-10-261-1/+1
|
* doc:tutorial: fix ReST formatting for first `be comment` exampleW. Trevor King2012-10-261-1/+1
|
* doc:install: mention that we *do* post releases nowW. Trevor King2012-10-261-3/+2
|
* doc:install: mention that PyYAML is now optionalW. Trevor King2012-10-261-3/+6
|
* storage:util:upgrade: make yaml import optional (unless it isn't)W. Trevor King2012-10-261-1/+9
| | | | | | Importing `yaml` may fail (if the user doesn't have PyYAML installed), but don't die until we need to use it. This way users without the old YAML formats on disk can run BE without installing PyYAML.
* command: use mapfiles (JSON) instead of YAML for the command serverW. Trevor King2012-10-262-8/+7
|
* storage:util:mapfile: add `context` argument to generate()W. Trevor King2012-10-261-23/+19
|