ruby-trunk-changes 2020-08-01

今日は主に rubygems の更新や GitHub Actions の mswin でのビルドのエラーの対策などがありました。

[a89665b7b1] David Rodríguez 2020-07-13 10:01:07 UTC

rubygemsソースコードの class 文の中の最初と最後の空行を削る体裁の変更。

[c3b480b776] Marc-Andre Lafortune 2020-06-25 05:58:59 UTC

ruygems の Gem::Specification#files の rdoc 用コメントのサンプルで files に test/ の配下を含めてたのが例として望ましくないということで削っています。

[e7b6e0ff58] Karol Bucek 2020-06-22 21:15:45 UTC

rubygems で autoload が設定されているので不要ということで一部 require を削っています。

[8161cf85ba] Bart de Water 2020-06-28 18:39:26 UTC

rubygems で openssl の OpenSSL::Digest の配下の定数を直接参照するのをやめ、名前で指定するようにしています。またユーティリティメソッドとして Gem::Security.create_digest というのを追加しています。

[734c5276f0] Bart de Water 2020-06-29 22:31:15 UTC

8161cf85ba4f9091176536bcac9107879e4293a1で追加した Gem::Security.create_digest を Gem::Package::TarWriter でも利用するようにリファクタリングしています。

[832fe77879] Hiroshi SHIBATA 2020-07-07 11:22:51 UTC

rubygems のバージョンを 3.2.0.rc.1 に更新しています。

[76722c4928] Jean Boussier 2020-07-06 13:18:05 UTC

rubygems の Gem.already_loaded? で $LOADED_FEATURES に default_gem_load_paths のファイルのいずれかが含まれているかの確認でループの順序を変えるのと、引数の $LOADED_FEATURES の要素が file を終端の部分文字列として持ってるかのチェックを先にすることで最適化しています。

[d5b5a7ab31] David Rodríguez 2020-07-08 16:38:01 UTC

lib/rubygems/specification.rb の不要になった TODO コメントを削除しています。

[1260d22cae] David Rodríguez 2020-07-08 16:42:47 UTC

lib/rubygems/specification.rb の処理を private なクラスメソッドに切り出すリファクタリング

[d0cc4ecb8f] David Rodríguez 2020-07-08 19:13:05 UTC

Gem::TestCase で default_test というメソッドが定義済みだったら undef するコードがもう不要みたいで削除しています。

[06f84d0567] David Rodríguez 2020-07-08 19:13:33 UTC

rubygems の Gem::TestCase の setup メソッドで super を呼び出してたのを削除しています。teardown が super してないし不要だからとのことだけど、うーん、お作法としてこれはいいのかな。

[9d6123da15] David Rodríguez 2020-07-08 18:17:33 UTC

rubygems の Gem::TestCase#new_default_spec で Gem のインスタンス変数を得るのに instance_variable_get を直接呼ばず send メソッドを使って default_gem_load_paths メソッド経由で参照するようにしています。private な attr_reader メソッドなのかな。

[14ab281faa] David Rodríguez 2020-07-08 19:14:18 UTC

rubygems の Gem::TestCase#setup で $stderr を一時ファイルへの出力に切り替えて #teardown でその内容をチェックして出力があったらエラーにするようにしています。

[331fe6a88f] Benoit Daloze 2020-07-10 19:51:45 UTC

rubygems による Kernel#warn の上書きで uplevel キーワード引数による警告位置として表示するファイル位置を調整する時に rubygems のパスを無視させるようにしています。しかしこれ rubygems のコード内で warn 呼んだらおかしくなるのでは。

[1a935606b5] Jeremy Evans 2020-07-24 15:09:50 UTC

331fe6a88f96d9f986da55e003e896c2bc181db0 の再修正。スタックフレームにファイルパスが取れない(nil)のケースもあるのでそれを考慮するようにしています。

[561576367b] Jean Boussier 2020-07-23 13:11:24 UTC

rubygems の Gem::Requirement.parse でバージョン指定の "=" とか "~>" などの文字列を String#-@ メソッドで fstrng 化するように最適化しています。

[65a4b03781] Colby Swandale 2020-07-28 12:21:48 UTC

lib/rubygems/commands/environment_command.rb のインデントの修正のみ。

[c090c64b4f] David Rodríguez 2020-07-14 11:16:09 UTC

rubygems の installer の Windows 対応で File::SEPARATOR と File::ALT_SEPARATOR の置換の間違ってたところを修正。

[04d3e0727a] David Rodríguez 2020-07-14 11:40:27 UTC

c090c64b4faa429c9f0f7c361e932e6b1a960a3d の追加修正で後置 if の条件を改行して次の行に書いてたのをやめています。

[985309ac38] David Rodríguez 2020-07-14 11:16:34 UTC

rubygems の instraller File::ALT_SEPARATOR と File::SEPARATOR を置換する対応をさらに環境変数 PATH の内容についても行なうようにしています。

