ruby-trunk-changes 2020-06-18

今日は主に bundler のテストの整理や opt_call_c_function という VM 命令のデフォルトのビルドでの削除などがありました。

[dd1bfbc061] David Rodríguez 2020-06-15 10:26:52 UTC

標準添付ライブラリ rdoc の不要な gem "rdoc" を削除しています。

[97819759de] David Rodríguez 2020-06-11 10:10:55 UTC

20971d0df41368e0f946683823bc786514e16fefrubygems のテストで一時ディレクトリを指定する環境変数 TMPDIR に作業ディレクトリ内の tmp を指定してたのを revert したのを再度 revert しています。つまり作業ディレクトリ直下の tmp/ を TMPDIR に設定するようにしています。

[f5459acd79] David Rodríguez 2020-06-11 15:30:45 UTC

97819759de9a3a62bb7a4c137d8aa3eb75138e04 の続きで TMPDIR 環境変数にセットする一時ディレクトリを事前に作成しておくようにしています。

[106d616cc8] David Rodríguez 2020-06-16 14:26:31 UTC

rubygems のテスト用 Gem::TestCase でバックアップしておいた $LOADED_FEATURES を戻す時に消すパスを一時ディレクトリ配下であるかどうかで判定するようにしています。

[66b0677bcf] David Rodríguez 2020-06-16 15:40:24 UTC

f5459acd79c30dbea3062e48fb2b12d510c5b868ディレクトリ作成する際に Dir.mkdir で作成してましたが、親ディレクトリがない時を考慮して FileUtils.mkdir_p に戻したり変更したりしています。

[7b5a779576] David Rodríguez 2020-06-16 11:13:47 UTC

rubygems のテストで不要な gem "rake", gem "rake/packagetask", gem "rdoc" などを削除しています。

[e0337ce597] David Rodríguez 2020-06-16 11:14:10 UTC

lib/rubygems/package_task.rb からも不要な gem "rake" を削除しています。

[967dba157c] David Rodríguez 2020-06-16 11:14:32 UTC

rubygems のテストでダミーサーバーのために使う webrick を require する時の LoadError 時の条件に openssl の require が失敗した場合は無視するようにしてたところで LoadError#path の存在チェックしてたのはもう不要なので削除しています。LoadError#path の追加は 2.0.0 からかな。

[3d8e0d8e50] David Rodríguez 2020-06-16 11:15:22 UTC

rubygems のテストで require 'rubygems/package_task' が LoadError を発生させた時に "rake/packagetask" の require で失敗してた時はエラーにせず警告を表示した上でテストクラス全体の定義をやめるようにしています。

[b1d74afd3a] David Rodríguez 2020-06-16 17:40:12 UTC

rubygems のテストでテストの高速化のため :document オプションを空配列にセットするようにしています。

[e30ff63fd4] Yusuke Endoh 2020-06-17 14:28:51 UTC

97819759de9a3a62bb7a4c137d8aa3eb75138e04 あたりからの変更で rubygems のテストで TMPDIR にローカルのパスを入れるようにした結果一時ファイルパスが長すぎてテストが失敗することがあるので、そのような時は skip するように対象のテストを修正しています。

[e544a3a23c] Takashi Kokubun 2020-06-17 16:16:01 UTC

VM 命令 opt_call_c_function という命令は現在使用されていないので OPT_SUPPORT_CALL_C_FUNCTION というマクロを定義しないとコードが有効にならないようにしています。 https://github.com/ruby/ruby/pull/3232

[41a4c80d28] git 2020-06-17 16:16:21 UTC

version.h の日付更新

[cc46d514dc] Nobuyoshi Nakada 2020-06-17 14:22:37 UTC

common.mk の ext/extinit.c の作成に miniruby が必要なので、関連するターゲット $(PREP) を依存関係に追加しています。

[e14cba354c] Nobuyoshi Nakada 2020-06-17 23:59:47 UTC

Exception#exception メソッドの rdoc 用コメントの call-seq で引数は省略可能なのでそのように表記を修正しています。

[957825639c] Nobuyoshi Nakada 2020-06-18 00:00:34 UTC

特異メソッドのほうの Exception.exception を、Exception の特異クラス内で new への alias として定義するように変更しています。が、後に revert されています。

[2d817e0564] Yusuke Endoh 2020-06-18 00:11:02 UTC

93e6fa1d319d19ce7fba37e4b9924862447b9f38 で追加した webrick のテストではマルチバイト文字を含むファイル名がうまくリクエストのパスにエンコードできてなかったようで UTF-8 の文字列から String#encode で変換して %-encoding したものを使ってみるようにしています。

[35a6741816] Yusuke Endoh 2020-06-18 00:19:43 UTC

