- 05 Oct, 2016 40 commits
-
-
Andre Guedes authored
- Includes documentation and tests
-
Rémy Coutable authored
Refactor TrendingProjectsFinder to support caching ## What does this MR do? This refactors `TrendingProjectsFinder` so it can support caching of the data. See cb7d398972d786ba7133418266fa34ae641b2497 for more details. ## Why was this MR needed? Trending projects is quite slow, easily taking seconds to load the entire page. https://gitlab.com/gitlab-org/gitlab-ce/issues/22164 https://gitlab.com/gitlab-com/infrastructure/milestones/4, in particular the section "Trending page under 2s" See merge request !6672
-
Dmitriy Zaporozhets authored
Split routes on multiple files Because current 1k routing file is just impossible to read and manage. See merge request !6692
-
Yorick Peterse authored
== Public Projects This finder class now _only_ returns public projects. Previously this finder would also return private and internal projects. Including these projects makes caching data much harder and less efficient. Meanwhile including this data isn't very useful as very few users would be interested in seeing projects they have access to as trending. That is, the feature is more useful when you want to see what _other_ popular projects there are. == Caching The data returned by TrendingProjectsFinder is now cached for a day based on the number of months the data should be restricted to. The cache is not flushed explicitly, instead it's rebuilt whenever it expires. == Timings To measure the impact I changed the finder code to use the last 24 months instead of the last month. I then executed and measured 10 requests to the explore page. On the current "master" branch (commit 88fa5916) this would take an average of 2.43 seconds. Using the changes of this commit this was reduced to around 1.7 seconds. Fixes gitlab-org/gitlab-ce#22164
-
Jacob Schatz authored
Refactor remnants of CoffeeScript destructured opts and super into ES6 ## What does this MR do? Gets rid of some CoffeeScript remnants that are difficult to work with, and updates them to use ES6 syntax/constructs. I updated nearby code to ES6, but these updates usually just included using the es6 class syntax and scoped variable keywords. **Important**: For the most part, I tried to avoid refactoring the design of the existing code. If I attempted that, this would've taken much much longer and it would've been out of this issue's scope. ## Why was this MR needed? The compiled coffeescript for destructured default params is very difficult to work in. These changes makes some of these rough patches more maintainable: e.g. ![Screen_Shot_2016-09-19_at_4.43.08_PM](/uploads/40cd3f79b9c5f595f3738213b0dadbbf/Screen_Shot_2016-09-19_at_4.43.08_PM.png) ## 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) ## What are the relevant issue numbers? Meta Issue: https://gitlab.com/gitlab-org/gitlab-ce/issues/21887 Child Issues: https://gitlab.com/gitlab-org/gitlab-ce/issues/21942 https://gitlab.com/gitlab-org/gitlab-ce/issues/21941 https://gitlab.com/gitlab-org/gitlab-ce/issues/21943 ## To Test Manually: #### app/assets/javascripts/LabelManager.js.es6 -> [diff](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6261/diffs#diff-1) - Navigate to [Labels](http://localhost:3000/gitlab-org/gitlab-test/labels) and click around (toggle label priority, add new labels, subcribe, edit, delete) #### app/assets/javascripts/blob/blob_ci_yaml.js.es6 -> [diff](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6261/diffs#diff-3) - [Create new file](http://localhost:3000/gitlab-org/gitlab-test/new/master) and give it the name `.gitlab-ci.yml`, then attempt to select a template #### app/assets/javascripts/blob/blob_license_selectors.js.es6 -> [diff](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6261/diffs#diff-7) - [Create new file](http://localhost:3000/gitlab-org/gitlab-test/new/master) and give it the name `license`, then attempt to select a template #### app/assets/javascripts/blob/template_selector.js.es6 -> [diff](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6261/diffs#diff-8) - This class is extended by the two previously mentioned files. As long as they work, this should work. #### app/assets/javascripts/issues-bulk-assignment.js.es6 -> [diff](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6261/diffs#diff-11) - [Visit issues](http://localhost:3000/gitlab-org/gitlab-test/issues), assign multiple issues a new label or milestone and update. #### app/assets/javascripts/profile/gl_crop.js.es6 -> [diff](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6261/diffs#diff-12) - [Visit your profile settings](http://localhost:3000/profile), upload a photo and attempt to crop and set as new profile picture. #### app/assets/javascripts/profile/profile.js.es6 > [diff](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6261/diffs#diff-14) - [Visit your profile settings](http://localhost:3000/profile), change various fields (Name, Bio, Email, Notifs settings) and submit form #### app/assets/javascripts/todos.js.es6 -> [diff](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6261/diffs#diff-18) - [Visit an issue](http://localhost:3000/documentcloud/underscore/issues/6) and Add Todo, then visit [Todos](http://localhost:3000/dashboard/todos). Try out the sorting features, making sure everything looks right. Mark the Todo done. #### app/assets/javascripts/user.js.es6 -> [diff](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6261/diffs#diff-19) - [Visit user profile](http://localhost:3000/u/root) and click between tabs. #### app/assets/javascripts/user_tabs.js.es6 -> [diff](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6261/diffs#diff-20) - Same as previous. cc: @jschatz1 See merge request !6261
-
Annabel Dunstone Gray authored
Fixes Pipeline list commit column width should be adjusted ## What does this MR do? - Fixes some HTML problems - Pipeline and Build tables were inside an `ul` tag - Pipeline table had 2 `tbody` tags and no `thead` - Adds grid classes in Pipeline table in order to be responsive: The content of the last column was being hidden but the column it self was not which results in a lot of blank space - Adds a percentage width to the commit column in the Pipeline table. - Removes one level of nesting in the commit column in the Pipeline table and to the Build column in the Build table. ## Are there points in the code the reviewer needs to double check? No ## Why was this MR needed? The commit column had to much white space. ## Screenshots (if relevant) ![pipelines](/uploads/d198f07dceb498cc7ec537842cd34fff/pipelines.png) ## Does this MR meet the acceptance criteria? - [x] [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 - [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) ## What are the relevant issue numbers? Closes #22509 See merge request !6595
-
Dmitriy Zaporozhets authored
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
-
Dmitriy Zaporozhets authored
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
-
Dmitriy Zaporozhets authored
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
-
Rémy Coutable authored
Refactor Gitlab::Identifier ## What does this MR do? This refactors `Gitlab::Identifier` so that it: 1. Has tests 2. Caches output in an instance variable to reduce queries 3. Uses only a single query to find a user by an SSH key, instead of 2 ## Why was this MR needed? This code was untested and would execute more SQL queries than needed. See merge request !6680
-
Bryce Johnson authored
(also clean up a few global refs)
-
Yorick Peterse authored
This refactors Gitlab::Identifier so it uses fewer queries and is actually tested. Queries are reduced by caching the output as well as using 1 query (instead of 2) to find a user using an SSH key.
-
Rémy Coutable authored
Update runner version only when updating contacted_at ## What does this MR do? Improves how we update runners table, especially the version. This is another round of improvements to reduce number of `ci_runners` updates. I did make `contacted_at` to be updated more often (on average every 15 minutes). We will also update version information in one go to solve: https://gitlab.com/gitlab-org/gitlab-ce/issues/22206 Improves: https://gitlab.com/gitlab-org/gitlab-ce/issues/22590 Solves: https://gitlab.com/gitlab-org/gitlab-ce/issues/22206 See merge request !6537
-
Bryce Johnson authored
-
Bryce Johnson authored
-
Bryce Johnson authored
-
Bryce Johnson authored
-
Bryce Johnson authored
-
Bryce Johnson authored
-
Bryce Johnson authored
-
Bryce Johnson authored
-
Bryce Johnson authored
-
Bryce Johnson authored
-
Bryce Johnson authored
-
Bryce Johnson authored
-
Bryce Johnson authored
-
Bryce Johnson authored
-
Bryce Johnson authored
-
Bryce Johnson authored
-
Bryce Johnson authored
-
Bryce Johnson authored
-
Bryce Johnson authored
-
Bryce Johnson authored
-
Bryce Johnson authored
-
Bryce Johnson authored
-
Bryce Johnson authored
-
Bryce Johnson authored
-
Bryce Johnson authored
-
Bryce Johnson authored
-
Bryce Johnson authored
-