Cycle Analytics: first iteration
What does this MR do?
- Implement the first iteration of the "Cycle Analytics" feature.
What are the relevant issue numbers?
- Closes #21170 (closed)
Does this MR have an associated MR on Gitlab EE?
- gitlab-org/gitlab-ee!748
Screenshots
Backend Tasks
- Implementation
- Phases
- Issue (Tracker)
- Plan (Board)
- Code (IDE)
- Test (CI)
- Review (MR)
- Staging (CD)
- Production (Total)
- Make heuristics more modular
- Scope to project
- Date range (30 days, 90 days)
- Access restriction
- Phases
- Test
- Find a better way to test these phases
- Phases
- Issue (Tracker)
- Plan (Board)
- Code (IDE)
- Test (CI)
- Review (MR)
- Staging (CD)
- Production (Total)
- Test for "end case happens before start case"
- Consolidate helper
- Miniboss review
- Performance testing with mock data
- Improve performance
- Pre-calculate "merge requests closing issues
- Pre-calculate everything else
- Test performance against 10k issues
- Test all pre-calculation code
- Ci::Pipeline -> build start/finish
- Ci::Pipeline#merge_requests
- Issue -> record default metrics after save
- MergeRequest -> record default metrics after save
- Deployment -> Update "first_deployed_to_production_at" for MR metrics
- Git Push -> Update "first commit mention" for issue metrics
- Merge request create/update/refresh -> Update "merge requests closing issues"
- Remove
MergeRequestsClosingIssueswhen necessary - Changes to unblock Fatih
- Add summary data
-
statsshould be array - Let
statsbenullif allstatsare null
- Indexes for "merge requests closing issues"
- Test summary data
- Scope everything to project
- Find out why tests were passing
- Filter should include issues/MRs which have made it to production within the range
- Don't create duplicate
MergeRequestsClosingIssues - Fix tests
- MySQL median
- Assign to Douwe for review
- Fix conflicts
- Implement suggestions from Yorick's review
- Test on PG
- Test on MySQL
- Refactor
- Cleanup
- What happens if we have no data at all?
- Extract common queries to methods / scopes
- Remove unused queries
- Downtime for foreign key migrations
- Find a way around "if issue.metrics.present?" all over the place
- Find a way around "if merge_request.metrics.present?" all over the place
- Test migrations on a fresh database
- MySQL
- Pg
- Cleanup
- Access issues
- While the project is public and the visibility is set to "Everyone with access", you cannot visit the cycle analytics page when signed out.
- CHANGELOG
- Implement suggestions from Douwe's review
- First set of comments
- Second set of comments
- Third set of comments
- Fourth set of comments
- Make sure build is green
- Wait for merge
- EE MR
