rubocop-lts 0.3.0 → 1.0.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.
data/README.md CHANGED
@@ -1,221 +1,319 @@
1
- <a href="https://rubocop-lts.gitlab.io/"><img alt="rubocop-lts Logo by Aboling0, CC BY-SA 4.0" src="https://logos.galtzo.com/assets/images/rubocop-lts/avatar-192px.svg" width="20%" align="right"/></a>
2
-
3
- # 🦾 RuboCop LTS
4
-
5
- The RuboCop LTS family of gems is the distillation of more than 20 years of my own Ruby expertise and source code diving, built on the shoulders of the expertise of many others — `rubocop`, `standard`, `rubocop-gradual` and others are runtime dependencies — not reinventing any wheels here); organizing that expertise into per-Ruby-version sets of configurations. Yes, I typed those emdashes, and wrote this entire README myself without AI — `ctrl`-`shift`-`u`-`2014`.
6
-
7
- ## PROJECT DOCUMENTATION
8
-
9
- * 🌱 [Convention > Configuration][Convention-Over-Configuration]
10
- * 🌱 [Releases][Even-Major-Release]
11
- * 🌱 [How to Upgrade Ruby (1.8 to 3.2)!][How-To-Upgrade-Ruby]
12
- * 👩‍💻 [Org Health][OrgHealth]
13
- * ✨ [Installation][Installation]
14
- * 🔧 [Usage][Usage]
15
- * ⚡️ [Contributing][Contributing]
16
- * 🌈 [Contributors][Contributors]
17
- * 📄 [License][License]
18
- * © [Copyright][Copyright]
19
- * 🤝 [Code of Conduct][Code of Conduct]
20
- * 📌 [Versioning][Versioning]
21
-
22
- [Convention-Over-Configuration]: https://rubocop-lts.gitlab.io/CONV_OVER_CONF/
23
- [Even-Major-Release]: https://rubocop-lts.gitlab.io/CONV_OVER_CONF/#even-major-release
24
- [How-To-Upgrade-Ruby]: https://rubocop-lts.gitlab.io/HOW_TO_UPGRADE_RUBY/
25
- [OrgHealth]: https://rubocop-lts.gitlab.io/#org-health-
26
- [Installation]: https://rubocop-lts.gitlab.io/#installation-
27
- [Usage]: https://rubocop-lts.gitlab.io/#usage-
28
- [Contributing]: https://rubocop-lts.gitlab.io/#contributing-
29
- [Contributors]: https://rubocop-lts.gitlab.io/#contributors-
30
- [License]: https://rubocop-lts.gitlab.io/#license-
31
- [Copyright]: https://rubocop-lts.gitlab.io/#copyright-
32
- [Code of Conduct]: https://rubocop-lts.gitlab.io/#code-of-conduct-
33
- [Versioning]: https://rubocop-lts.gitlab.io/#versioning-
34
-
35
- ## This README
36
-
37
- * 🌳 [This Branch](#this-branch-)
38
- * ‍💻 [Project Health](#project-health-)
39
- * ✨ [Installation](#installation-)
40
-
41
- ## This Branch 🌳
1
+ <p align="center">
2
+ <a href="https://rubocop.org#gh-light-mode-only" target="_blank" rel="noopener">
3
+ <img height="120px" src="https://github.com/rubocop-lts/rubocop-lts/raw/main/docs/images/logo/rubocop-light.svg?raw=true" alt="SVG RuboCop Logo, Copyright (c) 2014 Dimiter Petrov, CC BY-NC 4.0, see docs/images/logo/README.txt">
4
+ </a>
5
+ <a href="https://rubocop.org#gh-dark-mode-only" target="_blank" rel="noopener">
6
+ <img height="120px" src="https://github.com/rubocop-lts/rubocop-lts/raw/main/docs/images/logo/rubocop-dark.svg?raw=true" alt="SVG RuboCop Logo, Copyright (c) 2014 Dimiter Petrov, CC BY-NC 4.0, see docs/images/logo/README.txt">
7
+ </a>
8
+ <a href="https://www.ruby-lang.org/" target="_blank" rel="noopener">
9
+ <img height="120px" src="https://github.com/rubocop-lts/rubocop-lts/raw/main/docs/images/logo/ruby-logo.svg?raw=true" alt="Yukihiro Matsumoto, Ruby Visual Identity Team, CC BY-SA 2.5, see docs/images/logo/README.txt">
10
+ </a>
11
+ <a href="https://semver.org/#gh-light-mode-only" target="_blank" rel="noopener">
12
+ <img height="120px" src="https://github.com/rubocop-lts/rubocop-lts/raw/main/docs/images/logo/semver-light.svg?raw=true" alt="SemVer.org Logo by @maxhaz, see docs/images/logo/README.txt">
13
+ </a>
14
+ <a href="https://semver.org/#gh-dark-mode-only" target="_blank" rel="noopener">
15
+ <img height="120px" src="https://github.com/rubocop-lts/rubocop-lts/raw/main/docs/images/logo/semver-dark.svg?raw=true" alt="SemVer.org Logo by @maxhaz, see docs/images/logo/README.txt">
16
+ </a>
17
+ </p>
18
+
19
+ # Rubocop LTS
20
+
21
+ ## 🙋‍♀️ How often has RuboCop broken your build?
22
+
23
+ This is both good (literally its job) _and_ bad (when it's for the wrong reasons).
24
+
25
+ It's supposed to break the build when it finds violations.
26
+ It should not break the build due to incompatibility with your environment. RuboCop
27
+ doesn't [follow SemVer](https://dev.to/pboling/rubocop-ruby-matrix-gems-nj), and occasionally it will unexpectedly break things.
28
+
29
+ ## 🗿 Stable
30
+
31
+ All releases are stable releases. The major version you need depends on the supported version(s) of Ruby for your project.
32
+
33
+ Projects that support a single version of Ruby (like many closed-source applications) will use the [Odd releases][even-release].
34
+
35
+ Projects that support multiple versions of Ruby simultaneously (like many open-source applications and libraries) will use the [Even releases][even-release].
42
36
 
43
37
  <!-- FIND VERSION -->
44
- **This README is for the even release of `rubocop-lts` supporting Ruby >= 1.8.**
38
+ **This README is for the odd release of `rubocop-lts` supporting only Ruby 1.9.**
39
+
40
+ [odd-release]: https://github.com/rubocop-lts/rubocop-lts#odd-major-release
41
+ [even-release]: https://github.com/rubocop-lts/rubocop-lts#even-major-release
45
42
 
46
- This gem configures many gems for you:
43
+ ## Version Conventions
47
44
 
48
- - rubocop
49
- - rubocop-gradual
50
- - rubocop-md
51
- - rubocop-rake
52
- - rubocop-shopify
53
- - rubocop-thread_safety
54
- - standard
55
- - standard-performance (incl. rubocop-performance)
56
- - standard-custom
57
- - standard-rubocop-lts (ruby version-specific rules)
45
+ ### Odd Major Release
58
46
 
59
- And optionally, if you are using RSpec:
47
+ Versions like:
48
+ ```ruby
49
+ "1.0.0"
50
+ "3.0.0"
51
+ "5.0.0"
52
+ # ... etc
53
+ ```
54
+ Locked to a single minor version of Ruby, e.g. version 15.0 has a `required_ruby_version` of `['>= 2.6.0', '< 2.7']`, which will install only on `2.6.x` versions of Ruby.
60
55
 
61
- - rubocop-lts-rspec (which loads `rubocop-rspec`, `rubocop-rspec-extra`, `rubocop-env`, and `rubocop-factory_bot`)
56
+ #### Implementation
62
57
 
63
- And optionally, if you are building a RubyGem:
58
+ Intended for applications and libraries that only lint against a single Ruby version.
64
59
 
65
- - rubocop-packaging
60
+ Odd versions should be attached to a project's trunk (e.g. the main branch), for long-term stability (ahem, _lts_, anyone?) of the style rules.
66
61
 
67
- And optionally, if you are building a Rails app:
62
+ | Your Ruby | Your Gemfile | Your Gemfile.lock | Your .rubocop.yml |
63
+ |-----------------------------------|--------------------------------|-------------------|------------------------------------------------|
64
+ | `1.9.x` (`['>= 1.9.0', '< 2']`) | `gem "rubocop-lts", "~> 1.0"` | `rubocop-ruby1_9` | `inherit_gem:\n rubocop-lts: rubocop-lts.yml` |
65
+ | `2.0.x` (`['>= 2.0.0', '< 2.1']`) | `gem "rubocop-lts", "~> 3.0"` | `rubocop-ruby2_0` | `inherit_gem:\n rubocop-lts: rubocop-lts.yml` |
66
+ | `2.1.x` (`['>= 2.1.0', '< 2.2']`) | `gem "rubocop-lts", "~> 5.0"` | `rubocop-ruby2_1` | `inherit_gem:\n rubocop-lts: rubocop-lts.yml` |
67
+ | `2.2.x` (`['>= 2.2.0', '< 2.3']`) | `gem "rubocop-lts", "~> 7.0"` | `rubocop-ruby2_2` | `inherit_gem:\n rubocop-lts: rubocop-lts.yml` |
68
+ | `2.3.x` (`['>= 2.3.0', '< 2.4']`) | `gem "rubocop-lts", "~> 9.0"` | `rubocop-ruby2_3` | `inherit_gem:\n rubocop-lts: rubocop-lts.yml` |
69
+ | `2.4.x` (`['>= 2.4.0', '< 2.5']`) | `gem "rubocop-lts", "~> 11.0"` | `rubocop-ruby2_4` | `inherit_gem:\n rubocop-lts: rubocop-lts.yml` |
70
+ | `2.5.x` (`['>= 2.5.0', '< 2.6']`) | `gem "rubocop-lts", "~> 13.0"` | `rubocop-ruby2_5` | `inherit_gem:\n rubocop-lts: rubocop-lts.yml` |
71
+ | `2.6.x` (`['>= 2.6.0', '< 2.7']`) | `gem "rubocop-lts", "~> 15.0"` | `rubocop-ruby2_6` | `inherit_gem:\n rubocop-lts: rubocop-lts.yml` |
72
+ | `2.7.x` (`['>= 2.7.0', '< 3.0']`) | `gem "rubocop-lts", "~> 17.0"` | `rubocop-ruby2_7` | `inherit_gem:\n rubocop-lts: rubocop-lts.yml` |
73
+ | `3.0.x` (`['>= 3.0.0', '< 3.1']`) | `gem "rubocop-lts", "~> 19.0"` | `rubocop-ruby3_0` | `inherit_gem:\n rubocop-lts: rubocop-lts.yml` |
74
+ | `3.1.x` (`['>= 3.1.0', '< 3.2']`) | `gem "rubocop-lts", "~> 21.0"` | `rubocop-ruby3_1` | `inherit_gem:\n rubocop-lts: rubocop-lts.yml` |
75
+ | `3.2.x` / ruby-head | `gem "rubocop-lts", "~> 23.0"` | `rubocop-ruby3_2` | `inherit_gem:\n rubocop-lts: rubocop-lts.yml` |
68
76
 
69
- - standard-rails (incl. rubocop-rails)
70
- - betterlint
77
+ ### Even Major Release
71
78
 
72
- ## Project Health 👩‍💻
79
+ Versions like:
80
+ ```ruby
81
+ "2.0.0"
82
+ "4.0.0"
83
+ "6.0.0"
84
+ # ... etc
85
+ ```
86
+ Locked to the forward range of Rubies on which the gem can be installed (though rubocop may not execute on all),
87
+ e.g. version 16.0 has a `required_ruby_version` of `['>= 2.6.0', '< 3.2']` will install on any released version
88
+ of ruby from `2.6` on.
89
+
90
+ #### Implementation
91
+
92
+ Intended for applications and libraries that lint against a range of Ruby versions.
93
+
94
+ Even versions will help projects upgrade to newer Rubies while keeping the same underlying version of Rubocop version, so change can be introduced one step at a time.
95
+
96
+ | Minimum Ruby | Your Gemfile | Your Gemfile.lock | Your .rubocop.yml |
97
+ |-----------------------------------|--------------------------------|-------------------|------------------------------------------------|
98
+ | `1.9.x` (`['>= 1.9.0', '< 3.2']`) | `gem "rubocop-lts", "~> 2.0"` | `rubocop-ruby1_9` | `inherit_gem:\n rubocop-lts: rubocop-lts.yml` |
99
+ | `2.0.x` (`['>= 2.0.0', '< 3.2']`) | `gem "rubocop-lts", "~> 4.0"` | `rubocop-ruby2_0` | `inherit_gem:\n rubocop-lts: rubocop-lts.yml` |
100
+ | `2.1.x` (`['>= 2.1.0', '< 3.2']`) | `gem "rubocop-lts", "~> 6.0"` | `rubocop-ruby2_1` | `inherit_gem:\n rubocop-lts: rubocop-lts.yml` |
101
+ | `2.2.x` (`['>= 2.2.0', '< 3.2']`) | `gem "rubocop-lts", "~> 8.0"` | `rubocop-ruby2_2` | `inherit_gem:\n rubocop-lts: rubocop-lts.yml` |
102
+ | `2.3.x` (`['>= 2.3.0', '< 3.2']`) | `gem "rubocop-lts", "~> 10.0"` | `rubocop-ruby2_3` | `inherit_gem:\n rubocop-lts: rubocop-lts.yml` |
103
+ | `2.4.x` (`['>= 2.4.0', '< 3.2']`) | `gem "rubocop-lts", "~> 12.0"` | `rubocop-ruby2_4` | `inherit_gem:\n rubocop-lts: rubocop-lts.yml` |
104
+ | `2.5.x` (`['>= 2.5.0', '< 3.2']`) | `gem "rubocop-lts", "~> 14.0"` | `rubocop-ruby2_5` | `inherit_gem:\n rubocop-lts: rubocop-lts.yml` |
105
+ | `2.6.x` (`['>= 2.6.0', '< 3.2']`) | `gem "rubocop-lts", "~> 16.0"` | `rubocop-ruby2_6` | `inherit_gem:\n rubocop-lts: rubocop-lts.yml` |
106
+ | `2.7.x` (`['>= 2.7.0', '< 3.2']`) | `gem "rubocop-lts", "~> 18.0"` | `rubocop-ruby2_7` | `inherit_gem:\n rubocop-lts: rubocop-lts.yml` |
107
+ | `3.0.x` (`['>= 3.0.0', '< 3.2']`) | `gem "rubocop-lts", "~> 20.0"` | `rubocop-ruby3_0` | `inherit_gem:\n rubocop-lts: rubocop-lts.yml` |
108
+ | `3.1.x` (`['>= 3.1.0', '< 3.2']`) | `gem "rubocop-lts", "~> 22.0"` | `rubocop-ruby3_1` | `inherit_gem:\n rubocop-lts: rubocop-lts.yml` |
109
+ | `3.2.x` / ruby-head | `gem "rubocop-lts", "~> 24.0"` | `rubocop-ruby3_2` | `inherit_gem:\n rubocop-lts: rubocop-lts.yml` |
110
+
111
+ ### All together now!
112
+
113
+ Upgrading a single step from odd to even will allow upgrading Ruby.
114
+
115
+ Upgrading a single step from even to odd will keep the same version of Ruby, and instead upgrade to the next RuboCop milestone.
116
+
117
+ Each major version will have a tracking branch named accordingly, [for development](https://github.com/rubocop-lts/rubocop-lts#git-branch-names).
118
+
119
+ ### 🪢 How To Untie Gorgon's Knot
120
+
121
+ > NOTE: `rubocop-lts` is under active development, and hasn't had any releases yet. The ruby specific versions, e.g. `rubocop-ruby2_7`, are complete already, and you can use them! Keep scrolling down for links to each of them.
122
+
123
+ How to upgrade a project from yesterday, to today.
124
+
125
+ 1. Have good code coverage.
126
+ 2. Upgrade one step at a time.
127
+ 3. Re-run `bundle exec rubocop -a` in between each step.
128
+ 4. Re-run `bundle exec rubocop --auto-gen-config` in between each step.
129
+ 5. Commit and push to CI in between each step.
130
+
131
+ | Your Ruby | Your Gemfile | required_ruby_version | Your Gemfile.lock | Your .rubocop.yml |
132
+ |---------------|--------------------------------------|-------------------------|------------------------------|------------------------------------------------|
133
+ | `1.9.x` | `gem "rubocop-lts", "~> 1.0"` | `['>= 1.9.0', '< 2']` | [`rubocop-ruby1_9`][⛳️19-gh] | `inherit_gem:\n rubocop-lts: rubocop-lts.yml` |
134
+ | ⬆️ to `2.0.x` | ⬆️ to `gem "rubocop-lts", "~> 2.0"` | `['>= 1.9.0', '< 3.2']` | no change | no change |
135
+ | no change | ⬆️ to `gem "rubocop-lts", "~> 3.0"` | `['>= 2.0.0', '< 2.1']` | [`rubocop-ruby2_0`][⛳️20-gh] | no change |
136
+ | ⬆️ to `2.1.x` | ⬆️ to `gem "rubocop-lts", "~> 4.0"` | `['>= 2.0.0', '< 3.2']` | no change | no change |
137
+ | no change | ⬆️ to `gem "rubocop-lts", "~> 5.0"` | `['>= 2.1.0', '< 2.2']` | [`rubocop-ruby2_1`][⛳️21-gh] | no change |
138
+ | ⬆️ to `2.2.x` | ⬆️ to `gem "rubocop-lts", "~> 6.0"` | `['>= 2.1.0', '< 3.2']` | no change | no change |
139
+ | no change | ⬆️ to `gem "rubocop-lts", "~> 7.0"` | `['>= 2.2.0', '< 2.3']` | [`rubocop-ruby2_2`][⛳️22-gh] | no change |
140
+ | ⬆️ to `2.3.x` | ⬆️ to `gem "rubocop-lts", "~> 8.0"` | `['>= 2.2.0', '< 3.2']` | no change | no change |
141
+ | no change | ⬆️ to `gem "rubocop-lts", "~> 9.0"` | `['>= 2.3.0', '< 2.4']` | [`rubocop-ruby2_3`][⛳️23-gh] | no change |
142
+ | ⬆️ to `2.4.x` | ⬆️ to `gem "rubocop-lts", "~> 10.0"` | `['>= 2.3.0', '< 3.2']` | no change | no change |
143
+ | no change | ⬆️ to `gem "rubocop-lts", "~> 11.0"` | `['>= 2.4.0', '< 2.5']` | [`rubocop-ruby2_4`][⛳️24-gh] | no change |
144
+ | ⬆️ to `2.5.x` | ⬆️ to `gem "rubocop-lts", "~> 12.0"` | `['>= 2.4.0', '< 3.2']` | no change | no change |
145
+ | no change | ⬆️ to `gem "rubocop-lts", "~> 13.0"` | `['>= 2.5.0', '< 2.6']` | [`rubocop-ruby2_5`][⛳️25-gh] | no change |
146
+ | ⬆️ to `2.6.x` | ⬆️ to `gem "rubocop-lts", "~> 14.0"` | `['>= 2.5.0', '< 3.2']` | no change | no change |
147
+ | no change | ⬆️ to `gem "rubocop-lts", "~> 15.0"` | `['>= 2.6.0', '< 2.7']` | [`rubocop-ruby2_6`][⛳️26-gh] | no change |
148
+ | ⬆️ to `2.7.x` | ⬆️ to `gem "rubocop-lts", "~> 16.0"` | `['>= 2.6.0', '< 3.2']` | no change | no change |
149
+ | no change | ⬆️ to `gem "rubocop-lts", "~> 17.0"` | `['>= 2.7.0', '< 3.0']` | [`rubocop-ruby2_7`][⛳️27-gh] | no change |
150
+ | ⬆️ to `3.0.x` | ⬆️ to `gem "rubocop-lts", "~> 18.0"` | `['>= 2.7.0', '< 3.2']` | no change | no change |
151
+ | no change | ⬆️ to `gem "rubocop-lts", "~> 19.0"` | `['>= 3.0.0', '< 3.1']` | [`rubocop-ruby3_0`][⛳️30-gh] | no change |
152
+ | ⬆️ to `3.1.x` | ⬆️ to `gem "rubocop-lts", "~> 20.0"` | `['>= 3.0.0', '< 3.2']` | no change | no change |
153
+ | no change | ⬆️ to `gem "rubocop-lts", "~> 21.0"` | `['>= 3.1.0', '< 3.2']` | [`rubocop-ruby3_1`][⛳️31-gh] | no change |
154
+ | ⬆️ to `3.2.x` | ⬆️ to `gem "rubocop-lts", "~> 22.0"` | `['>= 3.1.0', '< 3.2']` | no change | no change |
155
+ | no change | ⬆️ to `gem "rubocop-lts", "~> 23.0"` | `['>= 3.2.0', '< 3.3']` | [`rubocop-ruby3_2`][⛳️32-gh] | no change |
156
+ | ⬆️ to `3.3.x` | ⬆️ to `gem "rubocop-lts", "~> 24.0"` | `['>= 3.2.0', '< 3.3']` | no change | no change |
157
+
158
+ > NOTE: `required_ruby_version` means the gem will install on a version of Ruby within the range.
159
+ > Versions of this gem intended for ancient Rubies may not execute on more modern Rubies, _despite installing_.
160
+ > As such you might consider limiting linting to only a single version of Ruby, the oldest one supported.
161
+ > Speaking of old rubies... 👇
162
+
163
+ ### 📼 Supporting Ruby 1.8
164
+
165
+ Have a library still supporting Ruby 1.8.7, or looking to drop support for Ruby 1.8.7 in a SemVer-compliant manner?
166
+
167
+ Simply use `rubocop-lts`, version 1.x or 2.x, which support Ruby 1.9.3 for installation, and 1.8.7 for syntax.
168
+ ```yaml
169
+ inherit_gem:
170
+ rubocop-lts: rubocop-lts1_8.yml
171
+ ```
73
172
 
74
- | Gem Name | Version | Downloads | CI | Activity |
75
- |------------------------------|-------------------------------------|----------------------------------------------------------------------|-----------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------|
76
- | [`rubocop-lts`][⛳️lts-gh] | [![Gem Version][⛳️lts-vi]][⛳️lts-g] | [![Total DL][🖇️lts-dti]][⛳️lts-g] [![DL Rank][🏘️lts-rti]][⛳️lts-g] | [![Current][🚎lts-cwfi]][🚎lts-cwf] [![Heads][🖐lts-hwfi]][🖐lts-hwf] | [![Open Issues][📗lts-ioi]][📗lts-io] [![Closed Issues][🚀lts-ici]][🚀lts-ic] [![Open PRs][💄lts-poi]][💄lts-po] [![Closed PRs][👽lts-pci]][👽lts-pc] |
77
- | [`rubocop-ruby1_8`][⛳️18-gh] | [![Gem Version][⛳️18-vi]][⛳️18-g] | [![Total DL][🖇️18-dti]][⛳️18-g] [![DL Rank][🏘️18-rti]][⛳️18-g] | [![Current][🚎18-cwfi]][🚎18-cwf] [![Heads][🖐18-hwfi]][🖐18-hwf] | [![Open Issues][📗18-ioi]][📗18-io] [![Closed Issues][🚀18-ici]][🚀18-ic] [![Open PRs][💄18-poi]][💄18-po] [![Closed PRs][👽18-pci]][👽18-pc] |
78
- | [`rubocop-ruby1_9`][⛳️19-gh] | [![Gem Version][⛳️19-vi]][⛳️19-g] | [![Total DL][🖇️19-dti]][⛳️19-g] [![DL Rank][🏘️19-rti]][⛳️19-g] | [![Current][🚎19-cwfi]][🚎19-cwf] [![Heads][🖐19-hwfi]][🖐19-hwf] | [![Open Issues][📗19-ioi]][📗19-io] [![Closed Issues][🚀19-ici]][🚀19-ic] [![Open PRs][💄19-poi]][💄19-po] [![Closed PRs][👽19-pci]][👽19-pc] |
79
- | [`rubocop-ruby2_0`][⛳️20-gh] | [![Gem Version][⛳️20-vi]][⛳️20-g] | [![Total DL][🖇️20-dti]][⛳️20-g] [![DL Rank][🏘️20-rti]][⛳️20-g] | [![Current][🚎20-cwfi]][🚎20-cwf] [![Heads][🖐20-hwfi]][🖐20-hwf] | [![Open Issues][📗20-ioi]][📗20-io] [![Closed Issues][🚀20-ici]][🚀20-ic] [![Open PRs][💄20-poi]][💄20-po] [![Closed PRs][👽20-pci]][👽20-pc] |
80
- | [`rubocop-ruby2_1`][⛳️21-gh] | [![Gem Version][⛳️21-vi]][⛳️21-g] | [![Total DL][🖇️21-dti]][⛳️21-g] [![DL Rank][🏘️21-rti]][⛳️21-g] | [![Current][🚎21-cwfi]][🚎21-cwf] [![Heads][🖐21-hwfi]][🖐21-hwf] | [![Open Issues][📗21-ioi]][📗21-io] [![Closed Issues][🚀21-ici]][🚀21-ic] [![Open PRs][💄21-poi]][💄21-po] [![Closed PRs][👽21-pci]][👽21-pc] |
81
- | [`rubocop-ruby2_2`][⛳️22-gh] | [![Gem Version][⛳️22-vi]][⛳️22-g] | [![Total DL][🖇️22-dti]][⛳️22-g] [![DL Rank][🏘️22-rti]][⛳️22-g] | [![Current][🚎22-cwfi]][🚎22-cwf] [![Heads][🖐22-hwfi]][🖐22-hwf] | [![Open Issues][📗22-ioi]][📗22-io] [![Closed Issues][🚀22-ici]][🚀22-ic] [![Open PRs][💄22-poi]][💄22-po] [![Closed PRs][👽22-pci]][👽22-pc] |
82
- | [`rubocop-ruby2_3`][⛳️23-gh] | [![Gem Version][⛳️23-vi]][⛳️23-g] | [![Total DL][🖇️23-dti]][⛳️23-g] [![DL Rank][🏘️23-rti]][⛳️23-g] | [![Current][🚎23-cwfi]][🚎23-cwf] [![Heads][🖐23-hwfi]][🖐23-hwf] | [![Open Issues][📗23-ioi]][📗23-io] [![Closed Issues][🚀23-ici]][🚀23-ic] [![Open PRs][💄23-poi]][💄23-po] [![Closed PRs][👽23-pci]][👽23-pc] |
83
- | [`rubocop-ruby2_4`][⛳️24-gh] | [![Gem Version][⛳️24-vi]][⛳️24-g] | [![Total DL][🖇️24-dti]][⛳️24-g] [![DL Rank][🏘️24-rti]][⛳️24-g] | [![Current][🚎24-cwfi]][🚎24-cwf] [![Heads][🖐24-hwfi]][🖐24-hwf] | [![Open Issues][📗24-ioi]][📗24-io] [![Closed Issues][🚀24-ici]][🚀24-ic] [![Open PRs][💄24-poi]][💄24-po] [![Closed PRs][👽24-pci]][👽24-pc] |
84
- | [`rubocop-ruby2_5`][⛳️25-gh] | [![Gem Version][⛳️25-vi]][⛳️25-g] | [![Total DL][🖇️25-dti]][⛳️25-g] [![DL Rank][🏘️25-rti]][⛳️25-g] | [![Current][🚎25-cwfi]][🚎25-cwf] [![Heads][🖐25-hwfi]][🖐25-hwf] | [![Open Issues][📗25-ioi]][📗25-io] [![Closed Issues][🚀25-ici]][🚀25-ic] [![Open PRs][💄25-poi]][💄25-po] [![Closed PRs][👽25-pci]][👽25-pc] |
85
- | [`rubocop-ruby2_6`][⛳️26-gh] | [![Gem Version][⛳️26-vi]][⛳️26-g] | [![Total DL][🖇️26-dti]][⛳️26-g] [![DL Rank][🏘️26-rti]][⛳️26-g] | [![Current][🚎26-cwfi]][🚎26-cwf] [![Heads][🖐26-hwfi]][🖐26-hwf] | [![Open Issues][📗26-ioi]][📗26-io] [![Closed Issues][🚀26-ici]][🚀26-ic] [![Open PRs][💄26-poi]][💄26-po] [![Closed PRs][👽26-pci]][👽26-pc] |
86
- | [`rubocop-ruby2_7`][⛳️27-gh] | [![Gem Version][⛳️27-vi]][⛳️27-g] | [![Total DL][🖇️27-dti]][⛳️27-g] [![DL Rank][🏘️27-rti]][⛳️27-g] | [![Current][🚎27-cwfi]][🚎27-cwf] [![Heads][🖐27-hwfi]][🖐27-hwf] | [![Open Issues][📗27-ioi]][📗27-io] [![Closed Issues][🚀27-ici]][🚀27-ic] [![Open PRs][💄27-poi]][💄27-po] [![Closed PRs][👽27-pci]][👽27-pc] |
87
- | [`rubocop-ruby3_0`][⛳️30-gh] | [![Gem Version][⛳️30-vi]][⛳️30-g] | [![Total DL][🖇️30-dti]][⛳️30-g] [![DL Rank][🏘️30-rti]][⛳️30-g] | [![Current][🚎30-cwfi]][🚎30-cwf] [![Heads][🖐30-hwfi]][🖐30-hwf] | [![Open Issues][📗30-ioi]][📗30-io] [![Closed Issues][🚀30-ici]][🚀30-ic] [![Open PRs][💄30-poi]][💄30-po] [![Closed PRs][👽30-pci]][👽30-pc] |
88
- | [`rubocop-ruby3_1`][⛳️31-gh] | [![Gem Version][⛳️31-vi]][⛳️31-g] | [![Total DL][🖇️31-dti]][⛳️31-g] [![DL Rank][🏘️31-rti]][⛳️31-g] | [![Current][🚎31-cwfi]][🚎31-cwf] [![Heads][🖐31-hwfi]][🖐31-hwf] | [![Open Issues][📗31-ioi]][📗31-io] [![Closed Issues][🚀31-ici]][🚀31-ic] [![Open PRs][💄31-poi]][💄31-po] [![Closed PRs][👽31-pci]][👽31-pc] |
89
- | [`rubocop-ruby3_2`][⛳️32-gh] | [![Gem Version][⛳️32-vi]][⛳️32-g] | [![Total DL][🖇️32-dti]][⛳️32-g] [![DL Rank][🏘️32-rti]][⛳️32-g] | [![Current][🚎32-cwfi]][🚎32-cwf] [![Heads][🖐32-hwfi]][🖐32-hwf] | [![Open Issues][📗32-ioi]][📗32-io] [![Closed Issues][🚀32-ici]][🚀32-ic] [![Open PRs][💄32-poi]][💄32-po] [![Closed PRs][👽32-pci]][👽32-pc] |
173
+ > NOTE: For more on how Ruby 1.8 support works, look [here][what1_8]
90
174
 
91
- ## Installation ✨
175
+ [what1_8]: https://github.com/rubocop-lts/rubocop-ruby1_9#what-about-ruby-18
92
176
 
93
- Install the gem and add to the application's Gemfile by executing:
177
+ ## 👩‍💻 Project Health
94
178
 
95
- $ bundle add rubocop-lts -r false
179
+ | Gem Name | Version | Downloads | CI | Activity |
180
+ |------------------------------|-------------------------------------|----------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------|
181
+ | [`rubocop-lts`][⛳️lts-gh] | [![Gem Version][⛳️lts-vi]][⛳️lts-g] | [![Total DL][🖇️lts-dti]][⛳️lts-g] [![DL Rank][🏘️lts-rti]][⛳️lts-g] | [![Current][🚎lts-cwfi]][🚎lts-cwf] [![Legacy][🧮lts-lwfi]][🧮lts-lwf] [![Heads][🖐lts-hwfi]][🖐lts-hwf] | [![Open Issues][📗lts-ioi]][📗lts-io] [![Closed Issues][🚀lts-ici]][🚀lts-ic] [![Open PRs][💄lts-poi]][💄lts-po] [![Closed PRs][👽lts-pci]][👽lts-pc] |
182
+ | [`rubocop-ruby1_9`][⛳️19-gh] | [![Gem Version][⛳️19-vi]][⛳️19-g] | [![Total DL][🖇️19-dti]][⛳️19-g] [![DL Rank][🏘️19-rti]][⛳️19-g] | [![Current][🚎19-cwfi]][🚎19-cwf] [![Legacy][🧮19-lwfi]][🧮19-lwf] | [![Open Issues][📗19-ioi]][📗19-io] [![Closed Issues][🚀19-ici]][🚀19-ic] [![Open PRs][💄19-poi]][💄19-po] [![Closed PRs][👽19-pci]][👽19-pc] |
183
+ | [`rubocop-ruby2_0`][⛳️20-gh] | [![Gem Version][⛳️20-vi]][⛳️20-g] | [![Total DL][🖇️20-dti]][⛳️20-g] [![DL Rank][🏘️20-rti]][⛳️20-g] | [![Current][🚎20-cwfi]][🚎20-cwf] [![Legacy][🧮20-lwfi]][🧮20-lwf] | [![Open Issues][📗20-ioi]][📗20-io] [![Closed Issues][🚀20-ici]][🚀20-ic] [![Open PRs][💄20-poi]][💄20-po] [![Closed PRs][👽20-pci]][👽20-pc] |
184
+ | [`rubocop-ruby2_1`][⛳️21-gh] | [![Gem Version][⛳️21-vi]][⛳️21-g] | [![Total DL][🖇️21-dti]][⛳️21-g] [![DL Rank][🏘️21-rti]][⛳️21-g] | [![Current][🚎21-cwfi]][🚎21-cwf] [![Legacy][🧮21-lwfi]][🧮21-lwf] | [![Open Issues][📗21-ioi]][📗21-io] [![Closed Issues][🚀21-ici]][🚀21-ic] [![Open PRs][💄21-poi]][💄21-po] [![Closed PRs][👽21-pci]][👽21-pc] |
185
+ | [`rubocop-ruby2_2`][⛳️22-gh] | [![Gem Version][⛳️22-vi]][⛳️22-g] | [![Total DL][🖇️22-dti]][⛳️22-g] [![DL Rank][🏘️22-rti]][⛳️22-g] | [![Current][🚎22-cwfi]][🚎22-cwf] [![Legacy][🧮22-lwfi]][🧮22-lwf] | [![Open Issues][📗22-ioi]][📗22-io] [![Closed Issues][🚀22-ici]][🚀22-ic] [![Open PRs][💄22-poi]][💄22-po] [![Closed PRs][👽22-pci]][👽22-pc] |
186
+ | [`rubocop-ruby2_3`][⛳️23-gh] | [![Gem Version][⛳️23-vi]][⛳️23-g] | [![Total DL][🖇️23-dti]][⛳️23-g] [![DL Rank][🏘️23-rti]][⛳️23-g] | [![Current][🚎23-cwfi]][🚎23-cwf] [![Legacy][🧮23-lwfi]][🧮23-lwf] | [![Open Issues][📗23-ioi]][📗23-io] [![Closed Issues][🚀23-ici]][🚀23-ic] [![Open PRs][💄23-poi]][💄23-po] [![Closed PRs][👽23-pci]][👽23-pc] |
187
+ | [`rubocop-ruby2_4`][⛳️24-gh] | [![Gem Version][⛳️24-vi]][⛳️24-g] | [![Total DL][🖇️24-dti]][⛳️24-g] [![DL Rank][🏘️24-rti]][⛳️24-g] | [![Current][🚎24-cwfi]][🚎24-cwf] [![Legacy][🧮24-lwfi]][🧮24-lwf] | [![Open Issues][📗24-ioi]][📗24-io] [![Closed Issues][🚀24-ici]][🚀24-ic] [![Open PRs][💄24-poi]][💄24-po] [![Closed PRs][👽24-pci]][👽24-pc] |
188
+ | [`rubocop-ruby2_5`][⛳️25-gh] | [![Gem Version][⛳️25-vi]][⛳️25-g] | [![Total DL][🖇️25-dti]][⛳️25-g] [![DL Rank][🏘️25-rti]][⛳️25-g] | [![Current][🚎25-cwfi]][🚎25-cwf] [![Heads][🖐25-hwfi]][🖐25-hwf] [![Legacy][🧮25-lwfi]][🧮25-lwf] | [![Open Issues][📗25-ioi]][📗25-io] [![Closed Issues][🚀25-ici]][🚀25-ic] [![Open PRs][💄25-poi]][💄25-po] [![Closed PRs][👽25-pci]][👽25-pc] |
189
+ | [`rubocop-ruby2_6`][⛳️26-gh] | [![Gem Version][⛳️26-vi]][⛳️26-g] | [![Total DL][🖇️26-dti]][⛳️26-g] [![DL Rank][🏘️26-rti]][⛳️26-g] | [![Current][🚎26-cwfi]][🚎26-cwf] [![Heads][🖐26-hwfi]][🖐26-hwf] [![Legacy][🧮26-lwfi]][🧮26-lwf] | [![Open Issues][📗26-ioi]][📗26-io] [![Closed Issues][🚀26-ici]][🚀26-ic] [![Open PRs][💄26-poi]][💄26-po] [![Closed PRs][👽26-pci]][👽26-pc] |
190
+ | [`rubocop-ruby2_7`][⛳️27-gh] | [![Gem Version][⛳️27-vi]][⛳️27-g] | [![Total DL][🖇️27-dti]][⛳️27-g] [![DL Rank][🏘️27-rti]][⛳️27-g] | [![Current][🚎27-cwfi]][🚎27-cwf] [![Heads][🖐27-hwfi]][🖐27-hwf] | [![Open Issues][📗27-ioi]][📗27-io] [![Closed Issues][🚀27-ici]][🚀27-ic] [![Open PRs][💄27-poi]][💄27-po] [![Closed PRs][👽27-pci]][👽27-pc] |
191
+ | [`rubocop-ruby3_0`][⛳️30-gh] | [![Gem Version][⛳️30-vi]][⛳️30-g] | [![Total DL][🖇️30-dti]][⛳️30-g] [![DL Rank][🏘️30-rti]][⛳️30-g] | [![Current][🚎30-cwfi]][🚎30-cwf] [![Heads][🖐30-hwfi]][🖐30-hwf] | [![Open Issues][📗30-ioi]][📗30-io] [![Closed Issues][🚀30-ici]][🚀30-ic] [![Open PRs][💄30-poi]][💄30-po] [![Closed PRs][👽30-pci]][👽30-pc] |
192
+ | [`rubocop-ruby3_1`][⛳️31-gh] | [![Gem Version][⛳️31-vi]][⛳️31-g] | [![Total DL][🖇️31-dti]][⛳️31-g] [![DL Rank][🏘️31-rti]][⛳️31-g] | [![Current][🚎31-cwfi]][🚎31-cwf] [![Heads][🖐31-hwfi]][🖐31-hwf] | [![Open Issues][📗31-ioi]][📗31-io] [![Closed Issues][🚀31-ici]][🚀31-ic] [![Open PRs][💄31-poi]][💄31-po] [![Closed PRs][👽31-pci]][👽31-pc] |
193
+ | [`rubocop-ruby3_2`][⛳️32-gh] | [![Gem Version][⛳️32-vi]][⛳️32-g] | [![Total DL][🖇️32-dti]][⛳️32-g] [![DL Rank][🏘️32-rti]][⛳️32-g] | [![Current][🚎32-cwfi]][🚎32-cwf] [![Heads][🖐32-hwfi]][🖐32-hwf] | [![Open Issues][📗32-ioi]][📗32-io] [![Closed Issues][🚀32-ici]][🚀32-ic] [![Open PRs][💄32-poi]][💄32-po] [![Closed PRs][👽32-pci]][👽32-pc] |
96
194
 
97
- NOTE: If you are using **Rails** remove the `-r false`,
98
- so the Railtie will load and rake tasks will be loaded automatically.
195
+ ## Installation
99
196
 
100
- If bundler is not being used to manage dependencies, install the gem by executing:
197
+ Without bundler execute:
101
198
 
102
- $ gem install rubocop-lts
199
+ $ gem install
103
200
 
104
- Or add this line to your application's Gemfile:
201
+ Add this line to your application's Gemfile:
105
202
 
106
203
  <!-- FIND VERSION -->
107
204
  ```ruby
108
- gem "rubocop-lts", "~> 0.1", require: false
205
+ gem 'rubocop-lts', '~> 1.0', require: false
109
206
  ```
110
207
 
111
208
  And then execute:
112
209
 
113
210
  $ bundle
114
211
 
115
- ## Usage with RuboCop
212
+ ## 🔧 Usage
116
213
 
117
- In your `.rubocop.yml` do the following:
214
+ The following is optional. We'll discuss why you might want to do this after you see what it does.
215
+
216
+ Add to the top of your project's `.rubocop.yml` configuration file:
118
217
 
119
- 🔥 Delete the following line 🔥
120
218
  ```yaml
121
- inherit_from: .rubocop_todo.yml
219
+ inherit_gem:
220
+ - rubocop-lts.yml
122
221
  ```
123
222
 
124
- You can probably 🔥 delete 🔥 most of the other lines too.
125
- This tool is anti-bike-shedding.
126
- You no longer need to worry about the rules!
223
+ ## Development
127
224
 
128
- 🔥 Any of the following configs are no longer needed 🔥
129
- ```yaml
130
- require:
131
- - 'betterlint'
132
- - 'rubocop-md'
133
- - 'rubocop-packaging'
134
- - 'rubocop-performance'
135
- - 'rubocop-rake'
136
- - 'rubocop-rspec'
137
- - 'rubocop-rails'
138
- - 'rubocop-thread_safety'
139
- - 'rubocop/gradual/patch'
140
- - 'standard'
141
- - 'standard-custom'
142
- - 'standard-performance'
143
- - 'standard-rails'
144
- - 'standard-rubocop-lts'
145
-
146
- AllCops:
147
- NewCops: enable
148
- DisplayCopNames: true
149
- TargetRubyVersion: X.X
150
- ```
225
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
151
226
 
152
- Then pick one of the following to add!
227
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
153
228
 
154
- ### if Ruby with RSpec
229
+ ### Git Branch Names
155
230
 
156
- ```yaml
157
- inherit_gem:
158
- rubocop-lts: rubocop-lts.yml # for the ruby + rspec
159
- # NOTE: this is the default, and as such, is equivalent to:
160
- # rubocop-lts: config/ruby_rspec.yml
231
+ #### Naming Scheme
232
+
233
+ ```ruby
234
+ "r{{ ruby major }}_{{ ruby minor }}-{{ parity }}-v{{ gem-version }}"
161
235
  ```
162
236
 
163
- ### if just Ruby (without RSpec)
237
+ ##### Parity
164
238
 
165
- ```yaml
166
- inherit_gem:
167
- rubocop-lts: config/ruby.yml
168
- ```
239
+ Even versions use the token `even` in the branch name.
240
+ Odd versions use the token `odd` in the branch name.
169
241
 
170
- ### if Rails with RSpec
242
+ #### Version - Branch Matrix
171
243
 
172
- ```yaml
173
- inherit_gem:
174
- rubocop-lts: config/rails_rspec.yml
175
- ```
244
+ | Ruby Version | Parity | Gem Version | Branch Name | Purpose |
245
+ |-----------------|--------|-------------|-----------------|-----------------------------------|
246
+ | 1.9 | odd | 1.x | `r1_9-odd-v1` | LTS, trunk, single-ruby-linting |
247
+ | 1.9 | even | 2.x | `r1_9-even-v2` | Upgrade, feat, multi-ruby-linting |
248
+ | 2.0 | odd | 3.x | `r2_0-odd-v3` | LTS, trunk, single-ruby-linting |
249
+ | 2.0 | even | 4.x | `r2_0-even-v4` | Upgrade, feat, multi-ruby-linting |
250
+ | 2.1 | odd | 5.x | `r2_1-odd-v5` | LTS, trunk, single-ruby-linting |
251
+ | 2.1 | even | 6.x | `r2_1-even-v6` | Upgrade, feat, multi-ruby-linting |
252
+ | 2.2 | odd | 7.x | `r2_2-odd-v7` | LTS, trunk, single-ruby-linting |
253
+ | 2.2 | even | 8.x | `r2_2-even-v8` | Upgrade, feat, multi-ruby-linting |
254
+ | 2.3 | odd | 9.x | `r2_3-odd-v9` | LTS, trunk, single-ruby-linting |
255
+ | 2.3 | even | 10.x | `r2_3-even-v10` | Upgrade, feat, multi-ruby-linting |
256
+ | 2.4 | odd | 11.x | `r2_4-odd-v11` | LTS, trunk, single-ruby-linting |
257
+ | 2.4 | even | 12.x | `r2_4-even-v12` | Upgrade, feat, multi-ruby-linting |
258
+ | 2.5 | odd | 13.x | `r2_5-odd-v13` | LTS, trunk, single-ruby-linting |
259
+ | 2.5 | even | 14.x | `r2_5-even-v14` | Upgrade, feat, multi-ruby-linting |
260
+ | 2.6 | odd | 15.x | `r2_6-odd-v15` | LTS, trunk, single-ruby-linting |
261
+ | 2.6 | even | 16.x | `r2_6-even-v16` | Upgrade, feat, multi-ruby-linting |
262
+ | 2.7 | odd | 17.x | `r2_7-odd-v17` | LTS, trunk, single-ruby-linting |
263
+ | 2.7 | even | 18.x | `r2_7-even-v18` | Upgrade, feat, multi-ruby-linting |
264
+ | 3.0 | odd | 19.x | `r3_0-odd-v19` | LTS, trunk, single-ruby-linting |
265
+ | 3.0 | even | 20.x | `r3_0-even-v20` | Upgrade, feat, multi-ruby-linting |
266
+ | 3.1 | odd | 21.x | `r3_1-odd-v21` | LTS, trunk, single-ruby-linting |
267
+ | 3.1 | even | 22.x | `r3_1-even-v22` | Upgrade, feat, multi-ruby-linting |
268
+ | 3.2 / ruby-head | odd | 23.x | `r3_2-odd-v23` | LTS, trunk, single-ruby-linting |
269
+ | 3.2 / ruby-head | even | 24.x | `r3_2-even-v24` | Upgrade, feat, multi-ruby-linting |
176
270
 
177
- ### if just Rails (without RSpec)
271
+ > NOTE: For more on how Ruby 1.8 support works, see [above][lts1_8]
178
272
 
179
- ```yaml
180
- inherit_gem:
181
- rubocop-lts: config/rails.yml
182
- ```
273
+ [lts1_8]: https://github.com/rubocop-lts/rubocop-lts#supporting-ruby-18
183
274
 
184
- ### if rubygem with RSpec
275
+ ## ⚡️ Contributing
185
276
 
186
- ```yaml
187
- inherit_gem:
188
- rubocop-lts: config/rubygem_rspec.yml
189
- ```
277
+ See [CONTRIBUTING.md][contributing]
190
278
 
191
- ### if just rubygem (without RSpec)
279
+ ## 🌈 Contributors
192
280
 
193
- ```yaml
194
- inherit_gem:
195
- rubocop-lts: config/rubygem.yml
196
- ```
281
+ [![Contributors](https://contrib.rocks/image?repo=rubocop-lts/rubocop-lts)]("https://github.com/rubocop-lts/rubocop-lts/graphs/contributors")
197
282
 
198
- ### Load Rake Tasks
283
+ Made with [contributors-img](https://contrib.rocks).
199
284
 
200
- NOTE: On Rails it is **automatic**, via Railtie, so you can skip this.
285
+ ## 📄 License
201
286
 
202
- In a non-Rails environment add the following to your `Rakefile`:
203
- ```ruby
204
- require "rubocop/lts"
205
- Rubocop::Lts.install_tasks
206
- ```
287
+ The gem is available as open source under the terms of
288
+ the [MIT License][license] [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)][license-ref].
289
+ See [LICENSE][license] for the official [Copyright Notice][copyright-notice-explainer].
290
+
291
+ * Copyright (c) 2022 [Peter H. Boling][peterboling] of [Rails Bling][railsbling]
207
292
 
208
- This will load the `rubocop_gradual` rake task, and alias it as `rubocop`.
293
+ [copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
209
294
 
210
- ### Dependabot Noise Reduction
295
+ ## 🤝 Code of Conduct
211
296
 
212
- Add the following to `.github/dependabot.yml` if you use Github Actions.
297
+ Everyone interacting in the Rubocop::Ruby19 project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/rubocop-lts/rubocop-lts/blob/main/CODE_OF_CONDUCT.md).
213
298
 
214
- ```yaml
215
- ignore:
216
- - dependency-name: "rubocop-lts"
299
+ ## 📌 Versioning
300
+
301
+ This library aims to adhere to [Semantic Versioning 2.0.0][semver]. Violations of this scheme should be reported as
302
+ bugs. Specifically, if a minor or patch version is released that breaks backward compatibility, a new version should be
303
+ immediately released that restores compatibility. Breaking changes to the public API will only be introduced with new
304
+ major versions.
305
+
306
+ As a result of this policy, you can (and should) specify a dependency on this gem using
307
+ the [Pessimistic Version Constraint][pvc] with two digits of precision.
308
+
309
+ For example:
310
+
311
+ <!-- FIND VERSION -->
312
+ ```ruby
313
+ spec.add_dependency "rubocop-lts", "~> 1.0"
217
314
  ```
218
315
 
316
+
219
317
  <!-- columnar badge #s for Project Health table:
220
318
  ⛳️
221
319
  🖇
@@ -236,6 +334,8 @@ Add the following to `.github/dependabot.yml` if you use Github Actions.
236
334
  [🚎lts-cwfi]: https://github.com/rubocop-lts/rubocop-lts/actions/workflows/current.yml/badge.svg
237
335
  [🖐lts-hwf]: https://github.com/rubocop-lts/rubocop-lts/actions/workflows/heads.yml
238
336
  [🖐lts-hwfi]: https://github.com/rubocop-lts/rubocop-lts/actions/workflows/heads.yml/badge.svg
337
+ [🧮lts-lwf]: https://github.com/rubocop-lts/rubocop-lts/actions/workflows/legacy.yml
338
+ [🧮lts-lwfi]: https://github.com/rubocop-lts/rubocop-lts/actions/workflows/legacy.yml/badge.svg
239
339
  [📗lts-io]: https://github.com/rubocop-lts/rubocop-lts/issues
240
340
  [📗lts-ioi]: https://img.shields.io/github/issues-raw/rubocop-lts/rubocop-lts
241
341
  [🚀lts-ic]: https://github.com/rubocop-lts/rubocop-lts/issues?q=is%3Aissue+is%3Aclosed
@@ -246,23 +346,6 @@ Add the following to `.github/dependabot.yml` if you use Github Actions.
246
346
  [👽lts-pci]: https://img.shields.io/github/issues-pr-closed/rubocop-lts/rubocop-lts
247
347
  [⛳️lts-g]: https://rubygems.org/gems/rubocop-lts
248
348
  [⛳️lts-gh]: https://github.com/rubocop-lts/rubocop-lts
249
- [⛳️18-vi]: http://img.shields.io/gem/v/rubocop-ruby1_8.svg
250
- [🖇️18-dti]: https://img.shields.io/gem/dt/rubocop-ruby1_8.svg
251
- [🏘️18-rti]: https://img.shields.io/gem/rt/rubocop-ruby1_8.svg
252
- [🚎18-cwf]: https://github.com/rubocop-lts/rubocop-ruby1_8/actions/workflows/current.yml
253
- [🚎18-cwfi]: https://github.com/rubocop-lts/rubocop-ruby1_8/actions/workflows/current.yml/badge.svg
254
- [🖐18-hwf]: https://github.com/rubocop-lts/rubocop-ruby1_8/actions/workflows/heads.yml
255
- [🖐18-hwfi]: https://github.com/rubocop-lts/rubocop-ruby1_8/actions/workflows/heads.yml/badge.svg
256
- [📗18-io]: https://github.com/rubocop-lts/rubocop-ruby1_8/issues
257
- [📗18-ioi]: https://img.shields.io/github/issues-raw/rubocop-lts/rubocop-ruby1_8
258
- [🚀18-ic]: https://github.com/rubocop-lts/rubocop-ruby1_8/issues?q=is%3Aissue+is%3Aclosed
259
- [🚀18-ici]: https://img.shields.io/github/issues-closed-raw/rubocop-lts/rubocop-ruby1_8
260
- [💄18-po]: https://github.com/rubocop-lts/rubocop-ruby1_8/pulls
261
- [💄18-poi]: https://img.shields.io/github/issues-pr/rubocop-lts/rubocop-ruby1_8
262
- [👽18-pc]: https://github.com/rubocop-lts/rubocop-ruby1_8/pulls?q=is%3Apr+is%3Aclosed
263
- [👽18-pci]: https://img.shields.io/github/issues-pr-closed/rubocop-lts/rubocop-ruby1_8
264
- [⛳️18-g]: https://rubygems.org/gems/rubocop-ruby1_8
265
- [⛳️18-gh]: https://github.com/rubocop-lts/rubocop-ruby1_8
266
349
  [⛳️19-vi]: http://img.shields.io/gem/v/rubocop-ruby1_9.svg
267
350
  [🖇️19-dti]: https://img.shields.io/gem/dt/rubocop-ruby1_9.svg
268
351
  [🏘️19-rti]: https://img.shields.io/gem/rt/rubocop-ruby1_9.svg
@@ -270,6 +353,8 @@ Add the following to `.github/dependabot.yml` if you use Github Actions.
270
353
  [🚎19-cwfi]: https://github.com/rubocop-lts/rubocop-ruby1_9/actions/workflows/current.yml/badge.svg
271
354
  [🖐19-hwf]: https://github.com/rubocop-lts/rubocop-ruby1_9/actions/workflows/heads.yml
272
355
  [🖐19-hwfi]: https://github.com/rubocop-lts/rubocop-ruby1_9/actions/workflows/heads.yml/badge.svg
356
+ [🧮19-lwf]: https://github.com/rubocop-lts/rubocop-ruby1_9/actions/workflows/legacy.yml
357
+ [🧮19-lwfi]: https://github.com/rubocop-lts/rubocop-ruby1_9/actions/workflows/legacy.yml/badge.svg
273
358
  [📗19-io]: https://github.com/rubocop-lts/rubocop-ruby1_9/issues
274
359
  [📗19-ioi]: https://img.shields.io/github/issues-raw/rubocop-lts/rubocop-ruby1_9
275
360
  [🚀19-ic]: https://github.com/rubocop-lts/rubocop-ruby1_9/issues?q=is%3Aissue+is%3Aclosed
@@ -287,6 +372,8 @@ Add the following to `.github/dependabot.yml` if you use Github Actions.
287
372
  [🚎20-cwfi]: https://github.com/rubocop-lts/rubocop-ruby2_0/actions/workflows/current.yml/badge.svg
288
373
  [🖐20-hwf]: https://github.com/rubocop-lts/rubocop-ruby2_0/actions/workflows/heads.yml
289
374
  [🖐20-hwfi]: https://github.com/rubocop-lts/rubocop-ruby2_0/actions/workflows/heads.yml/badge.svg
375
+ [🧮20-lwf]: https://github.com/rubocop-lts/rubocop-ruby2_0/actions/workflows/legacy.yml
376
+ [🧮20-lwfi]: https://github.com/rubocop-lts/rubocop-ruby2_0/actions/workflows/legacy.yml/badge.svg
290
377
  [📗20-io]: https://github.com/rubocop-lts/rubocop-ruby2_0/issues
291
378
  [📗20-ioi]: https://img.shields.io/github/issues-raw/rubocop-lts/rubocop-ruby2_0
292
379
  [🚀20-ic]: https://github.com/rubocop-lts/rubocop-ruby2_0/issues?q=is%3Aissue+is%3Aclosed
@@ -304,6 +391,8 @@ Add the following to `.github/dependabot.yml` if you use Github Actions.
304
391
  [🚎21-cwfi]: https://github.com/rubocop-lts/rubocop-ruby2_1/actions/workflows/current.yml/badge.svg
305
392
  [🖐21-hwf]: https://github.com/rubocop-lts/rubocop-ruby2_1/actions/workflows/heads.yml
306
393
  [🖐21-hwfi]: https://github.com/rubocop-lts/rubocop-ruby2_1/actions/workflows/heads.yml/badge.svg
394
+ [🧮21-lwf]: https://github.com/rubocop-lts/rubocop-ruby2_1/actions/workflows/legacy.yml
395
+ [🧮21-lwfi]: https://github.com/rubocop-lts/rubocop-ruby2_1/actions/workflows/legacy.yml/badge.svg
307
396
  [📗21-io]: https://github.com/rubocop-lts/rubocop-ruby2_1/issues
308
397
  [📗21-ioi]: https://img.shields.io/github/issues-raw/rubocop-lts/rubocop-ruby2_1
309
398
  [🚀21-ic]: https://github.com/rubocop-lts/rubocop-ruby2_1/issues?q=is%3Aissue+is%3Aclosed
@@ -321,6 +410,8 @@ Add the following to `.github/dependabot.yml` if you use Github Actions.
321
410
  [🚎22-cwfi]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/current.yml/badge.svg
322
411
  [🖐22-hwf]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/heads.yml
323
412
  [🖐22-hwfi]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/heads.yml/badge.svg
413
+ [🧮22-lwf]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/legacy.yml
414
+ [🧮22-lwfi]: https://github.com/rubocop-lts/rubocop-ruby2_2/actions/workflows/legacy.yml/badge.svg
324
415
  [📗22-io]: https://github.com/rubocop-lts/rubocop-ruby2_2/issues
325
416
  [📗22-ioi]: https://img.shields.io/github/issues-raw/rubocop-lts/rubocop-ruby2_2
326
417
  [🚀22-ic]: https://github.com/rubocop-lts/rubocop-ruby2_2/issues?q=is%3Aissue+is%3Aclosed
@@ -338,6 +429,8 @@ Add the following to `.github/dependabot.yml` if you use Github Actions.
338
429
  [🚎23-cwfi]: https://github.com/rubocop-lts/rubocop-ruby2_3/actions/workflows/current.yml/badge.svg
339
430
  [🖐23-hwf]: https://github.com/rubocop-lts/rubocop-ruby2_3/actions/workflows/heads.yml
340
431
  [🖐23-hwfi]: https://github.com/rubocop-lts/rubocop-ruby2_3/actions/workflows/heads.yml/badge.svg
432
+ [🧮23-lwf]: https://github.com/rubocop-lts/rubocop-ruby2_3/actions/workflows/legacy.yml
433
+ [🧮23-lwfi]: https://github.com/rubocop-lts/rubocop-ruby2_3/actions/workflows/legacy.yml/badge.svg
341
434
  [📗23-io]: https://github.com/rubocop-lts/rubocop-ruby2_3/issues
342
435
  [📗23-ioi]: https://img.shields.io/github/issues-raw/rubocop-lts/rubocop-ruby2_3
343
436
  [🚀23-ic]: https://github.com/rubocop-lts/rubocop-ruby2_3/issues?q=is%3Aissue+is%3Aclosed
@@ -355,6 +448,8 @@ Add the following to `.github/dependabot.yml` if you use Github Actions.
355
448
  [🚎24-cwfi]: https://github.com/rubocop-lts/rubocop-ruby2_4/actions/workflows/current.yml/badge.svg
356
449
  [🖐24-hwf]: https://github.com/rubocop-lts/rubocop-ruby2_4/actions/workflows/heads.yml
357
450
  [🖐24-hwfi]: https://github.com/rubocop-lts/rubocop-ruby2_4/actions/workflows/heads.yml/badge.svg
451
+ [🧮24-lwf]: https://github.com/rubocop-lts/rubocop-ruby2_4/actions/workflows/legacy.yml
452
+ [🧮24-lwfi]: https://github.com/rubocop-lts/rubocop-ruby2_4/actions/workflows/legacy.yml/badge.svg
358
453
  [📗24-io]: https://github.com/rubocop-lts/rubocop-ruby2_4/issues
359
454
  [📗24-ioi]: https://img.shields.io/github/issues-raw/rubocop-lts/rubocop-ruby2_4
360
455
  [🚀24-ic]: https://github.com/rubocop-lts/rubocop-ruby2_4/issues?q=is%3Aissue+is%3Aclosed
@@ -372,6 +467,8 @@ Add the following to `.github/dependabot.yml` if you use Github Actions.
372
467
  [🚎25-cwfi]: https://github.com/rubocop-lts/rubocop-ruby2_5/actions/workflows/current.yml/badge.svg
373
468
  [🖐25-hwf]: https://github.com/rubocop-lts/rubocop-ruby2_5/actions/workflows/heads.yml
374
469
  [🖐25-hwfi]: https://github.com/rubocop-lts/rubocop-ruby2_5/actions/workflows/heads.yml/badge.svg
470
+ [🧮25-lwf]: https://github.com/rubocop-lts/rubocop-ruby2_5/actions/workflows/legacy.yml
471
+ [🧮25-lwfi]: https://github.com/rubocop-lts/rubocop-ruby2_5/actions/workflows/legacy.yml/badge.svg
375
472
  [📗25-io]: https://github.com/rubocop-lts/rubocop-ruby2_5/issues
376
473
  [📗25-ioi]: https://img.shields.io/github/issues-raw/rubocop-lts/rubocop-ruby2_5
377
474
  [🚀25-ic]: https://github.com/rubocop-lts/rubocop-ruby2_5/issues?q=is%3Aissue+is%3Aclosed
@@ -389,6 +486,8 @@ Add the following to `.github/dependabot.yml` if you use Github Actions.
389
486
  [🚎26-cwfi]: https://github.com/rubocop-lts/rubocop-ruby2_6/actions/workflows/current.yml/badge.svg
390
487
  [🖐26-hwf]: https://github.com/rubocop-lts/rubocop-ruby2_6/actions/workflows/heads.yml
391
488
  [🖐26-hwfi]: https://github.com/rubocop-lts/rubocop-ruby2_6/actions/workflows/heads.yml/badge.svg
489
+ [🧮26-lwf]: https://github.com/rubocop-lts/rubocop-ruby2_6/actions/workflows/legacy.yml
490
+ [🧮26-lwfi]: https://github.com/rubocop-lts/rubocop-ruby2_6/actions/workflows/legacy.yml/badge.svg
392
491
  [📗26-io]: https://github.com/rubocop-lts/rubocop-ruby2_6/issues
393
492
  [📗26-ioi]: https://img.shields.io/github/issues-raw/rubocop-lts/rubocop-ruby2_6
394
493
  [🚀26-ic]: https://github.com/rubocop-lts/rubocop-ruby2_6/issues?q=is%3Aissue+is%3Aclosed
@@ -406,6 +505,8 @@ Add the following to `.github/dependabot.yml` if you use Github Actions.
406
505
  [🚎27-cwfi]: https://github.com/rubocop-lts/rubocop-ruby2_7/actions/workflows/current.yml/badge.svg
407
506
  [🖐27-hwf]: https://github.com/rubocop-lts/rubocop-ruby2_7/actions/workflows/heads.yml
408
507
  [🖐27-hwfi]: https://github.com/rubocop-lts/rubocop-ruby2_7/actions/workflows/heads.yml/badge.svg
508
+ [🧮27-lwf]: https://github.com/rubocop-lts/rubocop-ruby2_7/actions/workflows/legacy.yml
509
+ [🧮27-lwfi]: https://github.com/rubocop-lts/rubocop-ruby2_7/actions/workflows/legacy.yml/badge.svg
409
510
  [📗27-io]: https://github.com/rubocop-lts/rubocop-ruby2_7/issues
410
511
  [📗27-ioi]: https://img.shields.io/github/issues-raw/rubocop-lts/rubocop-ruby2_7
411
512
  [🚀27-ic]: https://github.com/rubocop-lts/rubocop-ruby2_7/issues?q=is%3Aissue+is%3Aclosed
@@ -423,6 +524,8 @@ Add the following to `.github/dependabot.yml` if you use Github Actions.
423
524
  [🚎30-cwfi]: https://github.com/rubocop-lts/rubocop-ruby3_0/actions/workflows/current.yml/badge.svg
424
525
  [🖐30-hwf]: https://github.com/rubocop-lts/rubocop-ruby3_0/actions/workflows/heads.yml
425
526
  [🖐30-hwfi]: https://github.com/rubocop-lts/rubocop-ruby3_0/actions/workflows/heads.yml/badge.svg
527
+ [🧮30-lwf]: https://github.com/rubocop-lts/rubocop-ruby3_0/actions/workflows/legacy.yml
528
+ [🧮30-lwfi]: https://github.com/rubocop-lts/rubocop-ruby3_0/actions/workflows/legacy.yml/badge.svg
426
529
  [📗30-io]: https://github.com/rubocop-lts/rubocop-ruby3_0/issues
427
530
  [📗30-ioi]: https://img.shields.io/github/issues-raw/rubocop-lts/rubocop-ruby3_0
428
531
  [🚀30-ic]: https://github.com/rubocop-lts/rubocop-ruby3_0/issues?q=is%3Aissue+is%3Aclosed
@@ -440,6 +543,8 @@ Add the following to `.github/dependabot.yml` if you use Github Actions.
440
543
  [🚎31-cwfi]: https://github.com/rubocop-lts/rubocop-ruby3_1/actions/workflows/current.yml/badge.svg
441
544
  [🖐31-hwf]: https://github.com/rubocop-lts/rubocop-ruby3_1/actions/workflows/heads.yml
442
545
  [🖐31-hwfi]: https://github.com/rubocop-lts/rubocop-ruby3_1/actions/workflows/heads.yml/badge.svg
546
+ [🧮31-lwf]: https://github.com/rubocop-lts/rubocop-ruby3_1/actions/workflows/legacy.yml
547
+ [🧮31-lwfi]: https://github.com/rubocop-lts/rubocop-ruby3_1/actions/workflows/legacy.yml/badge.svg
443
548
  [📗31-io]: https://github.com/rubocop-lts/rubocop-ruby3_1/issues
444
549
  [📗31-ioi]: https://img.shields.io/github/issues-raw/rubocop-lts/rubocop-ruby3_1
445
550
  [🚀31-ic]: https://github.com/rubocop-lts/rubocop-ruby3_1/issues?q=is%3Aissue+is%3Aclosed
@@ -457,6 +562,8 @@ Add the following to `.github/dependabot.yml` if you use Github Actions.
457
562
  [🚎32-cwfi]: https://github.com/rubocop-lts/rubocop-ruby3_2/actions/workflows/current.yml/badge.svg
458
563
  [🖐32-hwf]: https://github.com/rubocop-lts/rubocop-ruby3_2/actions/workflows/heads.yml
459
564
  [🖐32-hwfi]: https://github.com/rubocop-lts/rubocop-ruby3_2/actions/workflows/heads.yml/badge.svg
565
+ [🧮32-lwf]: https://github.com/rubocop-lts/rubocop-ruby3_2/actions/workflows/legacy.yml
566
+ [🧮32-lwfi]: https://github.com/rubocop-lts/rubocop-ruby3_2/actions/workflows/legacy.yml/badge.svg
460
567
  [📗32-io]: https://github.com/rubocop-lts/rubocop-ruby3_2/issues
461
568
  [📗32-ioi]: https://img.shields.io/github/issues-raw/rubocop-lts/rubocop-ruby3_2
462
569
  [🚀32-ic]: https://github.com/rubocop-lts/rubocop-ruby3_2/issues?q=is%3Aissue+is%3Aclosed
@@ -468,33 +575,60 @@ Add the following to `.github/dependabot.yml` if you use Github Actions.
468
575
  [⛳️32-g]: https://rubygems.org/gems/rubocop-ruby3_2
469
576
  [⛳️32-gh]: https://github.com/rubocop-lts/rubocop-ruby3_2
470
577
 
471
- [aboutme]: https://about.me/peter.boling
472
- [actions]: https://github.com/rubocop-lts/rubocop-lts/actions
473
- [angelme]: https://angel.co/peter-boling
474
- [blogpage]: http://www.railsbling.com/tags/rubocop-lts/
475
- [codecov_coverage]: https://codecov.io/gh/rubocop-lts/rubocop-lts
476
- [code_triage]: https://www.codetriage.com/rubocop-lts/rubocop-lts
477
- [chat]: https://gitter.im/rubocop-lts/rubocop-lts?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
478
- [climate_coverage]: https://codeclimate.com/github/rubocop-lts/rubocop-lts/test_coverage
479
- [climate_maintainability]: https://codeclimate.com/github/rubocop-lts/rubocop-lts/maintainability
480
578
  [copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
481
- [conduct]: https://gitlab.com/rubocop-lts/rubocop-lts/-/blob/main/CODE_OF_CONDUCT.md
482
- [contributing]: https://gitlab.com/rubocop-lts/rubocop-lts/-/blob/main/CONTRIBUTING.md
483
- [devto]: https://dev.to/galtzo
484
- [documentation]: https://rubydoc.info/github/rubocop-lts/rubocop-lts/main
485
- [followme]: https://img.shields.io/twitter/follow/galtzo.svg?style=social&label=Follow
579
+
486
580
  [gh_discussions]: https://github.com/rubocop-lts/rubocop-lts/discussions
487
- [gh_sponsors]: https://github.com/sponsors/pboling
488
- [issues]: https://github.com/rubocop-lts/rubocop-lts/issues
489
- [liberapay_donate]: https://liberapay.com/pboling/donate
490
- [license]: LICENSE.txt
581
+
582
+ [conduct]: https://github.com/rubocop-lts/rubocop-lts/blob/main/CODE_OF_CONDUCT.md
583
+
584
+ [contributing]: https://github.com/rubocop-lts/rubocop-lts/blob/main/CONTRIBUTING.md
585
+
586
+ [security]: https://github.com/rubocop-lts/rubocop-lts/blob/main/SECURITY.md
587
+
588
+ [license]: https://github.com/rubocop-lts/rubocop-lts/blob/main/LICENSE.txt
589
+
491
590
  [license-ref]: https://opensource.org/licenses/MIT
492
- [license-img]: https://img.shields.io/badge/License-MIT-green.svg
493
- [peterboling]: http://www.peterboling.com
591
+
592
+ [semver]: http://semver.org/
593
+
494
594
  [pvc]: http://guides.rubygems.org/patterns/#pessimistic-version-constraint
595
+
495
596
  [railsbling]: http://www.railsbling.com
496
- [rubygems]: https://rubygems.org/gems/rubocop-lts
497
- [security]: https://github.com/rubocop-lts/rubocop-lts/blob/main/SECURITY.md
498
- [semver]: http://semver.org/
499
- [source]: https://github.com/rubocop-lts/rubocop-lts/
597
+
598
+ [peterboling]: http://www.peterboling.com
599
+
600
+ [aboutme]: https://about.me/peter.boling
601
+
602
+ [angelme]: https://angel.co/peter-boling
603
+
604
+ [coderme]:http://coderwall.com/pboling
605
+
606
+ [followme-img]: https://img.shields.io/twitter/follow/galtzo.svg?style=social&label=Follow
607
+
500
608
  [tweetme]: http://twitter.com/galtzo
609
+
610
+ [politicme]: https://nationalprogressiveparty.org
611
+
612
+ [documentation]: https://rubydoc.info/github/rubocop-lts/rubocop-lts/main
613
+
614
+ [source]: https://github.com/rubocop-lts/rubocop-lts/
615
+
616
+ [actions]: https://github.com/rubocop-lts/rubocop-lts/actions
617
+
618
+ [issues]: https://github.com/rubocop-lts/rubocop-lts/issues
619
+
620
+ [climate_maintainability]: https://codeclimate.com/github/rubocop-lts/rubocop-lts/maintainability
621
+
622
+ [code_triage]: https://www.codetriage.com/rubocop-lts/rubocop-lts
623
+
624
+ [blogpage]: http://www.railsbling.com/tags/rubocop-lts/
625
+
626
+ [rubygems]: https://rubygems.org/gems/rubocop-lts
627
+
628
+ [chat]: https://gitter.im/rubocop-lts/rubocop-lts?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
629
+
630
+ [maintenancee_policy]: https://guides.rubyonrails.org/maintenance_policy.html#security-issues
631
+
632
+ [liberapay_donate]: https://liberapay.com/pboling/donate
633
+
634
+ [gh_sponsors]: https://github.com/sponsors/pboling