- 20 Sep, 2016 6 commits
-
-
Timothy Andrew authored
1. Dispatch between the two strategies automatically based on the current database type. 2. The MySQL version needs to run multiple statements, so the `cycle_analytics` model is modified to support this.
-
Timothy Andrew authored
1. Add indexes to `CreateMergeRequestsClosingIssues` columns. 2. Remove an extraneous `check_if_open` check that is redundant now. It would've been better to rebase this in, but that's not possible because more people are working on this branch.
-
Timothy Andrew authored
A number of failures were introduced due to performance improvements (like pre-calculating metrics).
-
Timothy Andrew authored
1. Look for merge requests (and issues that they close) that have been deployed to production in the last X days (where X is given by the `from` parameter). 2. Cycle analytics queries only operate on this fitered set of merge requests and issues.
-
Timothy Andrew authored
-
Timothy Andrew authored
-
- 19 Sep, 2016 7 commits
-
-
Fatih Acet authored
-
Fatih Acet authored
-
Timothy Andrew authored
- For cycle analytics. - Instead, make each individual `value` `null`, since the titles and descriptions are used by the frontend even when there is no data.
-
Timothy Andrew authored
1. Add `summary` section. 2. `stats` is `null` if no stats are present. 3. `stats` and `summary` are both arrays.
-
Timothy Andrew authored
- These are not being used anymore. - Consolidate all issue metrics into a single migration. - Consolidate all merge request metrics into a single migration.
-
Timothy Andrew authored
All the code that pre-calculates metrics for use in the cycle analytics page. - 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"
-
Timothy Andrew authored
-
- 17 Sep, 2016 3 commits
-
-
Timothy Andrew authored
1. Use a new format, with each stage having a `title`, `description`, and `value.
-
Timothy Andrew authored
1. Use Arel for composable queries. 2. For a project with ~10k issues, the page loads in around 600ms. Previously, a project with ~5k issues would have a ~20s page load time.
-
Timothy Andrew authored
- The normal seed creates all the data for cycle analytics the "right" way. It creates issues, merge requests, commits, branches, deployments, etc. This is good, but too slow for perf testing. Generating a 1000 sets of records this way takes more than an hour. - When the `CYCLE_ANALYTICS_POPULATE_METRICS_DIRECTLY` environment variable is passed in, the seed only creates issues and merge requests. It then adds the `metrics` for each issue and merge request directly, to save time. - The seed now takes about 4 minutes to run for 1000 sets of records.
-
- 16 Sep, 2016 1 commit
-
-
Fatih Acet authored
-
- 15 Sep, 2016 2 commits
-
-
Fatih Acet authored
-
Timothy Andrew authored
1. These changes bring down page load time for 100 issues from more than a minute to about 1.5 seconds. 2. This entire commit is composed of these types of performance enhancements: - Cache relevant data in `IssueMetrics` wherever possible. - Cache relevant data in `MergeRequestMetrics` wherever possible. - Preload metrics 3. Given these improvements, we now only need to make 4 SQL calls: - Load all issues - Load all merge requests - Load all metrics for the issues - Load all metrics for the merge requests 4. A list of all the data points that are now being pre-calculated: a. The first time an issue is mentioned in a commit - In `GitPushService`, find all issues mentioned by the given commit using `ReferenceExtractor`. Set the `first_mentioned_in_commit_at` flag for each of them. - There seems to be a (pre-existing) bug here - files (and therefore commits) created using the Web CI don't have cross-references created, and issues are not closed even when the commit title is "Fixes #xx". b. The first time a merge request is deployed to production When a `Deployment` is created, find all merge requests that were merged in before the deployment, and set the `first_deployed_to_production_at` flag for each of them. c. The start / end time for a merge request pipeline Hook into the `Pipeline` state machine. When the `status` moves to `running`, find the merge requests whose tip commit matches the pipeline, and record the `latest_build_started_at` time for each of them. When the `status` moves to `success`, record the `latest_build_finished_at` time. d. The merge requests that close an issue - This was a big cause of the performance problems we were having with Cycle Analytics. We need to use `ReferenceExtractor` to make this calculation, which is slow when we have to run it on a large number of merge requests. - When a merge request is created, updated, or refreshed, find the issues it closes, and create an instance of `MergeRequestsClosingIssues`, which acts as a join model between merge requests and issues. - If a `MergeRequestsClosingIssues` instance links a merge request and an issue, that issue closes that merge request. 5. The `Queries` module was changed into a class, so we can cache the results of `issues` and `merge_requests_closing_issues` across various cycle analytics stages. 6. The code added in this commit is untested. Tests will be added in the next commit.
-
- 14 Sep, 2016 3 commits
-
-
Fatih Acet authored
-
Timothy Andrew authored
-
Timothy Andrew authored
- The fixture generates data for every stage in the cycle analytics dashboard. Once this fixture has run, you shouldn't be seeing any "<not enough data>" messages for cycle analytics. - This is probably not necessary for every fixture run, so it might be moved behind an env var in the future.
-
- 08 Sep, 2016 1 commit
-
-
Timothy Andrew authored
-
- 07 Sep, 2016 12 commits
-
-
Timothy Andrew authored
-
Timothy Andrew authored
-
Fatih Acet authored
Lighten color of created icon #### What does this MR do? Changes `created` icon color to lighter gray #### Screenshots (if relevant) ![Screen_Shot_2016-09-06_at_10.25.19_AM](/uploads/6543d0004d817adcbe13cc2b23b6b7bb/Screen_Shot_2016-09-06_at_10.25.19_AM.png) cc @dimitrieh See merge request !6230
-
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`
-
Timothy Andrew authored
- In the cycle analytics specs.
-
Timothy Andrew authored
-
Rémy Coutable authored
API: Add the ability to fork to a specific namespace Browser interface allows forking to an owned grup. This commit brings API up to speed by providing optional namespace parameter to fork API. This allows forking to users and groups under forker's control using their id or unique name. Fixes #21591 ## Does this MR meet the acceptance criteria? - [x] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added - [x] [Documentation created/updated](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/doc_styleguide.md) - [x] API support added - Tests - [x] Added for this feature/bug - [x] All builds are passing - [x] Conform by the [merge request performance guides](http://docs.gitlab.com/ce/development/merge_request_performance_guidelines.html) - [x] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides) - [x] Branch has no merge conflicts with `master` (if you do - rebase it please) - [x] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits) See merge request !6213
-
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.
-
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`.
-
Timothy Andrew authored
- Tests would randomly fail because of naming conflicts. - Use a `random_git_name` method instead of using `FFaker` directly.
-
Timothy Andrew authored
-
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.
-
- 06 Sep, 2016 5 commits
-
-
Olaf Tomalka authored
-
Olaf Tomalka authored
-
Annabel Dunstone Gray authored
Merge branch '18851-commit-text-in-activity-commits-page-etc-has-the-wrong-line-height' into 'master' Changed `.commit-row-title` `line-height` to `1.35` from `1` ## What does this MR do? Changes `.commit-row-title` `line-height` to `1.35` from `1`, this is to match the `line-height: 20px;` from before 41c2ea9b. ## Are there points in the code the reviewer needs to double check? ## Why was this MR needed? Not enough space between commit lines ## What are the relevant issue numbers? Closes #18851. ## Screenshots (if relevant) New screenshot below. ## Does this MR meet the acceptance criteria? - [ ] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added - [ ] [Documentation created/updated](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/doc_styleguide.md) - [ ] API support added - Tests - [ ] Added for this feature/bug - [ ] All builds are passing - [ ] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides) - [ ] Branch has no merge conflicts with `master` (if you do - rebase it please) - [ ] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits) Closes #18851 See merge request !5996
-
Fatih Acet authored
Reduce intermittent spec failures by making VueJS resource interceptor decrement outstanding resource counts when HTTP response is received Before the count would be reduced 500 ms after a DOM update tick, which could cause race conditions since the `DatabaseCleaner` could run in the middle of a Rails controller handling the response. Partial fix to #21197 and other intermittent spec failures. See merge request !6224
-
Annabel Dunstone Gray authored
-