環境対応 #1130
完了twitter-textを2.1.0にすると起動しなくなる
0%
説明
bundle updateなどでtwitter-textを2.1.0にアップデートすると、以下のエラーにより起動直後にクラッシュするようです。
/Users/akkie/mikutter/core/mui/gtk_postbox.rb:100:in `block in widget_remain': uninitialized constant Twitter::Extractor (NameError) from /Users/akkie/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/delayer-0.0.2/lib/delayer/procedure.rb:24:in `run' from /Users/akkie/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/delayer-0.0.2/lib/delayer/extend.rb:58:in `run_once' from /Users/akkie/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/delayer-0.0.2/lib/delayer/extend.rb:30:in `run' from /Users/akkie/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/delayer-0.0.2/lib/delayer.rb:43:in `method_missing' from /Users/akkie/mikutter/core/plugin/gtk/delayer.rb:10:in `block in boot' from /Users/akkie/mikutter/core/plugin/gtk/mainloop.rb:10:in `main' from /Users/akkie/mikutter/core/plugin/gtk/mainloop.rb:10:in `mainloop' from mikutter.rb:68:in `boot!' from mikutter.rb:104:in `<main>'
Gemfileで2.1.0未満を使うように書き換えることで回避できるようでした
gem 'twitter-text', '>= 1.14.6', '< 2.1.0'
Izumi Tsutsui さんがほぼ7年前に更新
2.0.x → 2.1.0 は非互換な変更みたいですね。
("たぶん動くからリリースしようぜ" 感あふれる変更)
https://github.com/twitter/twitter-text/commit/ab02a1ad99e3462931a6b035c63693981a7385d7
Top-level namespace changed from `Twitter` to `Twitter::TwitterText`. This
resolves a namespace collision with the popular
[twitter gem](https://github.com/sferik/twitter). This is considered
a breaking change, so the version has been bumped to 2.1.
source:core/mui/gtk_postbox.rb@2fdb3315#L293
の
Twitter::Extractor.extract_urls(text).map{|url|
を
Twitter::TwitterText::Extractor.extract_urls(text).map{|url|
にすればいいんですかね。(未テスト)
toshi_a 初音 さんがほぼ7年前に更新
最終的には対応すべきと思いますが、twitter-text 2.1.0未満でしか動かないということなので、まずはそのように明記すべきですね
Izumi Tsutsui さんがほぼ7年前に更新
とりあえず履歴#1の通り直すと twitter-text 2.1.0 でも動いてます
--- core/mui/gtk_postbox.rb.orig 2017-12-22 15:08:27.000000000 +0000
+++ core/mui/gtk_postbox.rb
@@ -307,7 +307,7 @@ module Gtk
def remain_charcount
if not widget_post.destroyed?
text = trim_hidden_regions(widget_post.buffer.text + UserConfig[:footer])
- Twitter::Extractor.extract_urls(text).map{|url|
+ Twitter::TwitterText::Extractor.extract_urls(text).map{|url|
if url.length < posted_url_length(url)
-(posted_url_length(url) - url.length)
else
toshi_a 初音 さんがほぼ7年前に更新
mikutterがtwitter-textに依存しているのおかしいですね。どっちでいくとしてもTwitterプラグインの方に移動しておく必要がある
toshi_a 初音 さんがほぼ7年前に更新
- ステータス を 新規 から レビュー待ち に変更
- 担当者 を Akira Ouchi にセット
つついさんのパッチを取り込んで、2.1.0以降を要求するようにしました。
問題はないと思いますが(あとギリギリになって申し訳ないですが)、 :akkiesoft_bridge: とつついさんを中心に確認してもらえたら、とおもいます
Akira Ouchi さんがほぼ7年前に更新
動作を確認しました。
旧バージョンとかの配慮とかがいらなければそのままで良いかなと思いました。
- hotfix/3.5を使い続ける人向け?(<2.1.0をGemfileに書く?)
- 3.6でうっかり2.1以前のtwitter-textで動かした人向け?
Izumi Tsutsui さんがほぼ7年前に更新
- ステータス を レビュー待ち から 解決 に変更
pkgsrc という非標準環境ですが twitter-text-2.1.0.gem との組み合わせで動作しています。
toshi_a 初音 さんがほぼ7年前に更新
- ステータス を 解決 から 終了 に変更
3.5系には、twitter-text 2.1.0未満を要求するようにGemfileを書き換えたものをリリースしておきたいところですが、あと2時間で3.5のサポート(笑)は切れるので、3.6記念のビールなどを購入する工数を考えると、非常に厳しいかと思います。