gitlab-styles 3.3.0 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b678f69301c072f2a4ff3568240a53603af1dde32d22b4bcc7bfde79477fb281
4
- data.tar.gz: c5c3462573f631914c3bd10bd84589cec1f3f75c39e40acf11b9fca28c110e50
3
+ metadata.gz: b5f56cd42de5afd61307ea92fd0114cb64e79b575697800b948e6d3e42e32d7c
4
+ data.tar.gz: 25c343aae93b4bb8d03d57b92152c5c51433cacec86c86b6449ba8a6af3cc6e2
5
5
  SHA512:
6
- metadata.gz: 57d30093fc6fbe46cb2039e89c16f68b97dab5d2e794e75f8ab732c8e723887bd1dc3dd3708561d12767055b46820a413a495bf3a1790af4f1caf1f4f128230f
7
- data.tar.gz: b58567db3d26db1a13f5c6327484f34cb79bc5914a1a27357b54cbe41e88fb5efbffba56d2605630c66dd91cc4cd9d5078e276cf6425caed7af789fcfd8bfa92
6
+ metadata.gz: a7e7dbc2a80150595404fb1639266f462687668411b4410378a1021d9d07915fec14d6b34265d2a6672d65e5005cb4e2d7a1e99acff2ddbe0bc827280dc1c011
7
+ data.tar.gz: c0b9073e17bf0c11f283ef485612746c3baa1a6de27392029ca930413f939cc192d797e0a3a3016da2db0bdc219444c93129199fbba9ab81e533f86182c65d10
data/.gitignore CHANGED
@@ -3,7 +3,6 @@
3
3
  /Gemfile.lock
4
4
  /_yardoc/
5
5
  /coverage/
6
- /doc/
7
6
  /pkg/
8
7
  /spec/reports/
9
8
  /tmp/
@@ -1,13 +1,45 @@
1
- image: ruby:2.3
1
+ stages:
2
+ - release
3
+ - test
2
4
 
3
- before_script:
4
- - bundle --version
5
- - bundle install
5
+ default:
6
+ image: ruby:2.6
7
+ tags:
8
+ - gitlab-org
9
+ before_script:
10
+ - bundle --version
11
+ - bundle install
12
+
13
+ workflow:
14
+ rules:
15
+ # For merge requests, create a pipeline.
16
+ - if: '$CI_MERGE_REQUEST_IID'
17
+ # For `master` branch, create a pipeline (this includes on schedules, pushes, merges, etc.).
18
+ - if: '$CI_COMMIT_BRANCH == "master"'
19
+ # For tags, create a pipeline.
20
+ - if: '$CI_COMMIT_TAG'
6
21
 
7
22
  styles:
23
+ stage: test
8
24
  script:
9
25
  - bundle exec rubocop --debug --parallel
10
26
 
11
27
  specs:
28
+ stage: test
12
29
  script:
13
30
  - bundle exec rspec
