"Distributed issue tracker" in Latin is "Distribuit EXitus ELIT" from which name Dexelit is made.
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 Description. Sub Ticket 2 ------------ :type: ticket Description. Sub Sub Ticket 3 '''''''''''''''' :type: ticket Description.
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 my-ticket.rst feature-tickets/index.rst action: priority=100 assign=sirex feature-tickets/a-feature-ticket.rst other-ticket.rst
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.
Projects can have many repositories with one default. All repositories can be specified in index.rst project file this way:
Repositories ============ 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.