Python implementation of Ditz (http://rubygems.org/gems/ditz).
Project description
Introduction
This package is intended to be a drop-in replacement for the Ditz distributed issue tracker. It provides a pyditz command-line program, which acts (mostly) the same way as ditz, and it adds several other nice things too:
Whereas ditz, when typed on its own, runs the todo command, pyditz drops you into a command shell where you can run Ditz commands and get completion on command names, issue names and release names according to context.
With PyDitz, you don’t have to run it from the same directory where the issue database is; it will look in parent directories for it.
It keeps an intelligent cache of issues, so parsing of all the YAML files isn’t necessary for each command. This greatly improves speed when you have lots of issues.
You can extend PyDitz using plugins that you write—either simple standalone files (similar to the ditz ‘hook’ feature), or packages that use setuptools entrypoints.
You can use the database engine of PyDitz in Python programs to migrate bug databases to and from Ditz format, or create summary reports in your own favourite format. Me, I prefer reStructuredText and rst2pdf.
Requirements
- To install and run it:
PyYAML, Jinja2, voluptuous and six
- To have nice terminal highlighting output:
- To mark up description and comment text in HTML output:
Markups (and the modules it needs to function)
- To run the test suite:
- To build the documentation:
Installation
The usual incantation will install things:
pip install pyditz
This will install the ditz module and a console command called pyditz to invoke in a similar manner to the original ditz.
If you want to shadow the original completely, and have the ditz command run this instead, you have two options:
Define the environment variable DITZCMD to be ditz. This only takes effect at installation time. Of course, instead of ditz you can choose anything else more keyboard-friendly.
Create your own shell alias.
Documentation
The current documentation can be found online here. You can also look at an example of the HTML output.
License
PyDitz is distributed under the GNU Lesser General Public License, v2 or later.
Links
If you like this, here’s a few more things you might want to check out:
Pitz is another Ditz-alike issue tracker, also written in Python. Its bug database is not compatible with Ditz, and I didn’t have much luck getting it to work, but it might work for you.
There’s another Python project of the same name called akaihola-pyditz. (I only found it after publishing mine, or I might have chosen another name.) Not updated for 6 years, but it has some ideas for logging work that might be useful.
There’s also ditz plus plus, another reimplemenation written in C++, although that hasn’t been updated since mid-2013.
If you’re a fan of GNU Emacs, there’s a ditz-mode written for it that I maintain. It works with the original Ditz, or PyDitz.
Changes
Version 0.9.1 (2016-03-24)
bugfix: Line wrapping problem in terminal
bugfix: Fix problems with version detection
Minor package improvements
Version 0.9 (2015-09-27)
bugfix: Bytes output if pygments is not installed
bugfix: Initialization command doesn’t work
Implement the ‘edit’ command
Implement command plugins
Add support for markup in HTML output
Allow per-project config file
New command to list all issues
Add project file to version control
Add validation schemas
Search more fields with grep
Version 0.8.1 (2015-08-18)
bugfix: Fix non-ASCII text in issue data
bugfix: HTML plugin load failure
Version 0.8 (2014-12-05)
bugfix: Grep arguments not handled correctly
Allow customization of HTML output
Allow issues to be specified by ID
Add progress time indicator to ‘show’ and HTML
Implement exporting directly to archive
Add section arg to config command
Add exporter plugin system
Add python 3 support
Improve the default HTML style
Move ~/.ditzrc to ~/.ditz/ditz.cfg
Relicense under LGPL
Version 0.7 (2014-09-28)
bugfix: Handle YAML comment char in strings
Add VCS support
Add unicode support
Add issue type column to HTML output
Add command to display configuration
Implement the ‘validate’ command
Add output highlighting
Add support for command aliases
Add pager support
Improve the documentation
Wire up the remaining program options
Improve configuration settings
Improve logging command output
Version 0.6.2 (2014-08-10)
bugfix: Name substitution not done in issue description
Version 0.6.1 (2014-08-09)
bugfix: Print message on successful unassignment
bugfix: Ignore unreleased releases when assigning issues
Version 0.6 (2014-03-28)
bugfix: Handle non-ASCII characters when writing output
Install as ‘ditz’ if required by user
Add HTML component column if multiple components in use
Don’t show HTML release column for unassigned issues
Print message on successful issue assignment
Version 0.5.2 (2013-12-20)
bugfix: Blank lines shouldn’t end a comment
Version 0.5.1 (2013-12-18)
bugfix: Prompt for component when creating issues
bugfix: Show issue status even if not closed
Version 0.5 (2013-12-12)
bugfix: Issue names not replaced in comment text
bugfix: Reconfigure clobbers existing file
Add sortable tables to HTML output
Write some user documentation
Add a user config file
Version 0.4 (2013-12-09)
Implement the ‘html’ command
Version 0.3 (2013-11-23)
bugfix: Multiple ‘issuedir’ keywords in init
Version 0.2 (2013-11-23)
bugfix: Fix up problems with blank comments
Version 0.1 (2013-11-23)
bugfix: Fix round-tripping of issue files
Implement all the ditz commands
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Hashes for pyditz-0.9.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0238b8d354b85f4fec0483921797735bc1f1896ee08335da2064108a64bd0b8 |
|
MD5 | a108d85b634d96761e7de253a0faba1d |
|
BLAKE2b-256 | e4eb91f1418853965bf180c0b31f22b2379740afcec29fa55921a077ffbdfa5f |