プロジェクト

全般

プロフィール

環境対応 #1130

twitter-textを2.1.0にすると起動しなくなる

Akira Ouchi8ヶ月前に追加. 8ヶ月前に更新.

ステータス:
終了
優先度:
通常
担当者:
対象バージョン:
開始日:
2017-12-21
期日:
進捗率:

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'

関係しているリビジョン

リビジョン a7666e13 (差分)
toshi_a 初音8ヶ月前に追加

twitter-text 2.1.0を要求 refs #1130

履歴

#1 Izumi Tsutsui8ヶ月前に更新

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|

にすればいいんですかね。(未テスト)

#2 toshi_a 初音8ヶ月前に更新

最終的には対応すべきと思いますが、twitter-text 2.1.0未満でしか動かないということなので、まずはそのように明記すべきですね

#3 Izumi Tsutsui8ヶ月前に更新

とりあえず履歴#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

#4 toshi_a 初音8ヶ月前に更新

mikutterがtwitter-textに依存しているのおかしいですね。どっちでいくとしてもTwitterプラグインの方に移動しておく必要がある

#5 toshi_a 初音8ヶ月前に更新

  • ステータス新規 から レビュー待ち に変更
  • 担当者Akira Ouchi にセット

つついさんのパッチを取り込んで、2.1.0以降を要求するようにしました。
問題はないと思いますが(あとギリギリになって申し訳ないですが)、 :akkiesoft_bridge: とつついさんを中心に確認してもらえたら、とおもいます

#6 Akira Ouchi8ヶ月前に更新

動作を確認しました。

旧バージョンとかの配慮とかがいらなければそのままで良いかなと思いました。

  • hotfix/3.5を使い続ける人向け?(<2.1.0をGemfileに書く?)
  • 3.6でうっかり2.1以前のtwitter-textで動かした人向け?

#7 Izumi Tsutsui8ヶ月前に更新

  • ステータスレビュー待ち から 解決 に変更

pkgsrc という非標準環境ですが twitter-text-2.1.0.gem との組み合わせで動作しています。

#8 toshi_a 初音8ヶ月前に更新

  • ステータス解決 から 終了 に変更

3.5系には、twitter-text 2.1.0未満を要求するようにGemfileを書き換えたものをリリースしておきたいところですが、あと2時間で3.5のサポート(笑)は切れるので、3.6記念のビールなどを購入する工数を考えると、非常に厳しいかと思います。

他の形式にエクスポート: Atom PDF