41 KiB
Issues
The hledger project's issue tracker is on github. It contains:
- BUG issues - failures in some part of the hledger project (the main hledger packages, docs, website..)
- WISH issues - feature proposals, enhancement requests
- uncategorised issues - we don't know what these are yet
- pull requests - proposed changes to code and docs
Here are some shortcut urls:
- https://issues.hledger.org - all issues, open or closed
- https://bugs.hledger.org - open BUGs
- https://wishes.hledger.org - open WISHes
- https://prs.hledger.org - open pull requests
- https://readyprs.hledger.org - open pull requests ready for review
- https://draftprs.hledger.org - open draft pull requests
- https://bugs.hledger.org/new - report a new issue
- https://hledger.org/regressions - how to claim regression bounties
Open issues
By topic and type.
Some loose conventions:
- In bug titles, mention the hledger version in which the bug first appeared (and avoid mentioning version numbers otherwise). This allows searches like new issues in 1.22 and regressions in 1.22
Labels
https://github.com/simonmichael/hledger/labels, also listed at open issues above, are used to categorise:
- whether an issue is a bug (red) or a wish (pink)
- related subcomponents (tools, commands, input/output formats) (light blue)
- related general topics (light green)
- related platforms (light purple)
- whether a bounty has been offered (dark green)
- why an issue is blocked (dark grey) or was closed (black)
- low priority info, like "imported" (white)
Labels can also be used as prefixes in issue/PR titles, as prefixes in commit messages, etc.
Custodians
If you are interested in helping with a particular component for a while, please add yourself as a custodian in Open Issues table above. A custodian's job is to help manage the issues, rally the troops, and drive the open issue count towards zero. The more custodians, the better! By dividing up the work this way, we can scale and make forward progress.
Milestones and Projects
Milestones are used a little bit to plan releases. In 2017 we experimented with projects, but in 2018 milestones are in favour again..
Estimates
You might see some experiments in estimate tracking, where some issue names might have a suffix noting estimated and spent time. Basic format:
ESTIMATEDTOTALTASKTIME\|TIMESPENTSOFAR
hours estimated, no time spent [..] half an hour estimated (a dot is ~a quarter hour, as in timedot format) [1d] one day estimated (a day is ~4 hours) [1w] one week estimated (a week is ~5 days or ~20 hours) [3|2] three hours estimated, about two hours spent so far
1\|1w\|2d
two days spent so far ``` Estimates are always for the total time cost (not time remaining). Estimates are not usually changed, a new estimate is added instead. Numbers are very approximate, but better than nothing.
Trello
The trello board (trello.hledger.org) is an old collection of wishlist items. This should probably be considered deprecated.
Prioritising
As of 2023 it's not too much of a problem knowing what's high priority to fix. Still, https://lostgarden.home.blog/2008/05/20/improving-bug-triage-with-user-pain/ describes an interesting method of ranking issues by a single "User Pain" metric, what might be useful to try on our open bugs. What adaptation of it might work for the hledger project ? Here's a simplified version:
Severity (How serious is this bug ?)
- 5: Data loss or privacy/security loss bug.
- 4: Regression, crash or major usability/doc bug.
- 3: Installability, packaging or new user experience bug. A potential user could fail to get started.
- 2: Minor/moderate usability/doc bug. Easy to avoid or not a big deal.
- 1: Cleanup/design/developer bug. Significant only to developers and design-minded users.
Likelihood (Who is likely to be affected by this bug ?)
- 5: Affects all users.
- 4: Affects most users.
- 3: Affects a minority of users.
- 2: Affects only packagers or developers.
- 1: Affects almost no one.
User Pain = S * L / 25
(Severity * Likelihood / (Max Severity * Max Likelihood) )
- All open bugs are listed in order of User Pain (AKA Priority).
- Developers check the Pain List daily and fix the highest pain bugs on the list.
- The team can set easy-to-understand quality bars. For example, they can say “In order to release, we want no bugs greater than 30 pain.”
- If there are no bugs left above the current quality bar, they work on feature work.
- When you do stumble upon a bug that will take more than a week to fix, it is flagged as a ‘killer’ bug, for special treatment.