提案 #1330
closed使用しているライブラリのバージョンを上げる
Description
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
Files
Related issues
Updated by toshi_a 初音 over 5 years ago
- Status changed from 分類待ち to パッチ適用待ち
- Target version set to 3.9
一応、mikutter 3.8にはRuby 2.6の対応は入っていないので(使ってるけど)、影響範囲なども考えて3.9に適用したいと思います。
Updated by Izumi Tsutsui over 5 years ago
念のため(?) diva の issue も立てました(プルリクにしろと怒られる)
https://github.com/toshia/diva/issues/3
Updated by toshi_a 初音 over 5 years ago
そうですね、せっかくなので全てのGemのバージョンを上げたいと思います。対象は3.9からです。
Updated by toshi_a 初音 over 5 years ago
- Status changed from パッチ適用待ち to レビュー待ち
- Assignee set to Izumi Tsutsui
- ブランチ set to 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にするやつも同時に行いました。
ちゃんと動作しているかは今後経過観察をするとして、バージョンの変化に寄ってパッケージするときに厳しいといったことがあれば教えてください。
Updated by toshi_a 初音 over 5 years ago
- Subject changed from addressable gem 2.6.0 対応 to 使用しているライブラリのバージョンを上げる
Updated by Izumi Tsutsui over 5 years ago
- Status changed from レビュー待ち to マージ待ち
バージョン記載更新のパッチ自体は問題ありません。
以下は まとまってないけど将来の参照用に書いておく、というメモ:
パッケージシステムの場合、
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ページも参照。
Updated by Izumi Tsutsui over 5 years ago
https://speakerdeck.com/tsutsui/mikutter-nagoya-2018
の 14〜17ページも参照。
#1145#note-4 に似たようなことを書いてました……(鶏頭)
Updated by Izumi Tsutsui almost 5 years ago
- Copied to 提案 #1400: addressable gem 2.7.0 対応 added