Feature #8526

Removing tk from Ruby repository(ja)

Added by Yui NARUSE about 2 years ago. Updated over 1 year ago.

[ruby-dev:47422]
Status:Open
Priority:Normal
Assignee:-

Description

tk を Ruby のリポジトリから外しませんか。

そもそも tk はサイズベースで言えば、約69MBのRubyリポジトリのうち、8.8MBを占める巨大なライブラリでかつ、
ビルドに際して多くのライブラリを必要とするため、従前より周囲の目が厳しいライブラリでありましたが、
これまでは精力的にメンテされている永井さんに敬意を払って、本格的な削除の提案はされて来ませんでした。

しかし、最近は活動が鈍り、#5199 #5465 #5686 #7000 #7884 #8000 #8319 #8435 が残タスクとして残っています。
リリースマネージャとしては、このような状況下ではtkをRubyのリポジトリから外していただいて、
gem等で永井さんのペースでメンテしていただくのがよいのではないでしょうか。


Related issues

Duplicated by Ruby trunk - Feature #8539: Unbundle ext/tk Open 06/17/2013

History

#1 Updated by Shugo Maeda about 2 years ago

naruse (Yui NARUSE) wrote:

tk を Ruby のリポジトリから外しませんか。
(snip)
しかし、最近は活動が鈍り、#5199 #5465 #5686 #7000 #7884 #8000 #8319 #8435 が残タスクとして残っています。
リリースマネージャとしては、このような状況下ではtkをRubyのリポジトリから外していただいて、
gem等で永井さんのペースでメンテしていただくのがよいのではないでしょうか。

賛成です。

tkと同じタイミングで私が消極的メンテナをしているcursesも削除したいと思いますが、どうでしょうか。
UI系のライブラリは標準で含まれている必要はないかなと思います。
gem化することでRuby本体とメンテナンスサイクルを分けられるのはメリットでもあると思いますし(私はあまりcursesやる気ないんですが)。

ただ、readlineについてはirbからの依存があるので残した方がよいと思っています。
readlineもメンテナが活発でないという問題がありますが、再び私が引き取った方がいいですかねえ…。

#2 Updated by Yui NARUSE about 2 years ago

shugo (Shugo Maeda) wrote:

naruse (Yui NARUSE) wrote:

tk を Ruby のリポジトリから外しませんか。
(snip)
しかし、最近は活動が鈍り、#5199 #5465 #5686 #7000 #7884 #8000 #8319 #8435 が残タスクとして残っています。
リリースマネージャとしては、このような状況下ではtkをRubyのリポジトリから外していただいて、
gem等で永井さんのペースでメンテしていただくのがよいのではないでしょうか。

賛成です。

ありがとうございます。

tkと同じタイミングで私が消極的メンテナをしているcursesも削除したいと思いますが、どうでしょうか。
UI系のライブラリは標準で含まれている必要はないかなと思います。
gem化することでRuby本体とメンテナンスサイクルを分けられるのはメリットでもあると思いますし(私はあまりcursesやる気ないんですが)。

これは tk のスレであって、標準ライブラリ gem 化のスレではないので、curses については他のスレでお願いします。
まぁ、メンテナが外すといえば基本的には外れるでしょうが。

ただ、readlineについてはirbからの依存があるので残した方がよいと思っています。
readlineもメンテナが活発でないという問題がありますが、再び私が引き取った方がいいですかねえ…。

readline はわたしや中田さんが何かあった時はいじってるのでまぁいいんじゃないですかね。
他の方が直してくださるならそれに越したことはありませんが。

#3 Updated by Hiroshi SHIBATA about 2 years ago

tk を Ruby のリポジトリから外しませんか。

賛成です。
Mac でも tk のビルドエラーで ruby のビルドが止まってしまうので、
いつもオプションを付けてくださいと言って回ってます。

https://gist.github.com/Watson1978/5778104

リリースマネージャとしては、このような状況下ではtkをRubyのリポジトリから外していただいて、
gem等で永井さんのペースでメンテしていただくのがよいのではないでしょうか。

