Code Climate Test ReporterとSimpleCov 0.18で起きるエラーを回避する

昨日あたりから RuboCop の master で CI が落ちていて、見てみたら Code Climate の cc-test-reporter でエラーが起きていることが原因だった。 $ #!/bin/bash -eo pipefail ./tmp/cc-test-reporter before-build COVERAGE=true bundle exec rake spec ./tm…

キーワード引数の分離への対応にRuby 2.8.0-devを使う

先日のパッチ会で kamipo さんにもらったアドバイスを書き残しておく。 TL;DR としては表題そのまま。キーワード引数の分離への対応にRuby 2.8.0-devを使うというもの。 2.8.0-devを使えばイージーモードだけど2.7.0縛りプレイだと常人にはクリア不能のむず…

Ginza.rb 第79回

Ginza.rb 第79回 Rails6の新しい定数自動読み込みZeitwerkのコードを読もう!に参加した。会場はメドピアさん。 ginzarb.doorkeeper.jp 表題のとおり今回は Zeitwerk がテーマ。余談だが自分は発音できないのでカタカナ読みでツァイトヴェルクと読んでいたが…

Gem 開発における gemspec と Gemfile への開発 Gem の指定について

昨日の Asakusa.rb 第547回で、hsbt さんに聞いて amatsuda さんたちを交えて話していた表題について書き残しておく。先に記しておくと決定的な結論はない。 Gem を開発する際に、開発時のみに使う Gem を指定する先として gemspec を使った spec.add_develo…

Asakusa.rb 第547回

Asakusa.rb 第547回だった。 ちょうど RubyKaigi 2020 のプロポーザルの提出期限日に Asakusa.rb というタイミングだったので、yahonda さんや joker1007 さんにフィードバックをもらいつつ、締め切り3時間ちょっと前くらいに提出していた。提出が終わったら…

Ruby 2.7.0 で導入された Arguments Forwarding

Ruby 2.7.0 で導入された Arguments Forwarding について、RuboCop でスタイル部署の新たな Cop として開発中なので、Cop 開発の過程で得ている知見やらを進捗を記しておきます。 Arguments Forwarding とは def foo(...) といった形で引数への構文拡張がさ…

RailsアプリケーションのRuby 3.0への展望

パッチ会や地域 Ruby コミュニティなどで集めた知見を元に、勤務先の永和システムマネジメントなんかで度々話している表題についてテキスト化しておく。 TL;DR Ruby 2.8.0 の開発が始まっているが、それは 2020 年のどこかで Ruby 3.0 になるらしい Ruby 3.0…

RuboCop 0.79.0 リリース解説

RuboCop 0.79.0 がリリースされたので、概要をざっくり記しておきます。 github.com 今回は RoboCop 1.0 に向けた新たな Enable オプションへの新たな値 pending が導入されたのと、Ruby 2.7 の初期サポートが含まれたリリースです。 ちなみにレビュー以外で…

AirPods Pro が届いた

今月のパッチ会のときに yahonda さんから AirPods Pro の体験が良いと聞いたので注文していた AirPods Pro が届いた。 Apple AirPods Pro発売日: 2019/10/30メディア: エレクトロニクス 実際のところアクティブノイズキャンセリングの効果が素晴らしくて、…

Ruby 2.7 リリースパーティー

Ruby 2.7 リリースパーティーに行った。会場は Speee さん。 松田さんの MC で Ruby コミッターによる Ruby 2.7 制作秘話から始まり、そのままパーティーへという流れだった。 個人的には Ruby 3 に向けた型について、ruby/ruby-signature で集められている…

RuboCop Performance 1.5.2, RuboCop Rails 2.4.1, RuboCop Minitest 0.5.1 をリリースした

RuboCop Performance 1.5.2, RuboCop Rails 2.4.1, RuboCop Minitest 0.5.1 をまとめてリリースした。 github.com github.com github.com これらの master ブランチにあるバグフィックスについて、年またぎで溜めていてもなのでクリスマスということでリリー…

RubyGems 3.1のローカル非推奨警告を消す

RubyGems 3.1 がリリースされたのでローカル環境の RubyGems をアップデートした。 % gem update --system % gem -v 3.1.2 アップデート後、gem i <gemname> や gem の差分を見る gemdiff などを使った時に以下のような警告の川が流れるようになった。 実際 Gem::Spec</gemname>…

RuboCop 0.78.0 リリース解説

RuboCop 0.78.0 がリリースされたので、概要をざっくり記しておきます。 github.com 今回は新たな cop の追加と LineLength cop の部署変更が行われたリリースです。 LineLength cop の部署変更については自分が入れた Breaking Change で、LineLength の警…

平成Ruby会議01

平成Ruby会議01でクロージングキーノートでの登壇をした。当日のスライドは以下。 RuboCop Faker 周辺の話は RubyKaigi 2020 の LT 向けにプロポーザルを出そうかなと思っていた種で、今回キーノート枠を頂いていたことで自分が影響されたものを引用しようと…

Ginza.rb 第78回

