環境対応 #1130
closedtwitter-textを2.1.0にすると起動しなくなる
0%
Description
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'
Updated by Izumi Tsutsui almost 7 years ago
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|
にすればいいんですかね。(未テスト)
Updated by toshi_a 初音 almost 7 years ago
最終的には対応すべきと思いますが、twitter-text 2.1.0未満でしか動かないということなので、まずはそのように明記すべきですね
Updated by Izumi Tsutsui almost 7 years ago
とりあえず履歴#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
Updated by toshi_a 初音 almost 7 years ago
mikutterがtwitter-textに依存しているのおかしいですね。どっちでいくとしてもTwitterプラグインの方に移動しておく必要がある
Updated by toshi_a 初音 almost 7 years ago
- Status changed from 新規 to レビュー待ち
- Assignee set to Akira Ouchi
つついさんのパッチを取り込んで、2.1.0以降を要求するようにしました。
問題はないと思いますが(あとギリギリになって申し訳ないですが)、 :akkiesoft_bridge: とつついさんを中心に確認してもらえたら、とおもいます
Updated by Akira Ouchi almost 7 years ago
動作を確認しました。
旧バージョンとかの配慮とかがいらなければそのままで良いかなと思いました。
- hotfix/3.5を使い続ける人向け?(<2.1.0をGemfileに書く?)
- 3.6でうっかり2.1以前のtwitter-textで動かした人向け?
Updated by Izumi Tsutsui almost 7 years ago
- Status changed from レビュー待ち to 解決
pkgsrc という非標準環境ですが twitter-text-2.1.0.gem との組み合わせで動作しています。
Updated by toshi_a 初音 almost 7 years ago
- Status changed from 解決 to 終了
3.5系には、twitter-text 2.1.0未満を要求するようにGemfileを書き換えたものをリリースしておきたいところですが、あと2時間で3.5のサポート(笑)は切れるので、3.6記念のビールなどを購入する工数を考えると、非常に厳しいかと思います。