"In Progress" issue state
- To support portfolio management use cases, we very likely need to introduce first class citizen states.
- Currently we have open and closed issues.
- This issue introduces a new state, called "in progress".
- To keep the scope as small as possible, here are changes.
Changes
- An issue can go from any state to any state. No enforced workflows.
- States are
Open
,In Progress
,Closed
. - On the issue page, you can make these transitions, along with quick actions.
- Same permissions as before. If in the past you could transition an issue to closed. Now you can transition it to in progress.
- On the issue lists page, you can see a new tab called
In Progress
. Project list page, group list page, dashboard list page. - In boards, the last column is still the closed column. If an issue is closed, it ends up there. If an issue is open or in progress, it is in the other columns (Backlog or label columns).
- Auto-closing issues: That should remain the same, and ignore the new in-progress state, e.g.
Fixes #123
should still move it to closed. Reference https://docs.gitlab.com/ce/user/project/issues/automatic_issue_closing.html. - Recording timestamps, for the purpose of https://gitlab.com/gitlab-org/gitlab-ee/issues/3293.
- Open timestamp
- When issue is created/opened for the first time. Does not change.
- Should be created_at (i.e. not new field).
- Enter in progress timestamp
- When an issue enters in progress, upsert this value. (I.e. insert it or update it.
- This field could be blank (since an issue may never enter the in process state).
- Essentially if an issue goes back to open when it was previously in progress, we just pretend it was never in progress for the purpose of the roadmap view. https://gitlab.com/gitlab-org/gitlab-ee/issues/3293
- This should be a new field.
- Latest closed timestamp
- When an issue enters closed, update this value.
- Should be closed_at (i.e. not new field).
- Open timestamp
- Note: May not need to store
In progress
explicitly if you can just look at newest timestamp.
Edited by Mark Pundsack