トップ «前の日記(2023/03/27 (月) ) 最新 次の日記(2023/03/29 (水) )» 編集 RSS feed

HsbtDiary


2023/03/28 (火) [長年日記]

rubygems リポジトリの rubocop ルールの統一作業のその後

RubyGems のリポジトリの rubocop ルールの統一化を始めた - HsbtDiary(2023-03-15)からちまちまと続けていた rubocop ルールの整備がだいたい一段落して、残ったものはどうすっかなあ、というものだけになった。

残ったルールと懸念事項は以下のような状態。

  • Naming/ConstantName, Naming/MethodName
    • 割とどうでもいい変更、しかし名前を変えてしまうと互換性の問題が出てくるのでうーむという状態
  • Naming/VariableName, Naming/VariableNumber
    • どうでもいい系。ぴっと変えればいいのでは。
  • Style/ClassVars
    • これは大変。設計から見直さないとだめじゃんかな。
  • Style/HashSyntax
    • Bundler などが Ruby 1.8 でも動くようにと hash-rocket に enforce されていたが、今となってはどっちにも enforce する必要なくね?という感想
  • Style/FormatString, Style/LineEndConcatenation, Style/NumericLiteralPrefix and Style/RegexpLiteral
    • ピッと変えればいいのでは、と思うが対象がめっちゃ多い
  • Performance/RegexpMatch
    • Gem::Dependency#match? というメソッドが定義されている関係で誤検知しまくって辛い。先に deprecate にするなりしたほうがよさそう。

上は TODO なりに避けた上でルールファイルを一つにしてしまう、って感じで進めてしまおうかな。道のりは遠い。

CVE-2023-28755: ReDoS vulnerability in URI の対応をしていた

URI に細工した URL を入れると CPU を回し続けるいわゆる ReDoS の脆弱性の対応をしていた。

https://www.ruby-lang.org/en/news/2023/03/28/redos-in-uri-cve-2023-28755/

実際にパッチを書いたのは nobu だけど、CVE をアサインしたり、今生きている 4 つの安定バージョンそれぞれに対応したパッチを用意したり、各ブランチでだけ更新されている変更を取り込んだり、細々したことを全部やっていた。

今は仕事なんで、という態度で時間を使えばいいけど、仕事じゃない人がこれをやるのは無理でしょこれというくらいあれこれ考える必要があって相変わらず大変だなあ。なんで大変なの、というのはそのうちテックブログあたりに書きます。