tk 用のリポジトリを github の https://github.com/ruby の下に作成することも可能です。
今後は github などで必要な人がメンテナンスしていくというのが良いと思います。

#4 Updated by Shugo Maeda about 2 years ago

naruse (Yui NARUSE) wrote:

tkと同じタイミングで私が消極的メンテナをしているcursesも削除したいと思いますが、どうでしょうか。
UI系のライブラリは標準で含まれている必要はないかなと思います。
gem化することでRuby本体とメンテナンスサイクルを分けられるのはメリットでもあると思いますし(私はあまりcursesやる気ないんですが)。

これは tk のスレであって、標準ライブラリ gem 化のスレではないので、curses については他のスレでお願いします。

はい、cursesのチケットは新たに起票するつもりですが、永井さんからすると何でtkだけが削除されるのかという
印象を受けられるかな、と。
全体的な流れとして、標準添付ライブラリはなるべくスリムにして、依存関係のないものはthird party gem
にしようという背景があると理解しています。

ただ、readlineについてはirbからの依存があるので残した方がよいと思っています。
readlineもメンテナが活発でないという問題がありますが、再び私が引き取った方がいいですかねえ…。

readline はわたしや中田さんが何かあった時はいじってるのでまぁいいんじゃないですかね。
他の方が直してくださるならそれに越したことはありませんが。

(これも別の話ですが)
バグは何とかなると思うんですが、#6626のようなfeature requestが気になっていました。
とりあえず、私から高尾君をつついておきますかね…。

#5 Updated by Shyouhei Urabe about 2 years ago

naruse (Yui NARUSE) wrote:

そもそも tk はサイズベースで言えば、約69MBのRubyリポジトリのうち、8.8MBを占める巨大なライブラリでかつ、

えー。それを言っちゃうの? Rubyレポジトリの半分はencだしnkfだってけっこうでかくないですか?

zsh % du -sh enc ext/*/ lib/*/ . | fgrep M
34M     enc
2.1M    ext/nkf/
1.8M    ext/openssl/
1.6M    ext/psych/
1.1M    ext/socket/
1.2M    ext/-test-/
23M     ext/tk/
1.1M    ext/win32ole/
4.0M    lib/rdoc/
2.5M    lib/rubygems/
62M     .

まあだからといってtk残せともenc捨てろとも思いませんけど。サイズのことをいうのはアンフェアなんじゃないかなー。

#6 Updated by Hidetoshi Nagai about 2 years ago

手を付けていないチケットについて,
一部はRejectできそうだとか,一部は今は手が出せないとかはありますが,
thread回りとかGC回りとかの各部の変化の影響がどこまで及んでいるか,
あるいは影響はないのかを測りかねていて,断言できない状況にあります.

いずれにしても手が回っていないことは事実ですので,
私の方から「残してくれ」と主張する権利はないでしょう.
決定には粛々と従います.

#7 Updated by Yui NARUSE about 2 years ago

shyouhei (Shyouhei Urabe) wrote:

naruse (Yui NARUSE) wrote:

そもそも tk はサイズベースで言えば、約69MBのRubyリポジトリのうち、8.8MBを占める巨大なライブラリでかつ、

えー。それを言っちゃうの? Rubyレポジトリの半分はencだしnkfだってけっこうでかくないですか?

zsh % du -sh enc ext/*/ lib/*/ . | fgrep M
34M     enc
2.1M    ext/nkf/
1.8M    ext/openssl/
1.6M    ext/psych/
1.1M    ext/socket/
1.2M    ext/-test-/
23M     ext/tk/
1.1M    ext/win32ole/
4.0M    lib/rdoc/
2.5M    lib/rubygems/
62M     .

まあだからといってtk残せともenc捨てろとも思いませんけど。サイズのことをいうのはアンフェアなんじゃないかなー。

定量化可能な指標の一つとして出しました。
脆弱性を出してた頃のzlibなんかは小さくても消したかったので、サイズだけを見ているわけでもありません。

また、nkfはわたしがアクティブではなくなったら消えることになるだろうという感覚はあります。
iconvが消えてるのにnkfが残っているのは端的にはわたしのわがままですし。

