AR ホームベーカリー

オイラのアウトプット用ホームベーカリー!

Ruby 2.6 〜 2.7.1 あたりの ProtocRetryError

Gem のメンテナンスに重い腰を上げてるプロジェクトを見てるんだけど、rspec を回していて掲題のエラーに遭遇した。

具体的には bundle exec rspec 実行時の出力に、以下のようになる。

/Users/donbulinux/Workspace/example/vendor/bundle/ruby/2.6.0/gems/net-protocol-0.2.1/lib/net/protocol.rb:68: warning: already initialized constant Net::ProtocRetryError
/Users/donbulinux/.anyenv/envs/rbenv/versions/2.6.3/lib/ruby/2.6.0/net/protocol.rb:66: warning: previous definition of ProtocRetryError was here
/Users/donbulinux/Workspace/example/vendor/bundle/ruby/2.6.0/gems/net-protocol-0.2.1/lib/net/protocol.rb:214: warning: already initialized constant Net::BufferedIO::BUFSIZE
/Users/donbulinux/.anyenv/envs/rbenv/versions/2.6.3/lib/ruby/2.6.0/net/protocol.rb:206: warning: previous definition of BUFSIZE was here
/Users/donbulinux/Workspace/example/vendor/bundle/ruby/2.6.0/gems/net-protocol-0.2.1/lib/net/protocol.rb:541: warning: already initialized constant Net::NetPrivate::Socket
/Users/donbulinux/.anyenv/envs/rbenv/versions/2.6.3/lib/ruby/2.6.0/net/protocol.rb:503: warning: previous definition of Socket was here

で、これどうするかだけど、 Ruby 2.7.2 ?だかどっかで net-http が取り込まれると解消するんだけど、それまでは Gemfile に書いて回避しろ、とのこと。

wakunkyo.com

group :test do

...

  # net-protocol-0.2.1 がエラーを出しまくるので抑制のため一時的に入れる、 Ruby 2.7.1 以降なら解消されているらしい?
  gem 'net-http'
end

これでとりあえずオッケー。 Ruby 自体が EOL なバージョンなので、早いとこ Ruby 3.x に移行せなという感じ。