957825639c1422777c09578d4a03adf571eac55d を revert しています。ドキュメントのみの変更じゃないのに [ci skip] を使うな、とのこと。

[bed17974a1] Yusuke Endoh 2020-06-18 00:37:54 UTC

2d817e05649d4cc7f3be7185be4bc016ee836e07webrick のテスト修正の追加修正。 filesystem encoding が US-ASCII または ASCII-8BIT の場合は変換に失敗するので、UTF-8 の文字列をそのまま渡すようにしてみています。

[82354afbf9] Yusuke Endoh 2020-06-18 00:40:44 UTC

bed17974a1563852c3d1d2b7b24033ed0beaa33e の再修正。不要なローカル変数が導入されてしまっていたので削除しています。

[5755397064] Yusuke Endoh 2020-06-18 01:18:32 UTC

bed17974a1563852c3d1d2b7b24033ed0beaa33e の再再修正。 String#encode が Encoding::UndefinedConversionError を発生させた時に無視するようにしています。 "\u3042" って "あ" だと思うけど、CI 環境の filesystem encoding が Windows-1252 で Latin 系の文字エンコーディングなので変換できないのか。

[cf1ee151b1] Nobuyoshi Nakada 2020-06-18 02:29:56 UTC

別の webrick のテストで Windows での short filename でのアクセスのテストのために dir コマンドの出力を読み取るところで開く pipe のモードを binary モードにしています。

[a447563cf8] Nobuyoshi Nakada 2020-06-18 00:00:34 UTC

957825639c1422777c09578d4a03adf571eac55d で Exception.exception を alias にした時に Exception.new の rdoc 用コメントに Exception.exception も call-seq に追加してましたが、今度はこのドキュメントの変更のみ入れてます。

[f8f3f11ed5] David Rodríguez 2020-06-07 11:07:27 UTC

bundler の依存関係解決のコードで nil を考慮していなかった不具合の修正。

[94fc709dd1] David Rodríguez 2020-06-07 11:23:10 UTC

bundler のテストで使うダミーの gem 名を変更しています。

[8c686475c8] David Rodríguez 2020-06-06 16:27:42 UTC

bundler のテストで bundle install の --path オプションの指定のかわりに bundle config で設定する方法を使うようにしています。

[b0f07aff0b] David Rodríguez 2020-06-06 16:34:34 UTC

bundler のテストでバージョンによる実行有無の指定を間違えてたのを修正しています。

[acd82bd923] David Rodríguez 2020-06-06 16:41:41 UTC

bundler のテストで cache ディレクトリの再構成のチェックを、削除される操作の前に存在することもチェックするようにして、漏れてた build_lib の実行を追加しています。

[a8f9a97d49] David Rodríguez 2020-06-06 20:29:56 UTC

bundler のテストケースを1つ削除しています。無意味なテストだったらしい。

[6aafea2d99] David Rodríguez 2020-06-07 12:00:59 UTC

bundler のテストで無意味な gemspec ファイルの生成を削除。

[cceb77f57b] David Rodríguez 2020-06-07 12:16:42 UTC

bundler のテストでダミーの gemspec ファイルの内容を install_gemfile に渡して bundle install させてたのを gemfile に渡して冗長な? コマンド実行を削っています。

[66b327af56] David Rodríguez 2020-06-07 12:23:45 UTC

bundler のテストで冗長なサブコマンド実行を削除。

[8d7ed194cb] David Rodríguez 2020-06-07 12:54:36 UTC

bundler のテストで install_gemfile を使ってたところが冗長だったので gemfile を使うように更新。また冗長な bundle update --ruby の実行を削っています。

[9939f4ad43] David Rodríguez 2020-06-07 13:05:28 UTC

他にも bundler のテストで install_gemfile のかわりに gemfile メソッドを使って余計な bundle install を削るようにしています。

[5454415750] David Rodríguez 2020-06-07 13:28:16 UTC

bundler のテストでも余計な bundle install が走らないように(たぶん) build_gem のオプションを変更しています。

[974c40c842] David Rodríguez 2020-06-07 13:54:38 UTC

bundler のテストで .bundle/ が書き込み不可能だった時のテストで bundle config set で .bundle をインストール先として指定しておくようにしています。

[5d78fb1c9a] David Rodríguez 2020-06-07 14:18:01 UTC

bundler のテストで bundler 3 でなくなるらしい bundle install の --deployment フラグを使ってるところを bundle config set に置き換えています。なくなるのかー。

[529a9e8a1f] David Rodríguez 2020-06-07 15:58:40 UTC

bundler のテストで子プロセスで bundler を require する時のパスが間違ってたものを修正。インストール先のものを require してしまってたってことかな?

[61b6f53337] David Rodríguez 2020-06-03 16:43:17 UTC

