Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-08-18Add latest changes from gitlab-org/gitlab@15-3-stable-eev15.3.0-rc42GitLab Bot
2021-08-19Add latest changes from gitlab-org/gitlab@14-2-stable-eev14.2.0-rc42GitLab Bot
2021-02-18Add latest changes from gitlab-org/gitlab@13-9-stable-eev13.9.0-rc42GitLab Bot
2020-12-17Add latest changes from gitlab-org/gitlab@13-7-stable-eev13.7.0-rc42GitLab Bot
2020-01-29Add latest changes from gitlab-org/gitlab@masterGitLab Bot
2019-04-29Fix slow performance with compiling HAML templatesStan Hu
In Rails 5, including `ActionView::Context` can have a significant and hidden performance penalty because this module also includes `ActionView::CompiledTemplates`. This means that any module that includes ActionView::Context becomes a descendant of `CompiledTemplates`. When a partial is rendered for the first time, it runs `ActionView::CompiledTemplates#module_eval`, which will evaluate a string that defines a new method for that partial. For example, the source of partial might be this string: ``` def _app_views_project_show_html_haml___12345(local_assigns, output) "hello world" end ``` When this string is evaluated, the Ruby interpreter will define the method and clear the global method cache for all descendants of `ActionView::CompiledTemplates`. Previous to this change, we inadvertently made a number of modules fall into this category: * GroupChildEntity * NoteUserEntity * Notify * MergeRequestUserEntity * AnalyticsCommitEntity * CommitEntity * UserEntity * Kaminari::Helpers::Paginator * CurrentUserEntity * ActionView::Base * ActionDispatch::DebugExceptions::DebugView * MarkupHelper * MergeRequestPresenter After this change: * Kaminari::Helpers::Paginator * ActionView::Base * ActionDispatch::DebugExceptions::DebugView Each time a partial is rendered for the first time, all methods for those modules will have to be redefined. This can exact a significant performance penalty. How bad is this penalty? Using the following benchmark script, we can use DTrace to sample the Ruby interpreter: ``` Benchmark.bm do |x| x.report do 1000.times do ActionView::CompiledTemplates.module_eval("def testme\nend") end end end ``` This revealed a 11x jump in the time spent in `core#define_method` alone. Rails 6 fixes this behavior by moving the `include CompiledTemplates` into ActionView::Base so that including `ActionView::Context` doesn't quietly affect other modules in this way. Closes https://gitlab.com/gitlab-org/gitlab-ee/issues/11198
2019-03-06Adds the Rubocop ReturnNil copAndrew Newdigate
This style change enforces `return if ...` instead of `return nil if ...` to save maintainers a few minor review points
2018-07-30Show the status of a user in interactionsBob Van Landuyt
The status is shown for - The author of a commit when viewing a commit - Notes on a commit (regular/diff) - The user that triggered a pipeline when viewing a pipeline - The author of a merge request when viewing a merge request - The author of notes on a merge request (regular/diff) - The author of an issue when viewing an issue - The author of notes on an issue - The author of a snippet when viewing a snippet - The author of notes on a snippet - A user's profile page - The list of members of a group/user
2018-07-23Enable frozen string in app/serializers/**/*.rbgfyoung
Partially addresses #47424.
2017-11-17Use StrongMemoize and enable/disable cops properlyLin Jen-Shin
2017-10-04Include pagination when rendering expanded hierarchiesBob Van Landuyt
2017-10-04Add a `WithPagination` concern to reuse across serializersBob Van Landuyt