#8 Updated by Yui NARUSE about 2 years ago

nagai (Hidetoshi Nagai) wrote:

手を付けていないチケットについて,
一部はRejectできそうだとか,一部は今は手が出せないとかはありますが,
thread回りとかGC回りとかの各部の変化の影響がどこまで及んでいるか,
あるいは影響はないのかを測りかねていて,断言できない状況にあります.

いずれにしても手が回っていないことは事実ですので,
私の方から「残してくれ」と主張する権利はないでしょう.
決定には粛々と従います.

ご理解ありがとうございます。

今後のメンテナンスはどのようになさいますか?
githubやその他のリポジトリサービスに置くなり、自サイトに置くなりとか、
例えば github で ruby/tk に置くならばこちらで作業出来ます。
また、gem にするなら gem 化も協力できます。

#9 Updated by Hidetoshi Nagai about 2 years ago

英語圏は無視して広く意見を聞くことなく,もう決定ということですか?
私は決定には従うとは申しましたが,積極的に賛成したわけではないのですが…

まぁ,「尋ねたところで積極的に残してほしいという意見もなく,
除外に賛成する意見が大多数だろうから,尋ねるだけ時間の無駄」という
判断なのかもしれませんね.

歴史的経緯で,動作の必要上,非公開 API まで使ってきていたので,

実のところ,現状がどこまで公開 API のみに切り離せているのかを

明確には把握できていません.

調べてみなければわかりませんが,除外が確定した時に

安定動作に必要な関数等が万一非公開扱いであれば,

その点に関して何らかの協力をお願いせねばならないかもしれません.

#10 Updated by Yui NARUSE about 2 years ago

nagai (Hidetoshi Nagai) wrote:

英語圏は無視して広く意見を聞くことなく,もう決定ということですか?
私は決定には従うとは申しましたが,積極的に賛成したわけではないのですが…

まぁ,「尋ねたところで積極的に残してほしいという意見もなく,
除外に賛成する意見が大多数だろうから,尋ねるだけ時間の無駄」という
判断なのかもしれませんね.

残して欲しいという意見があったとしても、メンテナが合意している場合は自分がメンテナになるつもりで反対しないと覆せないので、
そのような人が立候補するか判断出来るだけの材料は集めてから、というつもりでした。
そこまで急いでいるわけでもないので、残して欲しいという意見が多ければ永井さんが頑張るという方向もあるでしょう。

また、どちらにせよ基本的な方向性が決まったら ruby-core にも投げる予定ではありました。
が、投げるなら今のところ今後はどうなるのかの概要くらいは示しておきたいなと。

っと思っていたのですが、このスレッドは閉じて、今後の議論は ruby-core でやるというのがいちばんよいかな。

歴史的経緯で,動作の必要上,非公開 API まで使ってきていたので,

実のところ,現状がどこまで公開 API のみに切り離せているのかを

明確には把握できていません.

調べてみなければわかりませんが,除外が確定した時に

安定動作に必要な関数等が万一非公開扱いであれば,

その点に関して何らかの協力をお願いせねばならないかもしれません.

建前としては公開していないつもりなのに、ruby.h に書かれているものは結構ありますが、それは使えはするので、
internal.h (ruby/intern.hではない) を使っていたりしなければ大丈夫だと思います。

#11 Updated by Hidetoshi Nagai about 2 years ago

残して欲しいという意見があったとしても、メンテナが合意している場合は自分がメンテナになるつもりで反対しないと覆せないので、
そのような人が立候補するか判断出来るだけの材料は集めてから、というつもりでした。
そこまで急いでいるわけでもないので、残して欲しいという意見が多ければ永井さんが頑張るという方向もあるでしょう。

また、どちらにせよ基本的な方向性が決まったら ruby-core にも投げる予定ではありました。
が、投げるなら今のところ今後はどうなるのかの概要くらいは示しておきたいなと。

了解です.卑怯かもしれませんが,私自身は削れとも残せとも主張はしません.
万が一,残して欲しいという意見が多ければ,努力します.