Ginza.rb 第78回だった。会場はメドピアさん。 何が一番の収穫だったかというと Ruby 2.7 に含まれる Numbered parameters について、名前重要なはずなのに引数順序の数字で表現されるのがうーんと思っていたところ「Ruby は Web アプリケーションを書く言語…

Rails/OSSパッチ会 2019年11月

Rails/OSSパッチ会 2019年11月を開催した。 いくつか行なっていたことがあり、まずは RuboCop Rails にマイグレーションで decimal 型を指定する際に precision と scale を必須にしないと警告を出す提案が来ていて、Active Record メンテナーの kamipo さん…

RuboCop 0.77.0 リリース解説

RuboCop 0.77.0 がリリースされたので、概要をざっくり記しておきます。 今回は cop 名やオプション名などで、以下の理由から多くの名称変更が加えられたリリースです。 例えば Unneeded と Redundant など cop 名に対してバラバラに使われていた用語を Redu…

RuboCop Rails 2.4.0 リリース解説

RuboCop 2.4 系の最初のリリースとなる 2.4.0 をリリースしたので、概要をざっくり記しておきます。 github.com Rails 部署に新たに追加された cop は以下の4つ。 Rails/ApplicationController cop Rails/ApplicationRecord の Controller 版。 # bad class …

Asakusa.rb 第541回

YARD の以下の PR で言及されていた irb モジュールへの言及について糸柳メンバーに相談しに行っていた。 github.com 少し詳細に入ると、YARD は slex という irb の内部 API に依存した作りになっていて、slex が消えたことについて YARD が困っている話を…

GitHub Sponsors に承認された

GitHub Sponsors に承認された。Rails/OSS パッチ会の懇親会で、OSS メンテナーのみんな GitHub Sponsors に登録していこうみたいな話をしていたのが最終的なきっかけ。 github.com GitHub Sponsors への登録については GitHub での2段階の承認があった。 1…

RuboCop Performance 1.5.1 をリリースした

RuboCop Performance 1.5.1 をリリースした。 ユーザー影響のある形で適用しているのは以下の PR で、Performance/StartWith cop と Performance/EndWith cop の偽陰性を解決したもの。 github.com サッとアップデートすると、これまで当該 cop で見つかって…

富山Ruby会議01で講演した

主催者のひとりで同僚の kunitoo からのオファーで、富山Ruby会議01で講演した。 イベント自体は富山という地域性のある話からテックトークまで幅広く扱われていて、地域Ruby会議感があって面白かった。 自分の当日のスライドは以下。 話す内容としては conf…

Asakusa.rb 第537回

Asakusa.rb 第537回に行った。 ちょうど一昨日あたりに rbenv uninstall 2.7.0-dev からの rbenv install 2.7.0-dev を行なったところ、手元の環境で以下のようなエラーが発生していた。 % rbenv install 2.7.0-dev ruby-build: using openssl from homebrew…

年内の講演予定

年内の講演予定です。 富山Ruby会議01 こちらは今週末の 11月3日(日) に開催される富山Ruby会議01での登壇です。 toyamarb.github.io 本編、懇親会ともに残席があるようですので、よければ富山で会いましょう。 平成Ruby会議01 こちらは 12月14日(土) に開催…

Parser gem のリリース権とコミット権をもらった

Ruby 2.7 での kwargs 警告が起因して RuboCop の Ruby 2.7 マトリックスが落ちていて、それを直そうとすると Parser gem の修正とリリースが必要だったので、そのあたりのイシューを立てていた。 github.com 結果として Parser gem チームが動けない時に、R…

Asakusa.rb 第 531 回

勤務先が会場だったので参加できる時間でサッと参加していた。 サッとRuboCop とその周辺イシューを見ていた。 github.com rubocop-rails_config のサポートバージョンについて、toshimaru さんからメンションがあったので自分の見解を伝えた。特にメンテナ…

Faker 2.2.2 がリリースされた

Faker 2.2.2 がリリースされた。含まれている自分のパッチは以下。 github.com 先日実装した RuboCop Faker を使った auto-correct で Faker 2 スタイルに移行するためのコマンドをコピペで実施できるようにしている。これは FactoryBot から得たアイデア。 …

RuboCop Faker を作った

以前の日記に書いた Faker 2 での破壊的変更となる positional arguments から keyword arguments への移行をサポートする Gem を作った。 github.com RuboCop の 3rd party gem として作っているので、gem i rubocop-faker などして以下のように使う。 非推…

RuboCop Minitest 0.1.0 をリリースした

最初の cop 実装としてもらっていた PR のレビューが終わったのでマージして、RuboCop Minitest 0.1.0 をリリースした。 rubygems.org 現在導入されている Minitest/AssertNil cop は assert_equal(nil, actual) に対して assert_nil(actual) を使うよう Min…

Faker 2.0の破壊的変更とその緩和施策

TL;DR: Faker 2 系を使うなら Faker 2.2 に bundle update すると破壊的変更が緩和される。 Faker 2.0 で以下の破壊的変更が入っていた。 % cat example.rb Faker::Address.zip_code('NY') % bundle exec ruby example.rb Traceback (most recent call last)…