bundler のテストで使ってた bundle コマンドを実行するヘルパーメソッド bundle のキーワード引数 :raise_on_error のデフォルト値を true に変更してエラー時に例外が発生するようにしています。それで困る箇所には明示的に raise_on_error: false を渡すようにしています。

[9be1baedbc] David Rodríguez 2020-06-07 12:59:32 UTC

もう一箇所 bundler のテストで install_gemfile のかわりに gemfile を使って余計な bundle install を抑制しています。

[cc059b16b2] Hiroshi SHIBATA 2020-06-11 12:54:04 UTC

bundler の bundle gem による自動生成ファイルテンプレートに Cicle CI でのテスト用の設定ファイルや GitLab CI 用の設定ファイルなどを追加しています。

[6f9faa66fa] Colby Swandale 2020-02-09 02:13:01 UTC

bundler の gem 生成時のメッセージの修正。

[3a2016b994] Andre Arko 2020-03-08 03:41:42 UTC

bundler の bundle gem サブコマンドでの CI 設定の反映のリファクタリング

[b46895aa93] Frank Lam 2020-05-28 07:21:04 UTC

bundler のテストに CI 設定関係のテスト用の shared_example を追加。

[25ac5b3606] Frank Lam 2020-05-28 07:25:01 UTC

bundler のテストで bundle gem 結果に .travis.yml が存在しないことを確認してたコードを削除しています。

[0d3c185b59] Frank Lam 2020-05-28 07:32:00 UTC

bundler のテストで bundle gem の結果に .travis.yml が存在しないことを確認する shared_example とその利用箇所を削除しています。

[e6479ac3f6] Frank Lam 2020-05-28 07:37:05 UTC

bundle gem の CI の選択についてのテストを test framework 選択のテストの中にネストさせるように移動しています。

[52a900773e] Frank Lam 2020-05-28 09:48:15 UTC

bundler の CI 関係のメッセージやテストの説明文の typo 修正。

[760edb3743] Frank Lam 2020-05-29 14:37:45 UTC

bundler のテストの context の説明文の typo 修正。

[27e07cd34f] Frank Lam 2020-05-29 14:40:16 UTC

bundler のテストで追加された CI 関係の設定の設定ファイルでのデフォルト値を追加しています。

[a80a5706b1] Frank Lam 2020-05-30 03:30:01 UTC

lib/bundler/cli.rb の余計な空白除去。

[8e3136a03b] Frank Lam 2020-05-30 09:06:57 UTC

bundler の bundle gem での test framework と CI の設定のヘルプメッセージに選択肢を全て表示するように変更。

[a476d67f35] Frank Lam 2020-05-30 09:22:34 UTC

bundler の man ページに CI 用の設定について追記。

[fedd3201f3] Frank Lam 2020-05-31 06:07:24 UTC

a476d67f3503978e6f265ed921401d3625cd2372 の bundler の man ページへの追記のオプション名間違い修正。

[091daaa715] Frank Lam 2020-05-31 06:58:16 UTC

bundle gem のメッセージを少し短くしています。

[0ba2f3e8a9] Frank Lam 2020-06-02 00:59:53 UTC

bundler で bundle gem で CI 関係の設定が設定ファイル経由で指定された時のメッセージの出力タイミングを実際に生成する時までずらしています。実際には出力されなくて結果的に出力されないというケースがあるみたい。

[f6c8ca0359] Frank Lam 2020-06-02 20:09:47 UTC

同じく bundle gem で test framework についてのメッセージを実際に生成するタイミングまで遅延しています。

[1a9a4f962e] Frank Lam 2020-06-03 14:00:17 UTC

bundler のテストで bundler のバージョンを参照するのに使ってた定数名が間違ってたのを修正。

[a1a5973daa] Frank Lam 2020-06-03 14:06:03 UTC

bundler のテストでヘルパーメソッド bundle のかわりに bundle! を使うようにしています。さっき 61b6f53337cb71b35c56d480ec6044ba7e85cb71 で bundle でエラー時に例外発生するようにしてたけど、bundle! というのもあったのでそっちを使うようにしてもよかったっぽい?

[90f3591744] Frank Lam 2020-05-30 03:29:31 UTC

bundler の bundle gem で生成する CI 用の設定ファイルで bundle install の --jobs オプションを削除(Bundler 3 で自動で job 数を決めるようになるらしい)。

[9292313e0c] Frank Lam 2020-06-02 01:08:09 UTC

bundler の bundle gem で生成する GitHub Actions 用設定で利用する setup-ruby プラグインruby/setup-ruby@v1 を使うように更新しています。

[1cb88eb2ba] Frank Lam 2020-06-02 20:02:48 UTC

