Add support for epic to epic linking - MVC 1
### Problem to solve > *As a User of Epics,* > > *I need to be able to map related and blocking Epics,* > > *So that I can plan proper sequencing of work* ### Intended users Should be included in `Ultimate` * [Rachel (Release Manager)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#rachel-release-manager) * [Parker (Product Manager)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#parker-product-manager) * [Delaney (Development Team Lead)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#delaney-development-team-lead) ### Further details <!-- Include use cases, benefits, and/or goals (contributes to our vision?) --> ### Proposal Bring the same "Related To" functionality we have for Issues (that were expanded via https://gitlab.com/gitlab-org/gitlab/issues/2035), to Epics. ![Screen_Shot_2019-11-08_at_3.27.11_PM](https://gitlab.com/gitlab-org/gitlab/uploads/c7cc7d4021f2e4e1993d3a17126135a1/Screen_Shot_2019-11-08_at_3.27.11_PM.png) Epics can be mapped to other Epics as: * Related To * Blocks * Blocking ### Documentation Need to update [Epics Docs](https://docs.gitlab.com/ee/user/group/epics/) to reflect the new functionality ### Availability & Testing <!-- This section needs to be retained and filled in during the workflow planning breakdown phase of this feature proposal, if not earlier. What risks does this change pose to our availability? How might it affect the quality of the product? What additional test coverage or changes to tests will be needed? Will it require cross-browser testing? Please list the test areas (unit, integration and end-to-end) that needs to be added or updated to ensure that this feature will work as intended. Please use the list below as guidance. * Unit test changes * Integration test changes * End-to-end test change See the test engineering planning process and reach out to your counterpart Software Engineer in Test for assistance: https://about.gitlab.com/handbook/engineering/quality/test-engineering/#test-planning --> ### What does success look like, and how can we measure that? Usage tracking requirements: * Number of Epic relations created ### Links / references <!-- triage-serverless v3 PLEASE DO NOT REMOVE THIS SECTION --> *This page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.* <!-- triage-serverless v3 PLEASE DO NOT REMOVE THIS SECTION --> --- ### Backend Tasks **First Iteration** 1. **Allow an epic to be marked as `Related to`, `blocking` or `blocked by` other Epics.** - [**Done**] [Add a new table to store epic links](https://gitlab.com/gitlab-org/gitlab/-/issues/352437) - [**Done**] [Define permissions to create and view related epics](https://gitlab.com/gitlab-org/gitlab/-/issues/352439) 2. **Allow to view, create, and delete related epics** - [**Done**] [Add ability to query related epics of an epic](https://gitlab.com/gitlab-org/gitlab/-/issues/352495) - [**Done**] [Add support for listing related epics](https://gitlab.com/gitlab-org/gitlab/-/issues/353472) - [**Done**] [Add support for relating epics](https://gitlab.com/gitlab-org/gitlab/-/issues/353473) - [**Done**] [Add support for removing related epics](https://gitlab.com/gitlab-org/gitlab/-/issues/353474) - [**Done**] [Add REST API endpoint to list related epic](https://gitlab.com/gitlab-org/gitlab/-/issues/352493) - [**In Progress**] [[Feature flag] Enable related epics](https://gitlab.com/gitlab-org/gitlab/-/issues/353896) **Second Iteration** 1. **Add remaining REST endpoints** - [Add REST API endpoints to create and delete related epics](https://gitlab.com/gitlab-org/gitlab/-/issues/352840) 2. **Show blocking epics in epics list** - [Expose epics blocking information in GraphQL](https://gitlab.com/gitlab-org/gitlab/-/issues/355739) - [Add blocking epics count cache](https://gitlab.com/gitlab-org/gitlab/-/issues/353789) 3. **Tech Debt** - [Limit the number of epics that can be related to an epic](https://gitlab.com/gitlab-org/gitlab/-/issues/353915) - [Follow-up from "Allow to destroy related epic links on internal API"](https://gitlab.com/gitlab-org/gitlab/-/issues/354903)
epic