Skip to content

GitLab Next

    • GitLab: the DevOps platform
    • Explore GitLab
    • Install GitLab
    • How GitLab compares
    • Get started
    • GitLab docs
    • GitLab Learn
  • Pricing
  • Talk to an expert
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
    • Menu
    Projects Groups Snippets
  • Get a free trial
  • Sign up
  • Login
  • Sign in / Register
  • GitLab FOSS GitLab FOSS
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 0
    • Merge requests 0
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • Code review
    • Insights
    • Issue
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar

GitLab 15.0 is launching on May 22! This version brings many exciting improvements, but also removes deprecated features and introduces breaking changes that may impact your workflow. To see what is being deprecated and removed, please visit Breaking changes in 15.0 and Deprecations.

  • GitLab.org
  • GitLab FOSSGitLab FOSS
  • Merge requests
  • !5986
Project 'gitlab-org/gitlab-ce' was moved to 'gitlab-org/gitlab-foss'. Please update any links and bookmarks that may still have the old path.
Merged
Created Aug 24, 2016 by Timothy Andrew@timothyandrewContributor78 of 78 tasks completed78/78 tasks
  • Review changes

  • Download
  • Email patches
  • Plain diff

Cycle Analytics: first iteration

  • Overview 255
  • Commits 76
  • Pipelines 30
  • Changes 59

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

cycle_analytics_screencast.gif

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 be null if all stats 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
Assignee
Assign to
Reviewer
Request review from
Time tracking
Source branch: 21170-cycle-analytics