bundler の bundle gem で生成する CI 用設定ファイルのテンプレートのファイル名を .travis.yml.tt に変更しています。古い travis.yml というファイルがまだ残ってますね。

[481840ff18] Frank Lam 2020-06-02 20:26:57 UTC

bundle gem で生成する CI 用設定ファイルのテンプレートでデフォルトで実行するタスクを bundle exec rake にしてタスクを明示しないようにしています。

[1436b5026c] David Rodríguez 2020-06-03 18:45:36 UTC

bundler のテストで使うヘルパーメソッド bundle で既にデフォルトでエラー時に例外発生するようにしちゃったので bundle! を使ってるところも bundle を使うように変更しています。

[696a50751b] David Rodríguez 2020-06-03 18:46:03 UTC

同じく install_gemfile! を使ってたところも既にデフォルトでエラー時に例外発生するようになってるので install_gemfile を利用するように変更しています。

[a572e78201] David Rodríguez 2020-06-03 18:46:54 UTC

同じく bundler のテストで gem_command! を使ってたところも gem_command を利用するようにしています。

[596588c697] David Rodríguez 2020-06-03 18:47:59 UTC

同じく bundler のテストのヘルパーメソッド ruby! を使ってるところも ruby を使うように変更しています。

[ea4824ee0f] David Rodríguez 2020-06-03 18:48:46 UTC

同じく bundler のテストのヘルパーメソッド run! を使ってるところも run を使うように変更しています。

[77df7ccc10] David Rodríguez 2020-06-03 18:50:27 UTC

1436b5026cd1b2ac4b428955aeadaac8e8b12b1b から ea4824ee0ffcea5fcfacfe40b4f399efe310455a までの変更で使わなくなった bundle! などの ! つきのbundler のテストのヘルパーメソッドの定義を消しています。

[9cc7847849] David Rodríguez 2020-06-03 18:46:35 UTC

先に定義を消しちゃってましたが同じく bundler のテストのヘルパーメソッド sys_exec! を使ってるところも sys_exec を使うように変更しています。

[be2dbfc5b5] Hiroshi SHIBATA 2020-06-11 13:36:58 UTC

1cb88eb2ba04a5e23f7e6827e81654e87af771ca で消し忘れてた lib/bundler/templates/newgem/travis.yml.tt を削除しています。あれー、でも今の master では存在してるな……と思ったらこのあとまた rename したみたいです。

[30f9fbdce8] David Rodríguez 2020-06-04 16:30:11 UTC

bundler の bundle install の --no-cache オプションが deprecated にされてたのを revert しています。

[f9de8ccf1e] David Rodríguez 2020-06-16 10:29:57 UTC

1cb88eb2ba04a5e23f7e6827e81654e87af771caf9de8ccf1e26c9774cd1ebdb587b8edbb08b4d7b で bundle gem で生成する .travis.yml のテンプレートファイル名変更していましたが、CI 用設定ファイルのテンプレートファイル名は先頭に "." がつかないファイル名を使うように全体的に改名しています。

[d9c888d394] Utkarsh Gupta 2020-06-16 13:37:21 UTC

bundle gem で rubocop 用の設定ファイルを生成するようにしています。

[ec98d56153] Utkarsh Gupta 2020-06-16 12:36:48 UTC

bundle gem で常に? .rubocop.yml を生成するようにしているようです。

[22ee047f73] Utkarsh Gupta 2020-06-16 13:37:21 UTC

という ec98d5615360c33fa2419b22cf2ac7d1834d9c18 (bundle gem で常に .rubocop を生成する)は revert しています。

[414b1485d6] David Rodríguez 2020-04-16 19:01:58 UTC

bundler のテストで環境変数 PATH にパスを追加するのに常に ":" で結合してたのを File::PATH_SEPARATOR を参照するようにして環境の差を吸収するようにしています。

[f217faf1da] David Rodríguez 2020-06-14 17:42:31 UTC

bundler のテストで Windows 環境で skip しているもののメッセージに説明を増やしています。

[5f8ee14b9b] David Rodríguez 2020-06-14 16:21:09 UTC

bundler のテストで Gemfile の gem の :git オプションに渡す URI としてローカルのパスを渡す時明示的に file scheme を使わせるようにしているようです。 Windows 環境ではファイルパスにドライブレターが含まれてそれを URI に渡すと scheme として解釈され得るので、ということみたいです。

[7aa6fec45f] David Rodríguez 2020-06-12 16:29:34 UTC

bundler で恒に true を返していて意味がなくなってたメソッド can_install_in_parallel? というのを削除しています。

[c5ee078c5f] David Rodríguez 2020-06-12 16:47:53 UTC

bundler で Windows 環境での bundle install の並行ジョブ実行を無効にするようにしています。