ちなみに,挙がっていたチケットに対する現状の概略は以下の通りです.

#5199 すみません.まだチェックできていません.

#5465 他の環境に支障があるわけでもないので,これはさっさと取り込むべきでした.

#5686 この状況には遭遇したことがないので cygwin 特有の問題っぽいなと思うのですが,
cygwin 環境が手元になくて (今でも生じるのかを含めて) 調査できていません.

#7000 問題なく include される (実際にこれで動いてます) ので Reject です.

#7884 少なくとも現状では,callback 中の fork は非サポートです.
通常,callback は eventloop が走っている thread で実行されます.
しかも callback が実行される際には Tcl 側と Ruby 側の処理が絡み合っています.
この状況でウィンドウシステムのイベント処理 thread が複製された時に何が起こるかは,
私には保証しきれません.

#8000 現状では Tcl/Tk8.6 は非サポートであるために保留です.
tcltklib が ruby 本体の処理の変化に非適合になっている可能性もあるのですが,
Tcl/Tk8.5 では同種の報告はないようなので,Tcl/Tk8.6 に特有の問題だろうと見ています.

#8319 少し気になる点はありますが,大筋として取り込んでも良さそうです.

#8435 Ubuntuのパッケージで勝手にいじっていることに起因しての問題なので,
基本的にはUbuntuコミュニティで対策を考えるべきことではないのかなと思っています.
私がUbuntuユーザではないことも理由なのですが,
Ubuntuにおける決まりごとがどのようになっているかは把握できていませんし,
現状に合わせて場当たり的に対処してもそれがいつまでも通用するかわかりません.
Ubuntuは確かに広く用いられているディストリビューションではありますし,
サポート対象の環境であるのはわかるのですが,

独自の変更に振り回されねばならないというのは疑問を感じます.

これ以外にも,msgcat の問題が保留のままになっています.
ファイル I/O も含めた encoding 周りの問題なので,
厄介なことになっているのではないかと心配しています.

やはり,手持ちでない環境にまで対応するのは厳しいです.
先に挙がっていた Mac の問題も,私が Mac ユーザではないので対応が難しいものの一つです.
環境特有の問題は,できればその環境を持っているコミッタに期待したいというのはわがままでしょうか.

#12 Updated by Takeyuki FUJIOKA about 2 years ago

永井さんの返事を見ると、残したいといっているように見えるので、
永井さんが「努力するので残したい!」と返信してくれるんだと思って書きます。
誰も残して欲しいとは言わないと思いますので、永井さんがそう言わないといけないと思います。
そして、チケットの更新状況やサポート状況を見て、
総合的になるせさんが判断すると思います。

そのためにはまず、チケットは全部更新して下さい。
環境がない場合はヘルプを出していただければいいと思います。
期待しているのならそう言ってもらったほうがいいと思います。
コミッタがMacを持っているかどうかは微妙ですが、
ruby-devやらruby-coreに動作チェックや動作するための
ヘルプを投げることは重要だと思います。
この前、RubyKaigiでテーブルに集まった時には
6人のうちMacは私一人だったので。
日本だとmrkn,hsbt,nagachika,xibbarあたりが
Macだったかな?日本人以外だとほとんどMacな気がします。

tkはみんな最初から動くのを諦めているフシがあります。
永井さんの環境が動いているのであれば
まだサポートできるのではないでしょうか。
もしくは、Macだったらtkのコンパイルをデフォルトオフにしちゃうとか。
でも、それなら外出ししてもOKな気もしますが。。。

#13 Updated by Takeyuki FUJIOKA about 2 years ago

