For a while i have had the urge to do issue tracking on my own projects as simple as possible. Just plain text files that i can easily replicate between my devices and that makes it possible for me to work in offline first mode.
I keep these handwritten issues in a git repository for synchronizing between my different devices just as i do with code.
The .issue file format consists of a title
= my first issue followed by a
list of properties
id: 1 type: story created: 2022-12-23 08:00:00 CET
The properties are user defined, meaning that you can add any property you want.
After the property section is the body section which is essentially the rest of the issue text.
An example of a full issue of mine is:
= Implement create issue command :id 1 :created 2022-12-14 06:25:00 GMT+1 :updated 2022-12-15 06:59:10 GMT+1 :type story :status closed :resolved IMPLEMENTED :assigned jzs :kanban complete Implement a command that creates an issue. The command must use the config in the project root for determining standard values, which fields to ask for, etc. When the command has finished asking for input, it must launch your editor of choice to allow you to finish the ticket. This feature of launching an editor for a ticket description must be optional. Usage of command: `$ tuigile create "My first ticket"` If the folder (or any subfolders does not contain a .tuigile.conf then the command must fail asking you to initialize a project first using the `$ tuigile init "my first project"` command. = Comments jzs: Implemented but order of keys are random. Keep order from config file! Also fix naming of file. Make the file naming configurable possibly. These are tracked in tuigile:id=11, tuigile:id=12 and tuigile:id=13
In order to give me an easy way of getting an overview, i am currently working on a command line program to visualize these tickets in a more organized way. This cli must not know anything about which properties are available in tickets. That way it becomes as flexible as possible to how people like to organize their own tickets.
Example commands will be:
$ tuigile init initializes a project by creating a
.tuigile.conf file in the
present working directory. All subsequent commands run will detect tickets
located in this directory and all sub directories.
$ tuigile list --filter "status:open" --filter "assigned:jzs" --view id,kanban,title
would show all tickets that has status set to open and assigned set to jzs.
It will print out the properties id,kanban and title as columns. Title being a
special keyword for the title of the ticket and not a property named title.
$ tuigile show id:2 would print out all tickets that has the property id set
to 2. Hopefully this is only one issue.
I also want to have the possibility to define default filters, default views
and default values when creating new tickets. These defaults should be project
specific and a part of the
.tuigile.conf configuration file.
I will not promise when i will make the cli available, but what i can say is that i am currently working on it.
If you have ideas, feedback or just want to discuss you can check out the newly created mailing list for this project https://lists.sr.ht/~jzs/tuigile (it is public)