Redis connection pool
Split from https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/3232
Having an easily accessible Redis connection pool allows us to do more
cool stuff with Redis in GitLab (instead of having to go through e.g.
the Rails cache).
See merge request !3521
This was originally suggested by @ayufan and modified to be a bit
cleaner and use RequestStore instead of a regular Hash.
By caching the output of the two methods involved the number of queries
is reduced significantly. For example, for an issue with 200 notes (of
which 100 reference a number of merge requests) this cuts down the
amount of queries from around 6300 to around 3300.
Discussed in #14233.
See [their releases](https://github.com/bbatsov/rubocop/releases) for
more info.
Changes:
- Enable DisplayCopNames for lint output.
- Default behavior for `Alias` changed, set to enforce `prefer_alias_method`.
- Enabling Rails cops changed to new syntax.
- Remove StyleGuides and move Descriptions to comments.
- Add missing cops.
- Add TODOs for cops that should be enabled in the future.
- Set TargetRubyVersion to 2.1.
CSS style guide
Working towards what was discussed in #13552, this adds the [SCSS Linter gem](https://github.com/brigade/scss-lint) for style guide conformity in CI.
TODO:
- [x] Agree on and write SCSS Style Guide Documentation.
- [x] Document the `scss-lint` config file.
- [x] Figure out how best to run this in CI, right now it's taking longer than I would think it should.
- [x] Use CSSComb for auto-correction (Maybe just include a CSSComb config file and have developers run the node package manually if they're interested in using it?).
My logic for not using CSSComb in the first place is that, AFAIK, we don't currently require Node/NPM, even in the dev environment. Maybe I'm wrong about that? `scss-lint` is a Ruby implementation of a similar concept, but it doesn't include autocorrect.
Is there a way we can run get GitLab CI to run `scss-lint` without having to put together the full GitLab application? Seeing as it's just static analysis, it seems like a waste of time/resources.
/cc @jschatz1 @rspeicher
See merge request !3069
Update Gemojione for new hotness ✨
Before | After
------ | -----
 | 
See merge request !2800
gitlab_git 8.1 adds the ability to count the amount of commits between
two references without having to allocate anything but regular
Rugged::Commit objects. This in turn speeds up the process of counting
the number of commits a branch is ahead/behind by about 3.5x.