diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-09-12 21:10:38 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-09-12 21:10:38 +0000 |
commit | 3b69a04945341516a2ed6a291769c50fe04336df (patch) | |
tree | 5910b5f0c80bf98aded05305bbaa7fd30d2742c4 /doc/development | |
parent | e4cfc16da343c2008053ee09bb6af7145a6924cb (diff) | |
download | gitlab-ce-3b69a04945341516a2ed6a291769c50fe04336df.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'doc/development')
-rw-r--r-- | doc/development/backend/ruby_style_guide.md | 103 | ||||
-rw-r--r-- | doc/development/newlines_styleguide.md | 111 | ||||
-rw-r--r-- | doc/development/rake_tasks.md | 14 |
3 files changed, 124 insertions, 104 deletions
diff --git a/doc/development/backend/ruby_style_guide.md b/doc/development/backend/ruby_style_guide.md index a9fee02a15a..aec4a255dbd 100644 --- a/doc/development/backend/ruby_style_guide.md +++ b/doc/development/backend/ruby_style_guide.md @@ -72,3 +72,106 @@ end Public attributes should only be used if they are accessed outside of the class. There is not a strong opinion on what strategy is used when attributes are only accessed internally, as long as there is consistency in related code. + +## Newlines style guide + +This style guide recommends best practices for newlines in Ruby code. + +### Rule: separate code with newlines only to group together related logic + +```ruby +# bad +def method + issue = Issue.new + + issue.save + + render json: issue +end +``` + +```ruby +# good +def method + issue = Issue.new + issue.save + + render json: issue +end +``` + +### Rule: separate code and block with newlines + +#### Newline before block + +```ruby +# bad +def method + issue = Issue.new + if issue.save + render json: issue + end +end +``` + +```ruby +# good +def method + issue = Issue.new + + if issue.save + render json: issue + end +end +``` + +### Rule: Newline after block + +```ruby +# bad +def method + if issue.save + issue.send_email + end + render json: issue +end +``` + +```ruby +# good +def method + if issue.save + issue.send_email + end + + render json: issue +end +``` + +#### Exception: no need for newline when code block starts or ends right inside another code block + +```ruby +# bad +def method + + if issue + + if issue.valid? + issue.save + end + + end + +end +``` + +```ruby +# good +def method + if issue + if issue.valid? + issue.save + end + end +end +``` diff --git a/doc/development/newlines_styleguide.md b/doc/development/newlines_styleguide.md index 57962129b2f..014affa3e04 100644 --- a/doc/development/newlines_styleguide.md +++ b/doc/development/newlines_styleguide.md @@ -1,108 +1,11 @@ --- -stage: none -group: unassigned -info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments +redirect_to: 'backend/ruby_style_guide.md#newlines-style-guide' +remove_date: '2022-12-15' --- -# Newlines style guide +This document was moved to [another location](backend/ruby_style_guide.md#newlines-style-guide). -This style guide recommends best practices for newlines in Ruby code. - -## Rule: separate code with newlines only to group together related logic - -```ruby -# bad -def method - issue = Issue.new - - issue.save - - render json: issue -end -``` - -```ruby -# good -def method - issue = Issue.new - issue.save - - render json: issue -end -``` - -## Rule: separate code and block with newlines - -### Newline before block - -```ruby -# bad -def method - issue = Issue.new - if issue.save - render json: issue - end -end -``` - -```ruby -# good -def method - issue = Issue.new - - if issue.save - render json: issue - end -end -``` - -## Newline after block - -```ruby -# bad -def method - if issue.save - issue.send_email - end - render json: issue -end -``` - -```ruby -# good -def method - if issue.save - issue.send_email - end - - render json: issue -end -``` - -### Exception: no need for newline when code block starts or ends right inside another code block - -```ruby -# bad -def method - - if issue - - if issue.valid? - issue.save - end - - end - -end -``` - -```ruby -# good -def method - if issue - if issue.valid? - issue.save - end - end -end -``` +<!-- This redirect file can be deleted after 2022-12-15. --> +<!-- Redirects that point to other docs in the same project expire in three months. --> +<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. --> +<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html --> diff --git a/doc/development/rake_tasks.md b/doc/development/rake_tasks.md index c13f1195df3..f300904fc19 100644 --- a/doc/development/rake_tasks.md +++ b/doc/development/rake_tasks.md @@ -188,6 +188,8 @@ Alternatively you can use the following on each spec run, bundle exec spring rspec some_spec.rb ``` +## RuboCop tasks + ## Generate initial RuboCop TODO list One way to generate the initial list is to run the Rake task `rubocop:todo:generate`: @@ -209,6 +211,18 @@ Some shells require brackets to be escaped or quoted. See [Resolving RuboCop exceptions](contributing/style_guides.md#resolving-rubocop-exceptions) on how to proceed from here. +### Run RuboCop in graceful mode + +You can run RuboCop in "graceful mode". This means all enabled cop rules are +silenced which have "grace period" activated (via `Details: grace period`). + +Run: + +```shell +bundle exec rake 'rubocop:check:graceful' +bundle exec rake 'rubocop:check:graceful[Gitlab/NamespacedClass]' +``` + ## Compile Frontend Assets You shouldn't ever need to compile frontend assets manually in development, but |