Project

General

Profile

提案 #1330

使用しているライブラリのバージョンを上げる

Added by Izumi Tsutsui 3 months ago. Updated about 1 month ago.

Status:
終了
Priority:
通常
Assignee:
Target version:
プラグイン名:
ブランチ:
topic/1330-update-gems

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 未満の指定がされています。

source:Gemfile@a899bf32#L15

  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

Associated revisions

History

#1

Updated by toshi_a 初音 2 months ago

  • Status changed from 分類待ち to パッチ適用待ち
  • Target version set to 3.9

一応、mikutter 3.8にはRuby 2.6の対応は入っていないので(使ってるけど)、影響範囲なども考えて3.9に適用したいと思います。

#2

Updated by Izumi Tsutsui 2 months ago

念のため(?) diva の issue も立てました(プルリクにしろと怒られる)
https://github.com/toshia/diva/issues/3

#3

Updated by toshi_a 初音 about 2 months ago

そうですね、せっかくなので全てのGemのバージョンを上げたいと思います。対象は3.9からです。

#4

Updated by toshi_a 初音 about 2 months 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にするやつも同時に行いました。

ちゃんと動作しているかは今後経過観察をするとして、バージョンの変化に寄ってパッケージするときに厳しいといったことがあれば教えてください。

#5

Updated by toshi_a 初音 about 2 months ago

  • Subject changed from addressable gem 2.6.0 対応 to 使用しているライブラリのバージョンを上げる
#6

Updated by Izumi Tsutsui about 1 month 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ページも参照。

#7

Updated by Izumi Tsutsui about 1 month ago

https://speakerdeck.com/tsutsui/mikutter-nagoya-2018
の 14〜17ページも参照。

#1145#note-4 に似たようなことを書いてました……(鶏頭)

#8

Updated by toshi_a 初音 about 1 month ago

  • Status changed from マージ待ち to 終了

merged.

Also available in: Atom PDF