77 lines
2.9 KiB
Text
77 lines
2.9 KiB
Text
figure out how to make useful reports
|
|
|
|
In task-warrior we had a pair of custom reports, one to list things we
|
|
did last week and another to list things we were planning to do this
|
|
coming week.
|
|
|
|
Docs here:
|
|
* custom reports: <https://taskwarrior.org/docs/report/#custom-reports>
|
|
* end date (brief): <https://taskwarrior.org/docs/using_dates/#other-dates>
|
|
|
|
|
|
# Done last week
|
|
|
|
> report.weekly.prev.description='Tasks Completed Last Week'
|
|
> report.weekly.prev.columns=uuid,description.desc,project,assignee,end
|
|
> report.weekly.prev.sort=end+
|
|
> report.weekly.prev.filter=+COMPLETED and -hidden and (end.after=sow - 1 week) and (end.by=eow - 1 week)
|
|
|
|
The "done last week" report filters on a column called `end`, which is
|
|
a datetime made up by tw indicating when the ticket became COMPLETED.
|
|
|
|
|
|
# To do this week
|
|
|
|
> report.selected.external.description='Tasks Selected for This Week'
|
|
> report.selected.external.columns=project,description.desc,assignee,due
|
|
> report.selected.external.sort=assignee+/,urgency-
|
|
> report.selected.external.filter=-COMPLETED and -internal and -hidden and (due.by=eow or +selected or +interrupt)
|
|
|
|
The "to do this week" report looks for the tags "selected" or "interrupt",
|
|
or a due date this week.
|
|
|
|
|
|
# What is to be done
|
|
|
|
## Done last week
|
|
|
|
I can imagine finding the issues with state=done, running `git log` on
|
|
their state file, finding the datetime of the transition to done, and
|
|
selecting the ones where that datetime is in a particular time window.
|
|
|
|
This has the drawback that it's hard to lie about... With taskwarrior
|
|
I often found myself finishing a task on Week X, but forgetting to mark
|
|
it complete. Then the Monday of Week X+1 i would mark it complete.
|
|
If i didn't override the completion-date the task would look like it
|
|
was completed on Week X+1, not Week X like i wanted.
|
|
|
|
In git we have `git commit --date=DATE`, but that's only usable at
|
|
commit-time (and awkward to express to ent). We can rewrite history with
|
|
`git rebase`, but only until we `ent sync`.
|
|
|
|
Maybe the `state` file should have a date in it, in addition to the
|
|
state word? Or maybe `completion-date` should be a key in a per-issue
|
|
key-value store? Is that kv store related to tags? Idk...
|
|
|
|
Not sure how to express to ent what completion-dates i want to see.
|
|
Maybe a new filter type? `ent list finished=2025-07-01..now`?
|
|
|
|
Maybe we can use git tags in the entomologist-data branch somehow?
|
|
`git log` between tags and look for "state: _ -> done". But how to
|
|
position the tags on the commits i want? Seems cumbersome.
|
|
|
|
|
|
## To do this week
|
|
|
|
entomologist doesn't have due dates yet, but we should probably add that.
|
|
|
|
entomologist has tags so it's be easy to list "tags=selected,interrupt".
|
|
Or maybe we should just use "state=inprogress"?
|
|
|
|
|
|
## Misc thoughts
|
|
|
|
It's nice that we can add whatever files we want to the
|
|
`entomologist-data` branch. We could add a directory of report
|
|
definitions, and have them be shared across the project, and not have
|
|
to type them out every time.
|