31
+
32
+ release:
33
+ stage: release
34
+ rules:
35
+ - if: '$CI_COMMIT_TAG'
36
+ script:
37
+ - gem update --system
38
+ - ruby --version
39
+ - gem env version
40
+ - gem build gitlab-styles.gemspec
41
+ - gem push gitlab-styles*.gem
42
+ artifacts:
43
+ paths:
44
+ - gitlab-styles*.gem
45
+ expire_in: 30 days
@@ -0,0 +1,35 @@
1
+ <!-- Replace `v4.5.0` with the previous release here, and `e18d76b309e42888759c1effe96767f13e34ae55`
2
+ with the latest commit from https://gitlab.com/gitlab-org/gitlab-styles/commits/master that will be included in the release. -->
3
+ - Diff: https://gitlab.com/gitlab-org/gitlab-styles/compare/v4.5.0...e18d76b309e42888759c1effe96767f13e34ae55
4
+
5
+ - Release notes:
6
+
7
+ <!-- Keep the sections order but remove the empty sections -->
8
+
9
+ ```markdown
10
+ ### New scenarios and scenario updates
11
+
12
+ - !aaa <Title of the aaa MR>.
13
+
14
+ ### Fixes
15
+
16
+ - !bbb <Title of the bbb MR>.
17
+
18
+ ### Doc changes
19
+
20
+ - !ccc <Title of the ccc MR>.
21
+
22
+ ### Other changes (CI, backstage)
23
+
24
+ - !ddd <Title of the ddd MR>.
25
+ ```
26
+
27
+ - Checklist before merging:
28
+ - [ ] Diff link is up-to-date.
29
+ - [ ] Based on the diff, `lib/gitlab/styles/version.rb` is updated, according to [SemVer](https://semver.org).
30
+ - [ ] Release notes are accurate.
31
+
32
+ - Checklist after merging:
33
+ - [ ] [Create a tag for the new release version](docs/release_process.md#how-to).
34
+
35
+ /label ~"Engineering Productivity" ~backstage
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in gitlab-rubocop.gemspec
data/README.md CHANGED
@@ -77,6 +77,10 @@ https://gitlab.com/gitlab-org/gitlab-styles. This project is intended to be a
77
77
  safe, welcoming space for collaboration, and contributors are expected to adhere
78
78
  to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
79
79
 
80
+ ## Release Process
81
+
82
+ Please refer to the [Release Process](docs/release_process.md).
83
+
80
84
  ## License
81
85
 
82
86
  The gem is available as open source under the terms of the
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler/gem_tasks'
2
4
  require 'rspec/core/rake_task'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  lib = File.expand_path('lib', __dir__)
2
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
5
  require 'gitlab/styles/version'
@@ -13,7 +15,7 @@ Gem::Specification.new do |spec|
13
15
  spec.license = 'MIT'
14
16
 
15
17
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
16
- f.match(%r{^(test|spec|features)/})
18
+ f.match(%r{^(docs|test|spec|features)/})
17
19
  end
18
20
  spec.bindir = 'exe'
19
21
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'gitlab/styles/version'
2
4
 
3
5
  module Gitlab
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'gitlab/styles/rubocop/cop/custom_error_class'
2
4
  require 'gitlab/styles/rubocop/cop/gem_fetcher'
3
5
  require 'gitlab/styles/rubocop/cop/active_record_serialize'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../model_helpers'
2
4
 
3
5
  module Gitlab
@@ -9,7 +11,7 @@ module Gitlab
9
11
  include ModelHelpers
10
12
 
11
13
  MSG = 'Do not use `dependent: to remove associated data, ' \
12
- 'use foreign keys with cascading deletes instead'.freeze
14
+ 'use foreign keys with cascading deletes instead'
13
15
 
14
16
  METHOD_NAMES = [:has_many, :has_one, :belongs_to].freeze
15
17
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../model_helpers'
2
4
 
3
5
  module Gitlab
@@ -8,7 +10,7 @@ module Gitlab
8
10
  class ActiveRecordSerialize < RuboCop::Cop::Cop
9
11
  include ModelHelpers
10
12
 
11
- MSG = 'Do not store serialized data in the database, use separate columns and/or tables instead'.freeze
13
+ MSG = 'Do not store serialized data in the database, use separate columns and/or tables instead'
12
14
 
13
15
  def on_send(node)
14
16
  return unless in_model?(node)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Gitlab
2
4
  module Styles
3
5
  module Rubocop
@@ -16,7 +18,7 @@ module Gitlab
16
18
  # # good
17
19
  # FooError = Class.new(StandardError)
18
20
  class CustomErrorClass < RuboCop::Cop::Cop
19
- MSG = 'Use `Class.new(SuperClass)` to define an empty custom error class.'.freeze
21
+ MSG = 'Use `Class.new(SuperClass)` to define an empty custom error class.'
20
22
 
21
23
  def on_class(node)
22
24
  _klass, parent, body = node.children
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Gitlab
2
4
  module Styles
3
5
  module Rubocop
@@ -6,7 +8,7 @@ module Gitlab
6
8
  # `Gemfile` in order to avoid additional points of failure beyond
7
9
  # rubygems.org.
8
10
  class GemFetcher < RuboCop::Cop::Cop
9
- MSG = 'Do not use gems from git repositories, only use gems from RubyGems.'.freeze
11
+ MSG = 'Do not use gems from git repositories, only use gems from RubyGems.'
10
12
 
11
13
  GIT_KEYS = [:git, :github].freeze
12
14
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../model_helpers'
2
4
 
3
5
  module Gitlab
@@ -6,7 +8,7 @@ module Gitlab
6
8
  module Cop
7
9
  # Cop that prevents the use of `in_batches`
8
10
  class InBatches < RuboCop::Cop::Cop
9
- MSG = 'Do not use `in_batches`, use `each_batch` from the EachBatch module instead'.freeze
11
+ MSG = 'Do not use `in_batches`, use `each_batch` from the EachBatch module instead'
10
12
 
11
13
  def on_send(node)
12
14
  return unless node.children[1] == :in_batches
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Gitlab
2
4
  module Styles
3
5
  module Rubocop
@@ -56,7 +58,7 @@ module Gitlab
56
58
  #
57
59
  # do_something_more
58
60
  class LineBreakAfterGuardClauses < RuboCop::Cop::Cop
59
- MSG = 'Add a line break after guard clauses'.freeze
61
+ MSG = 'Add a line break after guard clauses'
60
62
 
61
63
  def_node_matcher :guard_clause_node?, <<-PATTERN
62
64
  [{(send nil? {:raise :fail :throw} ...) return break next} single_line?]
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative '../model_helpers'
2
4
 
3
5
  module Gitlab
@@ -8,7 +10,7 @@ module Gitlab
8
10
  class PolymorphicAssociations < RuboCop::Cop::Cop
9
11
  include ModelHelpers
10
12
 
11
- MSG = 'Do not use polymorphic associations, use separate tables instead'.freeze
13
+ MSG = 'Do not use polymorphic associations, use separate tables instead'
12
14
 
13
15
  def on_send(node)
14
16
  return unless in_model?(node)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Gitlab
2
4
  module Styles
3
5
  module Rubocop
@@ -5,7 +7,7 @@ module Gitlab
5
7
  # This cop prevents usage of 'redirect_to' in actions 'destroy' without specifying 'status'.
6
8
  # See https://gitlab.com/gitlab-org/gitlab-ce/issues/31840
7
9
  class RedirectWithStatus < RuboCop::Cop::Cop
8
- MSG = 'Do not use "redirect_to" without "status" in "destroy" action'.freeze
10
+ MSG = 'Do not use "redirect_to" without "status" in "destroy" action'
9
11
 
10
12
  def on_def(node)
11
13
  return unless in_controller?(node)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rubocop-rspec'
2
4
 
3
5
  module Gitlab
@@ -16,7 +18,7 @@ module Gitlab
16
18
  # expect(page).to have_link('Link', href: 'https://example.com')
17
19
  # expect(page).to have_link('Example')
18
20
  class HaveLinkParameters < RuboCop::Cop::RSpec::Cop
19
- MESSAGE = "The second argument to `have_link` should be a Hash.".freeze
21
+ MESSAGE = "The second argument to `have_link` should be a Hash."
20
22
 
21
23
  def_node_matcher :unused_parameters?, <<~PATTERN
22
24
  (send nil? :have_link
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rubocop-rspec'
2
4
 
3
5
  module Gitlab
@@ -22,7 +24,7 @@ module Gitlab
22
24
  # undo_something
23
25
  # end
24
26
  class SingleLineHook < RuboCop::Cop::RSpec::Cop
25
- MESSAGE = "Don't use single-line hook blocks.".freeze
27
+ MESSAGE = "Don't use single-line hook blocks."
26
28
 
27
29
  def_node_search :rspec_hook?, <<~PATTERN
28
30
  (send nil? {:after :around :before} ...)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rubocop-rspec'
2
4
 
3
5
  module Gitlab
@@ -16,7 +18,7 @@ module Gitlab
16
18
  # describe MyClass, :js do
17
19
  # end
18
20
  class VerboseIncludeMetadata < RuboCop::Cop::RSpec::Cop
19
- MSG = 'Use `%s` instead of `%s`.'.freeze
21
+ MSG = 'Use `%s` instead of `%s`.'
20
22
 
21
23
  SELECTORS = %i[describe context feature example_group it specify example scenario its].freeze
22
24
 
@@ -1,10 +1,12 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Gitlab
2
4
  module Styles
3
5
  module Rubocop
4
6
  module Cop
5
7
  # Cop that prevents the use of `without_reactive_cache`
6
8
  class WithoutReactiveCache < RuboCop::Cop::Cop
7
- MSG = 'without_reactive_cache is for debugging purposes only. Please use with_reactive_cache.'.freeze
9
+ MSG = 'without_reactive_cache is for debugging purposes only. Please use with_reactive_cache.'
8
10
 
9
11
  def on_send(node)
10
12
  return unless node.children[1] == :without_reactive_cache
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Gitlab
2
4
  module Styles
3
5
  module Rubocop
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Gitlab
2
4
  module Styles
3
5
  module Rubocop
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Gitlab
2
4
  module Styles
3
- VERSION = '3.3.0'.freeze
5
+ VERSION = '3.4.0'
4
6
  end
5
7
  end
@@ -110,7 +110,7 @@ Style/FormatStringToken:
110
110
 
111
111
  # Checks if there is a magic comment to enforce string literals
112
112
  Style/FrozenStringLiteralComment:
113
- Enabled: false
113
+ Enabled: true
114
114
 
115
115
  # Do not introduce global variables.
116
116
  Style/GlobalVars:
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitlab-styles
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.0
4
+ version: 3.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - GitLab
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-03-31 00:00:00.000000000 Z
11
+ date: 2020-04-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubocop
@@ -131,6 +131,7 @@ extra_rdoc_files: []
131
131
  files:
132
132
  - ".gitignore"
133
133
  - ".gitlab-ci.yml"
134
+ - ".gitlab/merge_request_templates/Release.md"
134
135
  - ".rspec"
135
136
  - ".rubocop.yml"
136
137
  - ".rubocop_todo.yml"
@@ -192,7 +193,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
192
193
  - !ruby/object:Gem::Version
193
194
  version: '0'
194
195
  requirements: []
195
- rubygems_version: 3.0.3
196
+ rubygems_version: 3.1.2
196
197
  signing_key:
197
198
  specification_version: 4
198
199
  summary: GitLab style guides and shared style configs.