Project name

"Distributed issue tracker" in Latin is "Distribuit EXitus ELIT" from which name Dexelit is made.

Directory structure

One ticket, per file, but also, should be possible to write many tickets to one file, and then using a tool, this file will be parsed and split in to many tickets.

Example of file structure with files, that contains one ticket:

`-- my-projects
    |-- my-ticket.rst
    `-- other-ticket.rst

Multiple tickets from one file

Example of single file, with many tickets, that can be split in to many tickets using a tool:

My ticket

:created: 2012-01-01 10:00
:author: sirex
:type: ticket

Ticket description.

Other ticket

:created: 2012-01-01 10:30
:author: sirex
:type: ticket

Other ticket description.

To split this file:

$ dexelit split filename.rst

It is possible to keep many tickets even in hierarchical structure in one file, example:

Ticket 1

:type: ticket


Sub Ticket 2

:type: ticket


Sub Sub Ticket 3

:type: ticket


Tickets will be recognized by :type: ticket field, and hierarchy will be taken from headings.


Tickets can have categories:

`-- my-project
    |-- my-ticket.rst
    |-- feature-tickets
    |   |-- index.rst
    |   `-- a-feature-ticket.rst
    `-- other-ticket.rst

index.rst file describes category as one ticket.

Updating multiple tickets

It is possible, using a tool to manage multiple tickets at once, for example:

$ dexelit manage ./my-project/

This command generates editable file, that will be opened with your favorite text editor and will content looks like this:

# Available actions:
# * delete - delete following tickets, deleted tickets still stays under
#   revision control an can be restored if needed.
# * priority=<priority> - set ticket priority to <priority>, <priority>
#   must be integer number.
# * close - mark tickets as closed.
# * assign=<user> - assigne tickets to a user, if <user> is empty, then
#   tickets will be unassigned.

action: close


action: priority=100 assign=sirex

All indented actions will be updated by specified action.


Old and closed tickets can be deleted automatically using this command:

$ dexelit archive


Tickets can be imported from Trac:

$ dexelit pull trac+http://issues.myproject.com/


You can export all modifications to an external issue tracker using this command:

$ dexelit push trac+http://issues.myproject.com/

You can only export modifications if you have previously imported from that source. After import, dexelit tracks last update info, and only exports what is modified locally.

Build-in web server

Ticket tracker has build-in web server based on Django, that displays all tickets in web browser.

Integration with gTimeLog

It is possible to integrate ticket tracker with gTimeLog, for time management. To enable gTimeLog support, you need to enable it in ~/.dexelitrc file.

Ticket tracker simply checks all gTimeLog entries and tries to match them with projects.

Also it is possible to record time using this command:

$ cd /path/to/my-project/
$ dexelit log ticket.rst

This command will add line to gTimeLog log file:

2012-07-12 13:39: my-project: ticket

Also calculates whole spent time for this ticket and updates :spent: field.


Ticket can have reviewers, that are responsible to accept ticket if it is implemented correctly.


My ticket

:author: sirex
:reviewers: laurynas marius
:type: ticket

If laurynas accepts this ticket, then :reviewers: line should look like this:

:reviewers: laurynas=ok marius


Comment can be written as .. note:: blocks everywhere in ticket description.

Project description file

index.rst file in project root is used as project description file.

Project repositories

Projects can have many repositories with one default. All repositories can be specified in index.rst project file this way:


Default project repository

:repository: http://hg.example.com/default
:default: yes
:type: repository=mercurial

My branch

:repository: http://hg.example.com/my-branch
:type: repository=mercurial

Description of this repository.