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
-
-
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 MergeRequestsClosingIssues
when necessary -
Changes to unblock Fatih -
Add summary data -
stats
should be array -
Let stats
benull
if allstats
are 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
-
-
-
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