ruby-trunk-changes 2019-08-25

今日は主にリリースやパッケージ作成用のツールの修正がありました。

[571ffcd609] Yusuke Endoh 2019-08-24 11:31:16 UTC

拡張ライブラリ psych に同梱している libyaml のソースコードで未初期化の構造体メンバーの初期化を警告除去のために追加したら、今度は初期化したのに使ってないという警告になったので (void) で警告除去しています。

[5d5502dc85] Kazuhiro NISHIYAMA 2019-08-24 12:26:24 UTC

d5b917d50062559efb5b90ed093293d37e8a40b9 で追加した定数 ORDINAL_PARM は typo だったようで ORDINAL_PARAM に変更しています。

[df348310dc] Kazuhiro NISHIYAMA 2019-08-24 14:17:12 UTC

tool/lib/vcs.rb に 97ad7862d5f65c48409a5301609af8448aaae16d でデバッグ用に git branch の結果を出力させてましたが、一部の CI 環境で master ブランチが fetch されなくてエラーになる場合に trunk を使うように fallback させるようにしています。

[03ee12a3b8] Kazuhiro NISHIYAMA 2019-08-24 15:50:34 UTC

df348310dc2ba0b01f7dd7277184c688a5d430fe のやりなおし。渡された引数の url を書き換えないといけないので代入でなく replace を使うようにしています。to_str を噛ませてるのはなぜだろう。呼び元はたいてい url は String のようだけど。

[cf5516de7b] git 2019-08-24 15:51:59 UTC

version.h の日付更新

[e1c991f8d7] Jeremy Evans 2019-08-24 16:09:53 UTC

Object#hash の rdoc 用コメントを hash.c の関数実体の定義の前に移動しています。これまでは object.c の関数宣言の前にありました。

[04735c48ab] Jeremy Evans 2019-08-24 21:05:19 UTC

Enumerator の rdoc 用コメントで to_enumenum_for などのメソッドが Kernel のメソッドと書かれてたのを Object のインスタンスメソッドに修正しています。 また Kernel#warn メソッドの call-seq に uplevel の記述追加や一部のサンプルコードで yield_self を then に書きかえるなど。 [ruby-core:94536] [Misc #16126]

[f13a00f5b4] Nobuyoshi Nakada 2019-08-25 02:24:53 UTC

リリース用パッケージ作成時に ChangeLog を生成するためにコミットログを取得する処理で、ブランチの切られたポイントがみつからなかった時に例外にしていたのを警告を出した上でざっくり1年前までのログを利用するようにしています。

[5decf66ab3] Nobuyoshi Nakada 2019-08-24 22:39:57 UTC

数値を期待していた値に dynamic symbol を渡した時に発生する TypeError に class 名しか表示されなかったので inspect 結果を埋め込むようにしています。static symbol なら SPECIAL_CONST_P() で判定されるけど dynamic symbol は別途チェックする必要があったようです。

[1b03d2d76b] Kazuhiro NISHIYAMA 2019-08-25 04:58:30 UTC

df348310dc2ba0b01f7dd7277184c688a5d430fe の tool/lib/vcs.rb の VCS::GIT#export での例外時の trunk で代替する処理をやめています。環境のほうで対処してもらったのかな。

[cc6fe15241] Yusuke Endoh 2019-08-25 07:59:45 UTC

tool/lib/vcs.rb の ChangeLog 生成時のメソッド export_changelog で git リポジトリに git notes の参照がなかったらエラーにしています。ん? 今 master の make-snapshot はリポジトリが git であることを前提にしてるのかな。安定版ブランチは svn だが…と思ったけど、そうかパッケージ作る時はチェックアウト済みの working copy ではなくて新規に checkout するのが普通だから、その時は git になるのか。

[c775ab5e28] Nobuyoshi Nakada 2019-08-25 09:27:57 UTC

tool/lib/vcs.rb の VCS::SVN#_get_revision からのクラスメソッド local_path? の呼び出しがインスタンスメソッドとしての呼び出しになっていたので修正しています。

[6944a1aa4f] Yusuke Endoh 2019-08-25 10:29:52 UTC

lib/webrick.rb の require "webrick/util.rb" を require_relative に書き換えています。テスト時に test/webrick/utils.rb というファイルもあるためこっちが読み込まれてしまっていたそうです。それでよく動いてたな。

[fa5f7771f2] Takashi Kokubun 2019-08-25 11:10:24 UTC

AppVeyor の Slack 通知時に所要時間を追加していたのをやめています。