Support milestones

Labels: lifecycle/rotten

Timeline

Sascha (GlancingMind) opened (edited)

This is an upstreamed issue originating here: https://github.com/GlancingMind/git-bug/issues/11

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.

Originally posted by @MichaelMure in https://github.com/GlancingMind/git-bug/issues/11#issuecomment-792815175

github-actions (github-actions) commented

This bot triages untriaged issues and PRs according to the following rules:

  • After 90 days of inactivity, the lifecycle/stale label is applied
  • After 30 days of inactivity since lifecycle/stale was applied, the issue is closed

To remove the stale status, you can:

  • Remove the lifecycle/stale label
  • Comment on this issue

github-actions (github-actions) added label lifecycle/stale

Clarence "Sparr" Risher (sparr) commented

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.

github-actions (github-actions) added label lifecycle/rotten

github-actions (github-actions) removed label lifecycle/stale

sudoforge removed label lifecycle/dormant