Deprecate milestone closed state
- Having a milestone be closed is not a very useful feature.
- We should not have any open versus closed states for milestones.
- A milestone should just have start/end dates, a title, and a description. It should have no other first-class attributes, and it should have no states.
- (Scoping, i.e. project versus group milestones, is a separate discussion unrelated here.)
- When an open milestone has a due date that is before today, the UI indicates that it is "expired" or "past due". This is not particularly useful information. There are no specific use cases/features inside GitLab where this is helpful.
- In various UIs, you can see that a milestone is nearing completion with percentage complete. This is somewhat helpful information. But for many teams (such as GitLab), you don't care about the entire milestone's worth of issues. You care about a subset of them, and you get them by using labels or other filters. So in the future, we would solve these types of use cases within the scope you care about. For example, seeing burndown charts with respect to a scope, i.e. https://gitlab.com/gitlab-org/gitlab-ee/issues/6056#note_74196155. So even in this case, there's no need to manually mark a milestone as closed. GitLab would just tell you a milestone is "complete" dynamically. There's need to store an explicit state.