Cycles as abstraction of work over multiple projects
Description
Optionally, this would follow up on relationships between issues.
I want to be able to track how large, complex, cross-project changes are moving forward, but not every change is represented by a single commit, merge request or issue. They often span multiple merge requests, over multiple projects, over multiple milestones.
A new abstraction would be a cycle. A cycle represents the state of a combination of issues, commits, merge requests over multiple projects.
A cycle should be able to tell:
- what is the status of this change?
- when is it available? (review, particular release / milestone?)
- Are there any risks (any issues without release? Any MRs without WIP nor assignee? any blocking issues not included?)
In particular the highlighting of risks and showing availability, deployment status can help move things forward.
The idea is that if you create a cycle and link everything you think is related, you will immediately have an idea of when this is shipping and what stands in its way. Linking a few issues will immediately cause the cycle to suggest issues and MRs that are related (that have been mentioned in the linked issues and MRs).
Proposal
Cycles are created by hand and consist of a title and linked issues and MRs.
They detect risks such as:
- a linked issue blocked by an issue that is not linked
- a linked issue blocked by an issue that is not scheduled
- a merge request not WIP, nor assigned
- a lack of activity in a MR in review
- a lack of activity in an issue or MR with an impending due date
- a lacking milestone or due date
They also link deployment status for linked issues and MRs, such as available review apps and whether parts have been deployed to any environment.
Issues and MRs can belong to multiple cycles.
It would be very useful if a cycle had a single status Unstarted
, On Track
, Behind
or Completed
.