[00bdac18cf] bronzdoc 2020-07-29 04:15:09 UTC

rubygems にで依存関係に重複があった時に警告を出力するようにしています。

[db2047ebaf] Nobuyoshi Nakada 2020-07-25 03:15:22 UTC

rubygems のテストで MinGW で Encoding がらみで失敗するものの対応のため一部文字列を String#b で ASCII-8BIT に変換しています。

[ed3794495d] David Rodríguez 2020-06-29 16:37:10 UTC

rubygems のテストで環境変数 TEST_SSL がセットされている時だけ実行するようにされていたテストの分岐の条件を削除しています。

[d3efba0950] David Rodríguez 2020-06-29 16:37:55 UTC

ed3794495d524d64cf0d25d7485c7fde628bd787 の続き。さらに環境変数 CI が設定されていないとテストされないようになってたのを削除して常に実行するようにしています。

[b84b4e8bfa] David Rodríguez 2020-07-11 08:04:39 UTC

lib/rubygems/commands/cert_command.rb で require "openssl" してたのが不要とのことで削除しています。

[9ad9c2d9c3] David Rodríguez 2020-07-11 10:19:51 UTC

rubygems の Gem::Request.configure_connection_for_https で LoadError を rescue して Gem::Exception を投げなおしていたのをやめています。

[0a7f12fcc6] David Rodríguez 2020-07-11 10:20:43 UTC

rubygems の Gem::Request.configure_connection_for_https メソッド内で require 'net/https' してたのを削除して require 'openssl' に変更しています。このメソッド内で直接参照してたのは openssl のほうだったので。

[07dc9691a8] David Rodríguez 2020-07-11 10:21:13 UTC

bundler のテスト spec/bundler/support/artifice/fail.rb で require 'net/https' してたのを削除して test/rubygems/test_bundled_ca.rb の require "net/https" も "net/http" に変更しています。コミットログは typo かな?

[6b14249c98] David Rodríguez 2020-06-29 16:40:34 UTC

lib/rubygems/security.rb で LoadError を処理しているところで LoadError#path メソッドがない古いバージョンも考慮していた分岐を削除しています。

[69fa0d6d30] David Rodríguez 2020-07-11 08:10:16 UTC

rubygems で require "openssl" して LoadError を処理している処理を lib/rubygems/openssl.rb に切り出して、このファイルを require_relative で読み込むようにしています。

[34527927e8] David Rodríguez 2020-07-11 08:47:42 UTC

rubygems のテストで OpenSSL::Digest の参照が残ってたのを削除しています。

[779f1a9c69] David Rodríguez 2020-07-11 08:48:52 UTC

rubygems のテストの expected データのリテラルの書きかたをちょっと変更。

[e1494145d9] David Rodríguez 2020-06-29 16:42:29 UTC

69fa0d6d30adc876858a9bbc5baddbc9f643b9c7 で切り出した lib/rubygems/openssl.rb を他の場所でも利用するようにしています。

[6608bc77b6] David Rodríguez 2020-06-29 19:16:41 UTC

rubygems のテストで e1494145d9725dba217fbc2bd9645db011fab946 で openssl がロードできてなかった時の警告メッセージの typo 修正。

[ea8f7d4a81] David Rodríguez 2020-06-29 16:43:40 UTC

e1494145d9725dba217fbc2bd9645db011fab946 で lib/rubygems/openssl.rb を読み込むのに require "rubygems/openssl" としていたのを require_relative を使うように変更しています。

[6eb89f8637] David Rodríguez 2020-07-11 09:16:19 UTC

lib/bundler/vendored_persistent.rb で require "openssl" していたのを削除しています。もう不要とのこと。

[9057e9c7b1] David Rodríguez 2020-07-11 09:16:47 UTC

lib/rubygems/security/policy.rb でも require "openssl" していたのを不要として削除しています。

[69881a41f2] David Rodríguez 2020-07-11 09:08:35 UTC

rubygems を openssl が存在しない状態でテスト実行するための util/remove_openssl.rb というツールを追加しています。

[1b2bda72fc] David Rodríguez 2020-07-12 10:35:57 UTC

69881a41f22e6d76ce23c97e7026783ea8f2d07c で追加した util/remove_openssl.rb の機能強化。 --revert というオプションをつけると元に戻せるようにしています。

[6c71033ac3] David Rodríguez 2020-07-01 09:45:33 UTC

rubygems 内で "rubygems/util" を require してるところを削除。 autoload 設定しているからとのこと。

[ebf008b9ae] Nobuyoshi Nakada 2020-07-09 14:38:34 UTC

rubygems の Gem::Installer.new でインスタンス変数 @plugins_dir を初期化するようにしています。 --user オプションつきの時に plugin のインストール先を追随させるためだそうです。

[3921ab8291] David Rodríguez 2020-07-12 20:18:01 UTC

