<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.3.2">Jekyll</generator><link href="https://rubocop-lts.gitlab.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://rubocop-lts.gitlab.io/" rel="alternate" type="text/html" /><updated>2024-03-15T01:36:38+00:00</updated><id>https://rubocop-lts.gitlab.io/feed.xml</id><title type="html">Rubocop LTS - Stable Rules for Rubies</title><subtitle>Rules for Rubies: Rubocop + Standard + Betterlint + Shopify + Gradual, tailored for your specific version of Ruby.</subtitle><entry><title type="html">Rules for Rubies: Rubocop + Standard + Betterlint + Shopify + Gradual</title><link href="https://rubocop-lts.gitlab.io/migration/2023/05/19/a-new-hope.html" rel="alternate" type="text/html" title="Rules for Rubies: Rubocop + Standard + Betterlint + Shopify + Gradual" /><published>2023-05-19T07:19:57+00:00</published><updated>2023-05-19T07:19:57+00:00</updated><id>https://rubocop-lts.gitlab.io/migration/2023/05/19/a-new-hope</id><content type="html" xml:base="https://rubocop-lts.gitlab.io/migration/2023/05/19/a-new-hope.html"><![CDATA[<p><img height="400px" src="/assets/img/rubocop-stairs.jpeg" alt="Stairs at a Beach" /></p>

<p>Hi ruby style lovers. I am Peter Boling, author and maintainer of the <code class="language-plaintext highlighter-rouge">rubocop-lts</code> family of ruby gems.
The migration from <a href="https://github.com/rubocop-lts">GitHub</a> to <a href="https://gitlab.com/rubocop-lts">GitLab</a> is almost complete,
but for the moment the project will continue to straddle both hosts.
The blog will live here, where you are reading it, on GitLab.</p>

<h1 id="new-powers">New Powers</h1>

<p>The rubocop-lts gem family has gained three new members, and a host of new powers.</p>

<h2 id="standard-ruby">Standard Ruby</h2>

<p>One major driver was my recent (re)discovery of <a href="https://github.com/standardrb/standard"><code class="language-plaintext highlighter-rouge">standard</code></a>,
and the recent improvements made to the standard ecosystem.</p>

<h2 id="rubocop-gradual">RuboCop Gradual</h2>

<p>Another major driver was my recent discovery of <a href="https://github.com/skryukov/rubocop-gradual"><code class="language-plaintext highlighter-rouge">rubocop-gradual</code></a>,
which is the best thing to happen to RuboCop since… standard?
It fixes the broken, but useful paradigm of <code class="language-plaintext highlighter-rouge">rubocop_todo.yml</code>
with a solution that is statistically exactly 1920x better.
Read more about that here from <a href="https://dev.to/evilmartians/rubocoping-with-legacy-gme">Evil Martians</a>.</p>

<p>With that awareness in mind the tradeoffs were simply too great to continue on the current path for rubocop-lts.</p>

<h2 id="dropping-eold-rubies-while-still-supportingg-eold-rubies">Dropping EOL’d Rubies, while still supportingg EOL’d Rubies</h2>

<p>Thus I decided to drop the EOL’d Ruby <strong>runtime</strong> support across the entire suite, and at the same time,
pick up first class Ruby 1.8 <strong>analysis</strong> support  (well, OK, second class,
but far better than anything we’ve ever had to date).  Note the difference between <em>runtime</em> and <em>analysis</em>.</p>

<h2 id="standard-again">Standard, again</h2>

<p>I merged the rules I had derived for Ruby 1.8 support when applying rubocop-lts to my own gems that continue
to support Ruby 1.8 (I have many of those) with the rules that Standard Ruby had discovered,
resulting in the best set of Ruby 1.8 rules this side of
the <a href="https://en.wikipedia.org/wiki/Clan_Lord">Lok’Groton Islands</a>.</p>

<h2 id="a-new-one-liner-config">A New (one liner!) Config</h2>

<p>The process of integrating my growing list of fav linters was becoming too much to apply to any project,
and I have <em>many</em> projects, so I needed a tool that did 97% of it for me.
Hence, <a href="https://gitlab.com/rubocop-lts/standard-rubocop-lts"><code class="language-plaintext highlighter-rouge">standard-rubocop-lts</code></a> was born.
It provides single line RuboCop configuration,
following the pattern of “rubocoping” with legacy code in
the [Evil Martian’s article]https://dev.to/evilmartians/rubocoping-with-legacy-gme mentioned above,
for many linting tools, and it provides discrete contexts for most combos you’ll be interested in.</p>

<p>There’s a <a href="/CONV_OVER_CONF#Options">new single liner</a> for each of the following types of Ruby you might be into:</p>
<ul>
  <li>Rails Apps,</li>
  <li>Rails Apps that test with RSpec,</li>
  <li>RubyGems,</li>
  <li>RubyGems that test with RSpec,</li>
  <li>Ruby libraries (i.e. non-Rails/non-Gems), and</li>
  <li>Ruby libraries that test with RSpec.</li>
</ul>

<p>New gems added to the family:</p>

<ol>
  <li><a href="https://gitlab.com/rubocop-lts/rubocop-ruby1_8">rubocop-ruby1_8</a></li>
  <li><a href="https://gitlab.com/rubocop-lts/rubocop-ruby3_2">rubocop-ruby3_2</a></li>
  <li><a href="https://gitlab.com/rubocop-lts/standard-rubocop-lts">standard-rubocop-lts</a></li>
</ol>

<h2 id="even-more-standard-linting">Even more Standard Linting</h2>

<p>Thanks to the new gem <code class="language-plaintext highlighter-rouge">standard-rubocop-lts</code> the Rubocop::Lts family now automatically configures many linting tools for you.</p>]]></content><author><name></name></author><category term="migration" /><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">Please excuse my dust!</title><link href="https://rubocop-lts.gitlab.io/migration/2022/12/07/please-excuse-dust.html" rel="alternate" type="text/html" title="Please excuse my dust!" /><published>2022-12-07T07:40:57+00:00</published><updated>2022-12-07T07:40:57+00:00</updated><id>https://rubocop-lts.gitlab.io/migration/2022/12/07/please-excuse-dust</id><content type="html" xml:base="https://rubocop-lts.gitlab.io/migration/2022/12/07/please-excuse-dust.html"><![CDATA[<p><img height="400px" src="/assets/img/rubocop-stairs.jpeg" alt="Stairs at a Beach" /></p>

<p>Hi ruby style lovers. I am Peter Boling, author and maintainer of the <code class="language-plaintext highlighter-rouge">rubocop-lts</code> family of ruby gems.
The whole family is in the midst of a major move from <a href="https://github.com/rubocop-lts">GitHub</a> to <a href="https://gitlab.com/rubocop-lts">GitLab</a>.
Please excuse my temporary dust and broken links.
I am also working on a gem that will have a suite of tools to assist
projects with the laborious and error-prone migration process.  I’ll link to it once published,
but I am already using it with the migrations done thus far.  Yummy dog food.</p>]]></content><author><name></name></author><category term="migration" /><summary type="html"><![CDATA[]]></summary></entry></feed>