トップ «前の日記(2015/08/19 (水) ) 最新 次の日記(2015/08/21 (金) )» 編集 RSS feed

HsbtDiary


2015/08/20 (木) [長年日記]

Ruby 開発者会議 8 月

今回もいつも通り SFDC さんのオフィスで開催

今月は did_you_mean の作者の @yuki24 が参加して Ruby 2.3 に did_you_mean をマージしていくか、という具体的な話をしたり、笹田さんの提案する内部実装の変更について議論したりしていた。後は 2.3 の具体的なスケジュールなど。

YAPC Asia 2015 Day 0

Ruby 開発者会議を途中で抜けだしてYAPC前夜祭の発表をしてきた。

Ruby の開発は具体的にどうやってんの???というのを話つもりだったのだけど、バックグラウンドの話だけで15minくらい消費してしまって、具体的な環境、テスト、フィーチャーリクエストの部分を5minで飛ばして話すという、完全な時間配分ミスだった。25-28minくらいで質問は1つくらいでいいだろうと思っていたけど、質問時間10分というのを直前に思い出してだいぶ駆け足になってしまった.

せっかくなので飛ばした所で話す予定だった内容をここに書いておきます。

Dev Resource

Ruby の開発に用いるマシンはほとんどがコミッタ自身が保有しているマシンで開発をしています。Linux/Windows/OSX などは用意しやすいですが、AIX や Solaris などは Ruby コミッタやサポーターがたまたま持っているから開発できている、という側面があります。

個人の環境以外にも企業や団体によるサーバーリソースや、資金のサポートも幸いなことに受けることができています。スライドに載せることが出来なかったものの、はてなさんからは監視用の mackerel の特別プランを提供してもらったり、Solaris のビルド環境を Debian チームから提供してもらうことで、なんとか開発と、.ruby-lang.org の各種サイトを運用出来ています。.ruby-lang.org は用途に応じて様々なサーバーが存在していますが、いずれも @hsbt + 誰かがメンテナンスしており、これらは Ruby 公式のリソースです。

1 点注意しないと行けないのが、rubygems や bundler, ruby-doc などは Ruby 公式ではないということです。rubygems, rake, rdoc は Ruby のリポジトリにマージはされていますが、方向性の意思決定や開発は github.com/rubygems/rubygems で独立して開発されてます。ややこしいですね。

ちなみに、@hsbt はこの辺の間をいい感じに取り持つというのを積極的にやってます。

Feature Request

Feature Request は基本的に redmine で議論します。これは Ruby コミッタも同様です。コミッタだからと言って新機能などを突然コミットすることは(n0kada さんを除いて)基本的にはありません。

この redmine は色々カスタマイズされていて、ruby-core というメーリングリストと統合されていて、メールに返信すると issue が更新されたり、issue の更新内容がメーリングリストに飛ぶなど、メーリングリストにさえ入っていれば、github の issue のように使えるという点も実は便利になっています。

Ruby は redmine 以外にも github.com/ruby/ruby にミラーを用意しています。こちらに pull request を出すことでコードのコントリビュートを行うことは実は可能です。ただし、Matz は Ruby の github リポジトリを積極的には見ていないので、Matz acceptable にする必要がある code は Github よりも redmine に投げた方がよいでしょう。

Ruby の feature request で重要なことは、皆さんの仕事の現場と同じように機能追加よりもユースケースについて議論し、ユースケースを実現するコードを用意し、ディレクターであるMatz を説得するという3つです。

Test

Ruby のテストは以外と実行するのが簡単です。テストを壊さず、テストを追加した上で Feature Request をすると採用される確率がぐっと上がります。

Release

Ruby のリリースはリリースマネージャのリリースするという決断に全て委ねられています。2.1 以降は、リリース日を決めた上で issue や feature request をマネージするようにしているので、〇〇が出来ていないのでリリース延期ということはありません。できているものをリリースするという方針に変わっています。

そのため、regression であったり、魅力的な機能であっても不完全なものは容赦なく revert されます。Ruby コミッタ頑張れ。

終わりに

YAPC 会期中にもう少し詳しく!ということがあれば、お答えするので話しかけてください。