GitHub Packages と Gem の配布先

TL;DR 公開 gem の配布先は従来どおり rubygems.org のみで良いかなといまのところ思っています。 GitHub では GitHub Packages がリリースされて、gem を含めていくつかのパッケージに対してサポートされている。 help.github.com gem に対する GitHub Pack…

RuboCop Faker 1.0 をリリースした

Faker::Base.unique メソッドが使われている際の false negative に対応した RuboCop Faker 1.0 をリリースした。 rubygems.org もともと Faker 1 系から Faker 2 系へのインタフェースマイグレーションをゴールとした Gem で API としては安定していたので…

ruby-build のパッケージ定義ファイルを生成する

Ruby の処理系がリリースされた際に rbenv/ruby-build に PR を開いている定義ファイルを生成するスクリプトを upstream に提案した。既に ruby-build には PR を開いていて統合済み。 github.com 過去の PR と見る人が見れば分かる定義ファイルだが、既に自…

RuboCop の Cop 名をマイグレーションする

RuboCop では Cop が所属する先の部署や Cop 名が変更されることがある。 変更された際に所属先の部署や Cop 名をマイグレーションする仕組みが用意されているものについて紹介する。 Migration/DepartmentName cop 現状の RuboCop では部署名が省略されいて…

RVM のコミット権をもらった

RVM は Travis CI や Active Record Oracle enhanced adapter で使っている Oracle 向け rails-dev-box で使われている流れからパッチを送っていたところコミット権をもらった。以前、パッチを送った時に PR へのアサインがされていたので「おや?」と思った…

『NO HARD WORK!: 無駄ゼロで結果を出すぼくらの働き方』を読んだ

『NO HARD WORK!: 無駄ゼロで結果を出すぼくらの働き方』を数日前に読了した。 NO HARD WORK!: 無駄ゼロで結果を出すぼくらの働き方作者:ジェイソン フリード,デイヴィッド ハイネマイヤー ハンソン,Jason Fried,David Heinemeier Hansson出版社/メーカー: …

RuboCop に JUnit フォーマッタを組み込んだ

JUnit の XML フォーマッタが CircleCI 利用時に有用だけれど gem の方がメンテナンスされていなくて、コアで巻き取ってもらえないかというイシューに対応した。 github.com 次にリリースされる予定の RuboCop 0.80 から --format junit オプション (あるい…

書籍「エクストリームプログラミング」の読みかた

勤務先で話題になっていた書籍『エクストリームプログラミング』について、メンバーに話したことを書き残しておきます。 TL;DR としては、書籍『エクストリームプログラミング』は初版の内容を踏まえた方が第二版を読み進めやすいかもしれないといったもので…

RubyKaigi 2020 へのプロポーザルが通過した

ということで RubyKaigi 2020 に pocke さんと登壇します。去年は LT での登壇だったので、本編登壇は 2018 年以来 2 年ぶり 2 回目です。よろしくお願いします。 rubykaigi.org

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 で見つかって…