さっき、自分のところのMac Mountain Lionでtkの以下のチュートリアルを動かしてみたら、起動はしました。
http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=Ruby%2FTk+%A5%C1%A5%E5%A1%BC%A5%C8%A5%EA%A5%A2%A5%EB
簡単なサンプルは動くのですが、
http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=RubyTkTut%3A%3A%A5%A8%A5%F3%A5%C8%A5%EA%A1%BC
のサンプルは日本語が入りませんでした。
http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=RubyTkTut%3A%3A%A5%EA%A5%B9%A5%C8%A5%DC%A5%C3%A5%AF%A5%B9%A4%C8%A5%B9%A5%AF%A5%ED%A1%BC%A5%EB%A5%D0%A1%BC
はエラーが起こりました。argument errorとかですね。
http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=RubyTkTut%3A%3A%A5%C6%A5%AD%A5%B9%A5%C8
もエラーが起きて起動しません。
http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=RubyTkTut%3A%3A%CE%E3%A1%A7%C5%C5%C2%EE
の10桁電卓は動きました。
http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=RubyTkTut%3A%3A%CE%E3%A1%A7%A5%C6%A5%AD%A5%B9%A5%C8%A5%A8%A5%C7%A5%A3%A5%BF
のテキストエディタは上のエラーと同じです。
http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=RubyTkTut%3A%3A%CE%E3%A1%A7%CD%EE%BD%F1%A4%AD%C4%A2
の落書き帳は動きました。

MacOSXはxquartzがないとコンパイルもされないようなので、
ほっといていいのかもしれませんが、
xquartzが入っているとコンパイルされるようです。
それで、普通にインストールはできて、
テキストエントリがうまく行かないようですが、
それ以外はうまくいきました。

永井さんがチケットを定期的に消化してくださって、
最新版に追随するのであればtkを外さなくてもいいと思います。
私が試した感じでは一応動いているようなので。
(活動はコードとチケットで判断するとして。)

テストがないという件はどうしていいのかわかりません。

どうやって書けばいいのかもわからないので。

#14 Updated by Hidetoshi Nagai about 2 years ago

永井@知能.九工大です.