rubygems の Gem::Package#verify_entry で例外を rescue して Gem::Package::FormatError 例外として投げなおしてたのをやめ、警告を出して元の例外をそのまま再 raise するようにしています。

[fedaa61b3f] David Rodríguez 2020-07-01 07:38:29 UTC

rubygems 内で require 'rubygems/source' を削除。 autoload 設定されているからとのこと。

[fe53e5a9f3] David Rodríguez 2020-07-02 13:11:18 UTC

rubygems 内で独自に FileUtils に autoload 設定をしていたのをやめて、明示的に require するようにしています。

[a9b044e97b] David Rodríguez 2020-07-15 06:38:08 UTC

rubygems のテストで例外メッセージを Gem.default_exec_format というフォーマット文字列を使って整形していたところをいくつかやめています。このフォーマット文字列による変形を既にやめているからみたいですね。

[e6be06e4ef] David Rodríguez 2020-07-22 16:44:59 UTC

rubygems の Gem::GemRunner のテストの setup/teardown で Gem::Command.extra_args のバックアップと復元を行うようにしています。

[e0bfc77824] David Rodríguez 2020-07-08 09:13:37 UTC

rubygems の Gem.load_yaml メソッド内で gem メソッドが存在するか defined? でチェックしていたのがもう不要とのことで削除しています。

[aa4ecfe7f7] David Rodríguez 2020-07-11 06:52:20 UTC

14ab281faa7f740afd41ce4b43b00edb73eff990rubygems の Gem::TestCase で全テストの $stderr への出力をファイルにすりかえて、出力があったらエラーにするのを revert しています。かなり厳しい制約だからチェックのために導入して、確認できたから消すのかなと思いましたが、一部環境で警告が消しきれなかったからやめたということみたいです。

[0e2d8c487c] Hiroshi SHIBATA 2020-07-31 05:02:42 UTC

rubygems のテストで XDG_CACHE_HOME、XDG_CACHE_HOME、XDG_CACHE_HOME などの環境変数の影響を受けて実行しているユーザーの環境を変更してしまわないように Gem::TestCase#setup でこれらの環境変数を消すようにしています。

[b7e88e3c2f] David Rodríguez 2020-07-10 20:11:13 UTC

rubygems の Gem::Commands::SetupCommand.new で継承元の Gem::Command の initialize のオプション :format_executable に false を渡すように変更しています。a9b044e97b710a30f0598b6f85da29217471f030 でテストのほうを変更していた Gem.default_exec_format を使わないようにしていたのと関係ありそうですね。

[cba805536e] David Rodríguez 2020-07-11 07:32:56 UTC

test/rubygems/test_gem_commands_build_command.rb の先頭の空行を削除。どうやら RuboCop が警告するみたいですね。

[f80020bc50] David Rodríguez 2020-06-25 09:43:41 UTC

rubygems のテスト用ユーティリティの Gem::FakeFetcher の find_data メソッドでファイルを読み込むのに File.read を使ってたのを Gem.read_binary に変更しています。 Windows でのテストエラー対策みたいです。

[eebb1de7c1] Burdette Lamar 2020-08-01 02:29:34 UTC

Array の rdoc 用コメントのサンプルの強化など。

[d3d6872919] git 2020-08-01 02:29:53 UTC

version.h の日付更新

[32bec658c1] Nobuyoshi Nakada 2020-08-01 05:15:25 UTC

GitHub Actions で CodeQL によるチェックを行う workflow .github/workflows/codeql-analysis.yml で /usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb というファイルを削除しておくようにしています。よくわかりませんがこれが悪さをするようです。

[b6e6807993] Nobuyoshi Nakada 2020-08-01 05:48:04 UTC

1b1ea7b3bc9484e6e59d716fce2965a2f39d1e3d の Array#flaten, #flatten! の変更の再修正。 array.c の flatten() で変数 memo を 0 で初期化して level の符号チェックで分岐していたところを memo のチェックで代替するようにしています。 gcc 7以降での警告? 抑制のためみたいです。

[e8ce9dfaf4] Nobuyoshi Nakada 2020-08-01 08:58:24 UTC

symbol.c の関数 enc_synmane_type_leading_chars() の引数 enc の型から const 修飾子を削除しています。型の rb_encoding 自体が const を含んでいるので不要だったとのこと。

[bf758ef8b4] MSP-Greg 2020-07-30 19:23:23 UTC

GitHub Actions の mswin でのビルドで zlib のインストールに vcpkg を使うのをやめて zlib.net から直接パッケージをダウンロードして展開するようにしています。

[b6175c9e4f] Nobuyoshi Nakada 2020-08-01 08:51:42 UTC

bf758ef8b4e2895bf71a611a7ab2a4f236e260ea の mswin 版の GitHub Actions でのビルドの変更の追加変更。 zlib の独自のインストールのアクションをソースコードのチェックアウト後に行うように移動しています。展開する位置がソースディレクトリの ext/zlib の配下なので。