Implement Milestones. A milestone describes a bigger task, which requires
multiple issues to be resolved, possible in a given set of time.
This means, a milestone may have a deadline in which all the Issues
may be completed. The deadline shall currently have no effect on the milestone
and simply provide a hint.
Add a description to a milestone.
Add Issues to an existing milestone. This may be done by using special
"milestone-" labels. The user should then be able to see all current
milestones within a new menu. The milestones shall have a completion-value,
which will be a percentage determined by all associated issues and their
open/close-state. This means a milestone should be 100% complete, if all
assigned Issues are closed.
Like Issues, milestones may be active or closed as needed.
NOTE: Maybe milestones can be implemented as Issues, with only some fanzy UI
variation (progressbar). Could extend go code to add milestones as composite of the composite-pattern
Sascha (GlancingMind) commented (edited)
As you noticed, milestones and labels are conceptually very close. That said, they should probably have their own operation in git-bug's core instead of piggy-backing on the labels. That's a non-trivial amount of code to write, but that would be a lot of copy-pasting from the label's code.
If that's out of scope for your project maybe an intermediary solution would be to add the milestone's specific element in the GraphQL API and then map those into the label system? That way the webUI would stay untouched once someone actually implement that in the core.
What if labels could have labels, and one of THOSE labels was "milestone"? Then you could use label operations on milestones without duplicating the code. And places that currently filter on label could optionally filter on labels with certain labels.
github-actions (github-actions) commented
This bot triages issues in order to help the maintainers identify what
needs attention, according to the following lifecycle rules:
After 90 days of inactivity, lifecycle/stale is applied
After 90 days of inactivity since lifecycle/stale was applied,
lifecycle/rotten is applied
This bot will not automatically close stale issues.
To remove the stale status, you can:
Remove the stale label from this issue
Comment on this issue
Close this issue
Offer to help out with triaging
To avoid automatic lifecycle management of this issue, add
lifecycle/frozen.