From: "xibbar (Takeyuki FUJIOKA)" xibbar@gmail.com
Subject: [ruby-trunk - Feature #8526] Removing tk from Ruby repository
Date: Mon, 17 Jun 2013 09:01:01 +0900
Message-ID: redmine.journal-39976.20130617090101@ruby-lang.org

そのためにはまず、チケットは全部更新して下さい。

とりあえず,更新はしたつもりです.

環境がない場合はヘルプを出していただければいいと思います。
期待しているのならそう言ってもらったほうがいいと思います。

トラブルの報告が届いていればもちろんそれは可能ですが,
こちらに伝わっていなければアクションの取り様がありません.
実際のところ,この話の流れで出てきた Mac 上でのコンパイルに伴うトラブルは
全く把握していませんでした.

# 忙しくてメールもろくに読めていない時期がかなりありましたので,
# 単に見落としていたのであればごめんなさい.

正直なところ,あらゆる動作環境,Ruby 本体を含めたあらゆるライブラリの変化を
すべてチェックし続けるのは不可能ですから,ユーザの報告に頼るしかありません.
忙しい時期などは,「報告がない限りは問題は生じていないと見なす」という
対応にならざるを得ません.

# 報告があった分についても対応できていなかった点はもちろんお詫びしますが,
# 一部を除いて致命的問題の程度としては高くはないと思っていました.

というわけで,レポートなしに

tkはみんな最初から動くのを諦めているフシがあります。

という状況で非難されるというのは,さすがに少し辛いですね.(_;
--
永井 秀利 (nagai@ai.kyutech.ac.jp)
九州工業大学大学院情報工学研究院知能情報工学研究系知能情報メディア部門助教

#15 Updated by Hidetoshi Nagai about 2 years ago

永井@知能.九工大です.

From: "xibbar (Takeyuki FUJIOKA)" xibbar@gmail.com
Subject: [ruby-trunk - Feature #8526] Removing tk from Ruby repository
Date: Mon, 17 Jun 2013 13:24:51 +0900
Message-ID: redmine.journal-39985.20130617132449@ruby-lang.org

さっき、自分のところのMac Mountain Lionでtkの以下のチュートリアルを動かしてみたら、起動はしました。

報告をありがとうございます.

http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=RubyTkTut%3A%3A%A5%A8%A5%F3%A5%C8%A5%EA%A1%BC
のサンプルは日本語が入りませんでした。

Mac X11 版の Tcl/Tk の問題で,
imput method による直接入力はうまく動かなかったはずです.
この点は Tcl/Tk 側の問題なので,Ruby/Tk 側ではどうにもできません.
記憶がはっきりしないのですが,Aqua 版では入力できたかもしれません.

http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=RubyTkTut%3A%3A%A5%EA%A5%B9%A5%C8%A5%DC%A5%C3%A5%AF%A5%B9%A4%C8%A5%B9%A5%AF%A5%ED%A1%BC%A5%EB%A5%D0%A1%BC
はエラーが起こりました。argument errorとかですね。
http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=RubyTkTut%3A%3A%A5%C6%A5%AD%A5%B9%A5%C8
もエラーが起きて起動しません。
http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=RubyTkTut%3A%3A%CE%E3%A1%A7%A5%C6%A5%AD%A5%B9%A5%C8%A5%A8%A5%C7%A5%A3%A5%BF
のテキストエディタは上のエラーと同じです。

これについては調べるようにします.

# これに直接関係があるかはわかりませんが,
# Ruby 本体の method の仕様変更で動かなくなっている部分があることには
# 気が付きました.

テストがないという件はどうしていいのかわかりません。

どうやって書けばいいのかもわからないので。

window system や導入されているフォントの影響も受けるでしょうから,
GUI 動作が正しいかのテストは,私もどうやって書けばいいかわかりません.
Tcl/Tk の関数のいくつかを正しく呼べるか程度しかできなくても,
「ないよりはマシ」でしょうか.
--
永井 秀利 (nagai@ai.kyutech.ac.jp)
九州工業大学大学院情報工学研究院知能情報工学研究系知能情報メディア部門助教

#16 Updated by Anonymous about 2 years ago

藤岡です。

tkはみんな最初から動くのを諦めているフシがあります。

という状況で非難されるというのは,さすがに少し辛いですね.(_;

非難しているつもりはないです。
さらに、あくまで上については私見なので、
無視してくださって結構ですよ。

#17 Updated by Hidetoshi Nagai about 2 years ago

永井@知能.九工大です.

From: "xibbar (Takeyuki FUJIOKA)" xibbar@gmail.com
Subject: [ruby-trunk - Feature #8526] Removing tk from Ruby repository
Date: Mon, 17 Jun 2013 13:24:51 +0900
Message-ID: redmine.journal-39985.20130617132449@ruby-lang.org

http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=RubyTkTut%3A%3A%A5%EA%A5%B9%A5%C8%A5%DC%A5%C3%A5%AF%A5%B9%A4%C8%A5%B9%A5%AF%A5%ED%A1%BC%A5%EB%A5%D0%A1%BC
はエラーが起こりました。argument errorとかですね。

「pack する順番を変更」の例はプログラムにバグがあります.
一つ上の「スクロールバーを付けて実用的に」のコードと見比べるとわかりますが,
コマンド定義の proc のブロックパラメータで "*" を付け忘れています.
次の「grid を使用した配置」の中の「選択した項目を活用する」も同じバグです.

# ブロックパラメータの扱いの仕様変更が原因ですね.
# 1.6 では通っていたけど,1.8 で警告が出るようになった類のものでしたっけ?

http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=RubyTkTut%3A%3A%A5%C6%A5%AD%A5%B9%A5%C8
もエラーが起きて起動しません。

http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=RubyTkTut%3A%3A%CE%E3%A1%A7%A5%C6%A5%AD%A5%B9%A5%C8%A5%A8%A5%C7%A5%A3%A5%BF
のテキストエディタは上のエラーと同じです。

これらも同じバグですね.
--
永井 秀利 (nagai@ai.kyutech.ac.jp)
九州工業大学大学院情報工学研究院知能情報工学研究系知能情報メディア部門助教

#18 Updated by Hiroshi SHIBATA over 1 year ago

  • Subject changed from Removing tk from Ruby repository to Removing tk from Ruby repository(ja)
  • Target version changed from 2.1.0 to current: 2.2.0

Also available in: Atom PDF