aboutsummaryrefslogtreecommitdiff

td

pt | fr | eo | es

Minimalistic bug tracker CLI.

Create and maintain a TODOs.md file for bug tracking.

It is a tool for distributed, offline issue tracking, reified as a simple text file in the repository.

Usage

# inside a Git repository
# create the basic configuration

$ echo 'TD_USE_BUILTIN_HOOKS=git' > .tdrc



# create a sample task

$ td -cm 'Implement feature A'
File "TODOs.md" doesn't exist yet, creating a brand new one.
[main 9d854ac] TODOs.md: Add #td-1c1e8f92-ed60-1a5b-89d9-cb2b140e498b
 1 file changed, 4 insertions(+)
 create mode 100644 TODOs.md
#td-1c1e8f92-ed60-1a5b-89d9-cb2b140e498b added to TODOs.md.



# register a bug, and edit its content with $VISUAL

$ td -t bug -m 'Fix B'
Type "bug" doesn't exist yet, creating new section with it.
[main 0f79796] TODOs.md: Add #td-1794611e-bfd7-9de5-3e71-cd0dcb3a1d77
 1 file changed, 10 insertions(+)
#td-1794611e-bfd7-9de5-3e71-cd0dcb3a1d77 added to TODOs.md.



# add new task, with its initial state as DOING

$ td -cm 'Work on C' -s DOING
[main 1be9c00] TODOs.md: Add #td-1bbc2775-49b4-6112-5a9b-8f7fa466997c
 1 file changed, 3 insertions(+)
#td-1bbc2775-49b4-6112-5a9b-8f7fa466997c added to TODOs.md.



# create custom task type, and use it to # register a new task

$ cat <<'EOF' >> .tdrc
export TD_TYPES='
task:Tasks
issue:Issues
idea:Ideas
'
EOF
$ td -cm 'Fix D' -t issue
Type "issue" doesn't exist yet, creating new section with it.
[main 7b888e3] TODOs.md: Add #td-231e1472-d32f-69d0-6c62-b924b70a5b7f
 1 file changed, 6 insertions(+)
#td-231e1472-d32f-69d0-6c62-b924b70a5b7f added to TODOs.md.

The final TODOs.md file is:

# Tasks

## DOING Work on C {#td-1bbc2775-49b4-6112-5a9b-8f7fa466997c}
- DOING in 2022-01-16

## TODO Implement feature A {#td-1c1e8f92-ed60-1a5b-89d9-cb2b140e498b}
- TODO in 2022-01-16


# Bugs

## TODO Fix B {#td-1794611e-bfd7-9de5-3e71-cd0dcb3a1d77}
- TODO in 2022-01-16

---

B must be fixed.


# Issues

## TODO Fix D {#td-231e1472-d32f-69d0-6c62-b924b70a5b7f}
- TODO in 2022-01-16

Installation

$ make
$ make check
# make install

You can pass PREFIX or DESTDIR to make if you'd like:

$ make         PREFIX=$HOME/.local
$ make check
$ make install PREFIX=$HOME/.local

There are no dependencies or requirements, only standard tools such as POSIX sed, POSIX make, etc.

Documentation

Manuals

The documentation is available via installed manpages or online. Start with [td.tutorial.7] (pt, fr, eo, es), and see the rest afterwards:

  • [td.1] (pt, fr, eo, es): CLI usage reference;
  • [tdrc.5] (pt, fr, eo, es): .tdrc file format reference;
  • [td.tutorial.7] (pt, fr, eo, es): getting started and tutorial for starting to use td;
  • [td.recipes.7] (pt, fr, eo, es): common HOWTOs and usage recipes;
  • [td.why.7] (pt, fr, eo, es): motivation and explanation of why create this tool.

Directory structure

The directory structure of the repository is: - aux/: personal scripts and helpers I've vendored in to ensure the repository is self contained, feel free to ignore it; - doc/: manpages, with their translated versions; - po/: gettext .po files for the translated languages and hunspell dictionaries for spell checking; - src/: main source code for the project; - tests/: integration tests for the project.

Contributing

Extra tools used for development are: - ShellCheck for validating scripts; - po4a, mdpo and gettext for i18n and l10n support; - pandoc for generating the documentation HTML and website.

For running the extra development-only checks, run:

$ make dev-check

and for generating the documentation HTML and website, run:

$ make public

Send contributions to the mailing list via git send-email.

Releases

License

The code is licensed under GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later).