|
6 | 6 |
|
7 | 7 | ## tickgit 🎟️ |
8 | 8 |
|
9 | | -Tickets as config. Manage your repository's tickets and todo items as configuration files in your codebase. Use the `tickgit` command to view a snapshot of pending items, summaries of completed items, and historical reports of progress using `git` history. |
| 9 | +`tickgit` is an experiment in code-based project management. It's a tool to help you manage tickets, todo items, and checklists within a codebase. Use the `tickgit` command to view pending tasks, progress reports, completion summaries and historical data (using `git` history). |
10 | 10 |
|
| 11 | +It's certainly not meant to replace project management tools such as JIRA, Trello, etc. It will, hopefully, be a useful way to augment those tools with project management patterns that coexist with your code. As such, it's primary audience is software engineers. |
| 12 | + |
| 13 | +### TODOs |
| 14 | + |
| 15 | +`tickgit todos` will scan a codebase and identify any TODO items in the comments. It will output a report like so: |
| 16 | + |
| 17 | +``` |
| 18 | +# tickgit todos ~/Desktop/facebook/react |
| 19 | +... |
| 20 | +TODO: does clang define __GNUC__ ? |
| 21 | + => /Users/.../Desktop/facebook/react/scripts/perf-counters/src/portability.h:34:3 |
| 22 | +
|
| 23 | +TODO: FIXME! Without this implemented properly, the JIT |
| 24 | + => /Users/.../Desktop/facebook/react/scripts/perf-counters/src/portability.h:133:3 |
| 25 | +
|
| 26 | +TODO: it's awkward to create a bundle for this but if we don't, the package |
| 27 | + => /Users/.../Desktop/facebook/react/scripts/rollup/bundles.js:454:7 |
| 28 | +
|
| 29 | +TODO: this is too permissive. |
| 30 | + => /Users/.../Desktop/facebook/react/scripts/rollup/validate/eslintrc.umd.js:20:7 |
| 31 | +
|
| 32 | +TODO: type it. |
| 33 | + => /Users/.../Desktop/facebook/react/scripts/shared/inlinedHostConfigs.js:25:27 |
| 34 | +
|
| 35 | +123 TODOs Found 📝 |
| 36 | +``` |
| 37 | + |
| 38 | +#### Coming Soon |
| 39 | + |
| 40 | +- [ ] History - get a better sense of how old TODOs are, when they were introduced and by whom |
| 41 | +- [ ] Context - more visibility into the lines of code _around_ a TODO for greater context |
| 42 | + |
| 43 | +### Tickets |
| 44 | + |
| 45 | +Tickets are a way of defining more complex tasks in your codebase as config files. Currently, tickets are HCL files that look like the following: |
11 | 46 |
|
12 | 47 | ```hcl |
13 | 48 | # rocketship.tickgit |
@@ -40,16 +75,27 @@ $ tickgit status |
40 | 75 | ⏳ Thoroughly test the engines |
41 | 76 | ``` |
42 | 77 |
|
| 78 | +#### Coming Soon |
| 79 | + |
| 80 | +- [ ] Simpler ticket definitions - in YAML and/or other (less verbose) config languages |
| 81 | +- [ ] More complex tickets - more states, dependencies on other tickets, etc |
| 82 | + |
| 83 | +### Checklists |
| 84 | + |
| 85 | +_Coming soon_. Checklists will be a way of parsing Markdown checklists in your codebase (either in `.md` files, or within your comments). |
| 86 | + |
| 87 | + |
43 | 88 | ### Why is this useful? |
44 | 89 |
|
45 | | -To be honest, I'm not sure yet. This project is a POC I'm exploring. Keeping tickets next to the code they're meant to describe could have the following benefits: |
| 90 | +To be honest, I'm trying to figure that out. This project is a POC. Keeping tickets next to the code they're meant to describe could have the following benefits: |
46 | 91 |
|
47 | 92 | - Tickets live with the code, no need for a 3rd party tool or system (anyone with git access to the repository has access to contributing to the tickets) |
48 | 93 | - Updating a ticket's status and merging/committing code are the same action, no need to synchronize across multiple tools |
49 | 94 | - Source of truth for a project's ticket history is now the git history, which can be queried and analyzed |
50 | 95 | - Current status of a `goal` can be reported by simply parsing the repository's `head` |
51 | 96 | - Less context switching between the codebase itself and the system describing "what needs to be done" |
52 | 97 |
|
| 98 | +Generally speaking, this is an experiment in ways to do project management, within the codebase of a project. With a `git` history and some clever parsing, quite a bit of metadata about a project can be gleaned from its codebase. Let's see how useful we can make that information. |
53 | 99 |
|
54 | 100 | ### Installation |
55 | 101 |
|
|
0 commit comments