An error occurred fetching the project authors.
  1. 28 Sep, 2016 1 commit
  2. 21 Sep, 2016 1 commit
    • Stan Hu's avatar
      Merge branch '21170-cycle-analytics' into 'master' · 8ad412e0
      Stan Hu authored
      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 
      
      ## Screenshots
      
      ![cycle_analytics_screencast.gif](/uploads/d23c3c912caa6935fd47b53ca3a56b97/cycle_analytics.gif)
      
      ## Backend Tasks
      
      - [x]  Implementation
          - [x]  Phases
              - [x]  Issue (Tracker)
              - [x]  Plan (Board)
              - [x]  Code (IDE)
              - [x]  Test (CI)
              - [x]  Review (MR)
              - [x]  Staging (CD)
              - [x]  Production (Total)
          - [x]  Make heuristics more modular
          - [x]  Scope to project
          - [x]  Date range (30 days, 90 days)
          - [x]  Access restriction
      - [x]  Test
          - [x]  Find a better way to test these phases
          - [x]  Phases
              - [x]  Issue (Tracker)
              - [x]  Plan (Board)
              - [x]  Code (IDE)
              - [x]  Test (CI)
              - [x]  Review (MR)
              - [x]  Staging (CD)
              - [x]  Production (Total)
          - [x]  Test for "end case happens before start case"
          - [x]  Consolidate helper
      - [x]  Miniboss review
      - [x]  Performance testing with mock data
      - [x]  Improve performance
          - [x]  Pre-calculate "merge requests closing issues
          - [x]  Pre-calculate everything else
      - [x]  Test performance against 10k issues
      - [x]  Test all pre-calculation code
          - [x]  Ci::Pipeline -> build start/finish
          - [x]  Ci::Pipeline#merge_requests
          - [x]  Issue -> record default metrics after save
          - [x]  MergeRequest -> record default metrics after save
          - [x]  Deployment -> Update "first_deployed_to_production_at" for MR metrics
          - [x]  Git Push -> Update "first commit mention" for issue metrics
          - [x]  Merge request create/update/refresh -> Update "merge requests closing issues"
      - [x]  Remove `MergeRequestsClosingIssues` when necessary
      - [x]  Changes to unblock Fatih
          - [x]  Add summary data
          - [x]  `stats` should be array
          - [x]  Let `stats` be `null` if all `stats` are null
      - [x]  Indexes for "merge requests closing issues"
      - [x]  Test summary data
      - [x]  Scope everything to project
          - [x]  Find out why tests were passing
      - [x]  Filter should include issues/MRs which have made it to production within the range
      - [x]  Don't create duplicate `MergeRequestsClosingIssues`
      - [x]  Fix tests
      - [x]  MySQL median
      - [x]  Assign to Douwe for review
      - [x]  Fix conflicts
      - [x]  Implement suggestions from Yorick's review
          - [x]  Test on PG
          - [x]  Test on MySQL
      - [x]  Refactor
          - [x]  Cleanup
              - [x]  What happens if we have no data at all?
              - [x]  Extract common queries to methods / scopes
          - [x]  Remove unused queries
          - [x]  Downtime for foreign key migrations
          - [x]  Find a way around "if issue.metrics.present?" all over the place
          - [x]  Find a way around "if merge_request.metrics.present?" all over the place
          - [x]  Test migrations on a fresh database
              - [x]  MySQL
              - [x]  Pg
      - [x]  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.
      - [x]  CHANGELOG
      - [x]  Implement suggestions from Douwe's review
          - [x]  First set of comments
          - [x]  Second set of comments
          - [x]  Third set of comments
          - [x]  Fourth set of comments
      - [x]  Make sure build is green
      - [ ]  Make issue for "polish"
      - [ ]  EE MR
      
      
      See merge request !5986
      8ad412e0
  3. 20 Sep, 2016 2 commits
  4. 07 Sep, 2016 5 commits
    • Timothy Andrew's avatar
      Consolidate all cycle analytics helper methods. · 0a767f7b
      Timothy Andrew authored
      1. Move the test generation to `CycleAnalyticsHelpers::TestGeneration`
      
      2. Move all helper methods (previously placed in each individual spec
         file) to `CycleAnalyticsHelpers`
      0a767f7b
    • Timothy Andrew's avatar
      Add a test case for "end condition happens before start condition". · 32147ddf
      Timothy Andrew authored
      - In the cycle analytics specs.
      32147ddf
    • Timothy Andrew's avatar
      Test the `production` cycle analytics phase. · de483c68
      Timothy Andrew authored
      Add a `before_end_fn` option to the code that generates cycle analytics
      specs. `before_end_fn` is called before the end conditions are. Used for
      data setup that needs to be called after the start conditions and before
      the end conditions.
      de483c68
    • Timothy Andrew's avatar
      Test the `staging` cycle analytics phase. · dd112ef1
      Timothy Andrew authored
      Remove overlap from the "start + end" durations in the happy test
      case. For the `staging` phase, the end time is the _first_ deployment
      that happens after the MR merge.
      
      If we have 5 MRs where the `start_time`s (merge time) are the
      same, and all the `end_time`s (deploy to production) a few days from
      now, only the earliest deploy will get picked up, because that
      consitutes a deploy for _all_ the MRs.
      
      We fix this by removing overlap. Every `start_time` is now generated to
      be _after_ the preceding `end_time`.
      dd112ef1
    • Timothy Andrew's avatar
      Test the `code` cycle analytics phase. · f77c952a
      Timothy Andrew authored
      - Move the "data belongs to other project" test case into the generated
        tests, and remove the explicit tests from the `code` and `plan` phases.
      f77c952a
  5. 02 Sep, 2016 1 commit
    • Timothy Andrew's avatar
      Refactor cycle analytics specs. · 98c9d120
      Timothy Andrew authored
      1. Generalise the specs that will be common across all cycle analytics
         phases.
      
      2. Rewrite specs `issue` and `plan` to use this abstracted testing
         strategy.
      
      3. Specs that are specific to a given phase, or unwieldy to test in an
         abstracted manner, are added to each phase's spec.
      98c9d120