提案 #1330
完了使用しているライブラリのバージョンを上げる
説明
2019/1/18 という少し前ですが、
addressable の gem の 2.6.0 がリリースされています。
https://github.com/sporkmonger/addressable/blob/addressable-2.6.0/CHANGELOG.md
mikutter および diva の gem だと、 addressable に対して以下の通り 2.6 未満の指定がされています。
gem 'addressable', '>= 2.5.2', '< 2.6'
https://github.com/toshia/diva/blob/v0.3.2/diva.gemspec#L27
spec.add_dependency "addressable", ">= 2.5", "< 2.6"
addressable gem のコミットログを見る限り、
2.5.2 → 2.6.0 へ minor バージョンが上げられたのは
ruby 2.6 サポートと bundle 2.x のサポートという気がします。
過去の minor bump を見ても ruby のバージョン絡みのみっぽいので、
とりあえず <3.0
指定でもいいんじゃないかという気がします。
手元で試したところでは mikutter 3.8.7 + diva 0.3.2 で
addressable 2.6.0 でもTLを眺めるのに支障がないくらいには
動いているようです。
(addressable gem がどこで参照されるのかを把握していない)
……という方針のパッチをとりあえず添付します。
0001-Relax-required-version-of-addressable-gem.patch
ファイル
関連するチケット
toshi_a 初音 さんが5年以上前に更新
- ステータス を 分類待ち から パッチ適用待ち に変更
- 対象バージョン を 3.9 にセット
一応、mikutter 3.8にはRuby 2.6の対応は入っていないので(使ってるけど)、影響範囲なども考えて3.9に適用したいと思います。
Izumi Tsutsui さんが5年以上前に更新
念のため(?) diva の issue も立てました(プルリクにしろと怒られる)
https://github.com/toshia/diva/issues/3
toshi_a 初音 さんが5年以上前に更新
- ステータス を パッチ適用待ち から レビュー待ち に変更
- 担当者 を Izumi Tsutsui にセット
- ブランチ を topic/1330-update-gems にセット
全てのGemに対応することにしたので、頂いたパッチを使わず、Addressableを含む全てのgemのバージョンを問題ない範囲で引き上げました。
また、Delayer、Delayer Deferred、Pluggaloid、Divaも、mikutter 3.9にあわせてリリースしようとしていたものをリリースし、要求するようにしています。
これらのGemがRuby 2.4以上を要求しているため、3.9で実施予定だったRubyの最低動作要件をRuby 2.4にするやつも同時に行いました。
ちゃんと動作しているかは今後経過観察をするとして、バージョンの変化に寄ってパッケージするときに厳しいといったことがあれば教えてください。
Izumi Tsutsui さんが5年以上前に更新
- ステータス を レビュー待ち から マージ待ち に変更
バージョン記載更新のパッチ自体は問題ありません。
以下は まとまってないけど将来の参照用に書いておく、というメモ:
パッケージシステムの場合、
mikutter 自身の Gem バージョン指定が実行時にチェックされることはなくて
単に情報として扱われるだけだと思います。
(pkgsrc ではコミットする人が目視確認しているだけ)
なので、
「特定の Gem のバージョンに依存する機能を使っているかどうか」がわかるかどうか、
つまり、
「新たな Gem依存機能のコミットとバージョン記載のコミットがセット」だとわかりやすい、
というくらいです。バージョンが変わること自体が問題になることはそれほどありません。
実際には、gtk2 のように
「とりあえず(bundler 等で取得する場合を考慮して)バグの少なそうな最新を書く」
という場合も多いので難しいのですが、
実行時チェックはないのでとりあえずあとで考えることは可能。
問題は diva や pluggaloid のような gem の場合です。
gem の場合はバージョン依存が実行時にチェックされるので、
テキトーにやると起動すらしなくなってしまいます。
なので、事前に依存記載をチェックして対応する gem もパッケージシステムで更新しておく
(もしくは gem の依存関係記述をパッケージシステムで持っているバージョンで上書きする)
といった作業が発生します。
addressable は diva gem に絡むので、そちらの作業がやや重い、というくらいです。
https://speakerdeck.com/tsutsui/mikutter-nagoya-2018
の 14〜17ページも参照。
Izumi Tsutsui さんが5年以上前に更新
https://speakerdeck.com/tsutsui/mikutter-nagoya-2018
の 14〜17ページも参照。
#1145#note-4 に似たようなことを書いてました……(鶏頭)