[ruby-core:113601] [Ruby master Bug#19687] Should a development version of the standard library be included in ruby/ruby?

Issue #19687 has been reported by jaruga (Jun Aruga). ---------------------------------------- Bug #19687: Should a development version of the standard library be included in ruby/ruby? https://bugs.ruby-lang.org/issues/19687 * Author: jaruga (Jun Aruga) * Status: Open * Priority: Normal * ruby -v: ruby 3.3.0dev (2023-05-22T03:58:17Z master bd786e7896) [x86_64-linux] * Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN ---------------------------------------- The `stringio` gem uses the value of the `STRINGIO_VERSION` as the gem version. https://github.com/ruby/ruby/blob/31ac8efca8ecb574e1e7b7c32cce54cb1b97f19a/e... https://github.com/ruby/ruby/blob/31ac8efca8ecb574e1e7b7c32cce54cb1b97f19a/e... ``` #define STRINGIO_VERSION "3.0.7" ``` It seems that that `stringio` on the current master branch in ruby/ruby sets the version 3.0.7 that doesn't exist in the RubyGems <https://rubygems.org/gems/stringio> by the commit <https://github.com/ruby/ruby/commit/67743d582317544d2c830b63d3423b04bad185a7>. And I see that this causes raising an error when running `bundle install` on ruby/openssl with Ruby on the master branch. I captured the `Gemeifile.lock` by `bundle lock`. And I see the `rdoc` depending on `psych` depending on `stringio`. The workaround was to add `gem "stringio", "< 3.0.7"` to the `Gemfile`. However, it's not convenient. Is it an expected behavior? Or should the ruby/ruby always merge the static version of the ruby/* (upstream standard libraries such as "stringio") rater than the development version? ``` $ which ruby ~/.local/ruby-bd786e7896/bin/ruby $ ruby -v ruby 3.3.0dev (2023-05-22T03:58:17Z master bd786e7896) [x86_64-linux] $ pwd /home/jaruga/git/ruby/openssl $ bundle install --standalone ... stringio-3.0.7 is built in to Ruby, and can't be cached because your Gemfile doesn't have any sources that contain it. ... Bundler::GemNotFound: Could not find stringio-3.0.7.gem for installation /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/source/rubygems.rb:157:in `install' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/gem_installer.rb:54:in `install' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/gem_installer.rb:16:in `install_from_spec' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/parallel_installer.rb:156:in `do_install' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/parallel_installer.rb:147:in `block in worker_pool' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:62:in `apply_func' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:57:in `block in process_queue' <internal:kernel>:187:in `loop' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:54:in `process_queue' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:90:in `block (2 levels) in create_threads' An error occurred while installing stringio (3.0.7), and Bundler cannot continue. ``` -- https://bugs.ruby-lang.org/

Issue #19687 has been updated by kou (Kouhei Sutou). Status changed from Open to Feedback Assignee set to kou (Kouhei Sutou) I couldn't reproduce this. stringio is a default gem. So I think that `make install` also installs stringio 3.0.7 as a gem. Could you show the output of `gem list | grep stringio`? ---------------------------------------- Bug #19687: Should a development version of the standard library be included in ruby/ruby? https://bugs.ruby-lang.org/issues/19687#change-103247 * Author: jaruga (Jun Aruga) * Status: Feedback * Priority: Normal * Assignee: kou (Kouhei Sutou) * ruby -v: ruby 3.3.0dev (2023-05-22T03:58:17Z master bd786e7896) [x86_64-linux] * Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN ---------------------------------------- The `stringio` gem uses the value of the `STRINGIO_VERSION` as the gem version. https://github.com/ruby/ruby/blob/31ac8efca8ecb574e1e7b7c32cce54cb1b97f19a/e... https://github.com/ruby/ruby/blob/31ac8efca8ecb574e1e7b7c32cce54cb1b97f19a/e... ``` #define STRINGIO_VERSION "3.0.7" ``` It seems that that `stringio` on the current master branch in ruby/ruby sets the version 3.0.7 that doesn't exist in the RubyGems <https://rubygems.org/gems/stringio> by the commit <https://github.com/ruby/ruby/commit/67743d582317544d2c830b63d3423b04bad185a7>. And I see that this causes raising an error when running `bundle install` on ruby/openssl with Ruby on the master branch. I captured the `Gemeifile.lock` by `bundle lock`. And I see the `rdoc` depending on `psych` depending on `stringio`. The workaround was to add `gem "stringio", "< 3.0.7"` to the `Gemfile`. However, it's not convenient. Is it an expected behavior? Or should the ruby/ruby always merge the static version of the ruby/* (upstream standard libraries such as "stringio") rater than the development version? ``` $ which ruby ~/.local/ruby-bd786e7896/bin/ruby $ ruby -v ruby 3.3.0dev (2023-05-22T03:58:17Z master bd786e7896) [x86_64-linux] $ pwd /home/jaruga/git/ruby/openssl $ bundle install --standalone ... stringio-3.0.7 is built in to Ruby, and can't be cached because your Gemfile doesn't have any sources that contain it. ... Bundler::GemNotFound: Could not find stringio-3.0.7.gem for installation /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/source/rubygems.rb:157:in `install' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/gem_installer.rb:54:in `install' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/gem_installer.rb:16:in `install_from_spec' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/parallel_installer.rb:156:in `do_install' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/parallel_installer.rb:147:in `block in worker_pool' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:62:in `apply_func' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:57:in `block in process_queue' <internal:kernel>:187:in `loop' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:54:in `process_queue' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:90:in `block (2 levels) in create_threads' An error occurred while installing stringio (3.0.7), and Bundler cannot continue. ``` -- https://bugs.ruby-lang.org/

Issue #19687 has been updated by jaruga (Jun Aruga).
Could you show the output of gem list | grep stringio?
Sure. Below is the result. ``` $ which gem ~/.local/ruby-bd786e7896/bin/gem $ gem list | grep stringio stringio (default: 3.0.7) ``` I was able to reproduce this on the latest master branch `78e9197f4a01676ab194d014d20c3ba4e9a1ee87` in the ruby/opnessl. ``` $ git remote -v | grep origin origin git@github.com:ruby/openssl.git (fetch) origin git@github.com:ruby/openssl.git (push) $ git log --pretty=oneline | head -1 78e9197f4a01676ab194d014d20c3ba4e9a1ee87 Merge pull request #623 from junaruga/wip/enable-mkmf-verbose $ bundle install --standalone Fetching gem metadata from https://rubygems.org/......... Resolving dependencies... Fetching rake 13.0.6 Installing rake 13.0.6 Using bundler 2.5.0.dev Using openssl 3.1.0 from source at `.` Fetching power_assert 2.0.3 stringio-3.0.7 is built in to Ruby, and can't be cached because your Gemfile doesn't have any sources that contain it. Fetching rake-compiler 1.2.1 Installing power_assert 2.0.3 Fetching test-unit 3.5.8 Installing rake-compiler 1.2.1 Installing test-unit 3.5.8 Bundler::GemNotFound: Could not find stringio-3.0.7.gem for installation /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/source/rubygems.rb:157:in `install' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/gem_installer.rb:54:in `install' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/gem_installer.rb:16:in `install_from_spec' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/parallel_installer.rb:156:in `do_install' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/parallel_installer.rb:147:in `block in worker_pool' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:62:in `apply_func' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:57:in `block in process_queue' <internal:kernel>:187:in `loop' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:54:in `process_queue' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:90:in `block (2 levels) in create_threads' An error occurred while installing stringio (3.0.7), and Bundler cannot continue. In Gemfile: rdoc was resolved to 6.5.0, which depends on psych was resolved to 5.1.0, which depends on stringio ``` ---------------------------------------- Bug #19687: Should a development version of the standard library be included in ruby/ruby? https://bugs.ruby-lang.org/issues/19687#change-103253 * Author: jaruga (Jun Aruga) * Status: Feedback * Priority: Normal * Assignee: kou (Kouhei Sutou) * ruby -v: ruby 3.3.0dev (2023-05-22T03:58:17Z master bd786e7896) [x86_64-linux] * Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN ---------------------------------------- The `stringio` gem uses the value of the `STRINGIO_VERSION` as the gem version. https://github.com/ruby/ruby/blob/31ac8efca8ecb574e1e7b7c32cce54cb1b97f19a/e... https://github.com/ruby/ruby/blob/31ac8efca8ecb574e1e7b7c32cce54cb1b97f19a/e... ``` #define STRINGIO_VERSION "3.0.7" ``` It seems that that `stringio` on the current master branch in ruby/ruby sets the version 3.0.7 that doesn't exist in the RubyGems <https://rubygems.org/gems/stringio> by the commit <https://github.com/ruby/ruby/commit/67743d582317544d2c830b63d3423b04bad185a7>. And I see that this causes raising an error when running `bundle install` on ruby/openssl with Ruby on the master branch. I captured the `Gemeifile.lock` by `bundle lock`. And I see the `rdoc` depending on `psych` depending on `stringio`. The workaround was to add `gem "stringio", "< 3.0.7"` to the `Gemfile`. However, it's not convenient. Is it an expected behavior? Or should the ruby/ruby always merge the static version of the ruby/* (upstream standard libraries such as "stringio") rater than the development version? ``` $ which ruby ~/.local/ruby-bd786e7896/bin/ruby $ ruby -v ruby 3.3.0dev (2023-05-22T03:58:17Z master bd786e7896) [x86_64-linux] $ pwd /home/jaruga/git/ruby/openssl $ bundle install --standalone ... stringio-3.0.7 is built in to Ruby, and can't be cached because your Gemfile doesn't have any sources that contain it. ... Bundler::GemNotFound: Could not find stringio-3.0.7.gem for installation /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/source/rubygems.rb:157:in `install' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/gem_installer.rb:54:in `install' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/gem_installer.rb:16:in `install_from_spec' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/parallel_installer.rb:156:in `do_install' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/parallel_installer.rb:147:in `block in worker_pool' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:62:in `apply_func' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:57:in `block in process_queue' <internal:kernel>:187:in `loop' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:54:in `process_queue' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:90:in `block (2 levels) in create_threads' An error occurred while installing stringio (3.0.7), and Bundler cannot continue. ``` -- https://bugs.ruby-lang.org/

Issue #19687 has been updated by kou (Kouhei Sutou). Ah, sorry. I missed that you use the `--standalone` option. Can you remove the `--standalone` option? ---------------------------------------- Bug #19687: Should a development version of the standard library be included in ruby/ruby? https://bugs.ruby-lang.org/issues/19687#change-103256 * Author: jaruga (Jun Aruga) * Status: Feedback * Priority: Normal * Assignee: kou (Kouhei Sutou) * ruby -v: ruby 3.3.0dev (2023-05-22T03:58:17Z master bd786e7896) [x86_64-linux] * Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN ---------------------------------------- The `stringio` gem uses the value of the `STRINGIO_VERSION` as the gem version. https://github.com/ruby/ruby/blob/31ac8efca8ecb574e1e7b7c32cce54cb1b97f19a/e... https://github.com/ruby/ruby/blob/31ac8efca8ecb574e1e7b7c32cce54cb1b97f19a/e... ``` #define STRINGIO_VERSION "3.0.7" ``` It seems that that `stringio` on the current master branch in ruby/ruby sets the version 3.0.7 that doesn't exist in the RubyGems <https://rubygems.org/gems/stringio> by the commit <https://github.com/ruby/ruby/commit/67743d582317544d2c830b63d3423b04bad185a7>. And I see that this causes raising an error when running `bundle install` on ruby/openssl with Ruby on the master branch. I captured the `Gemeifile.lock` by `bundle lock`. And I see the `rdoc` depending on `psych` depending on `stringio`. The workaround was to add `gem "stringio", "< 3.0.7"` to the `Gemfile`. However, it's not convenient. Is it an expected behavior? Or should the ruby/ruby always merge the static version of the ruby/* (upstream standard libraries such as "stringio") rater than the development version? ``` $ which ruby ~/.local/ruby-bd786e7896/bin/ruby $ ruby -v ruby 3.3.0dev (2023-05-22T03:58:17Z master bd786e7896) [x86_64-linux] $ pwd /home/jaruga/git/ruby/openssl $ bundle install --standalone ... stringio-3.0.7 is built in to Ruby, and can't be cached because your Gemfile doesn't have any sources that contain it. ... Bundler::GemNotFound: Could not find stringio-3.0.7.gem for installation /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/source/rubygems.rb:157:in `install' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/gem_installer.rb:54:in `install' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/gem_installer.rb:16:in `install_from_spec' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/parallel_installer.rb:156:in `do_install' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/parallel_installer.rb:147:in `block in worker_pool' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:62:in `apply_func' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:57:in `block in process_queue' <internal:kernel>:187:in `loop' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:54:in `process_queue' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:90:in `block (2 levels) in create_threads' An error occurred while installing stringio (3.0.7), and Bundler cannot continue. ``` -- https://bugs.ruby-lang.org/

Issue #19687 has been updated by jaruga (Jun Aruga). kou (Kouhei Sutou) wrote in #note-3:
Ah, sorry. I missed that you use the `--standalone` option. Can you remove the `--standalone` option?
Yes, okay. Yeah, it works with `bundle install` without `--standalone` option. ``` $ bundle install Fetching gem metadata from https://rubygems.org/......... Resolving dependencies... Using rake 13.0.6 Using openssl 3.1.0 from source at `.` Using power_assert 2.0.3 Using stringio 3.0.7 Fetching rake-compiler 1.2.1 Using bundler 2.5.0.dev Using test-unit 3.5.8 Using psych 5.1.0 Using rdoc 6.5.0 Installing rake-compiler 1.2.1 Bundle complete! 5 Gemfile dependencies, 9 gems now installed. Use `bundle info [gemname]` to see where a bundled gem is installed. ``` ---------------------------------------- Bug #19687: Should a development version of the standard library be included in ruby/ruby? https://bugs.ruby-lang.org/issues/19687#change-103257 * Author: jaruga (Jun Aruga) * Status: Feedback * Priority: Normal * Assignee: kou (Kouhei Sutou) * ruby -v: ruby 3.3.0dev (2023-05-22T03:58:17Z master bd786e7896) [x86_64-linux] * Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN ---------------------------------------- The `stringio` gem uses the value of the `STRINGIO_VERSION` as the gem version. https://github.com/ruby/ruby/blob/31ac8efca8ecb574e1e7b7c32cce54cb1b97f19a/e... https://github.com/ruby/ruby/blob/31ac8efca8ecb574e1e7b7c32cce54cb1b97f19a/e... ``` #define STRINGIO_VERSION "3.0.7" ``` It seems that that `stringio` on the current master branch in ruby/ruby sets the version 3.0.7 that doesn't exist in the RubyGems <https://rubygems.org/gems/stringio> by the commit <https://github.com/ruby/ruby/commit/67743d582317544d2c830b63d3423b04bad185a7>. And I see that this causes raising an error when running `bundle install` on ruby/openssl with Ruby on the master branch. I captured the `Gemeifile.lock` by `bundle lock`. And I see the `rdoc` depending on `psych` depending on `stringio`. The workaround was to add `gem "stringio", "< 3.0.7"` to the `Gemfile`. However, it's not convenient. Is it an expected behavior? Or should the ruby/ruby always merge the static version of the ruby/* (upstream standard libraries such as "stringio") rater than the development version? ``` $ which ruby ~/.local/ruby-bd786e7896/bin/ruby $ ruby -v ruby 3.3.0dev (2023-05-22T03:58:17Z master bd786e7896) [x86_64-linux] $ pwd /home/jaruga/git/ruby/openssl $ bundle install --standalone ... stringio-3.0.7 is built in to Ruby, and can't be cached because your Gemfile doesn't have any sources that contain it. ... Bundler::GemNotFound: Could not find stringio-3.0.7.gem for installation /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/source/rubygems.rb:157:in `install' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/gem_installer.rb:54:in `install' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/gem_installer.rb:16:in `install_from_spec' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/parallel_installer.rb:156:in `do_install' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/parallel_installer.rb:147:in `block in worker_pool' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:62:in `apply_func' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:57:in `block in process_queue' <internal:kernel>:187:in `loop' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:54:in `process_queue' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:90:in `block (2 levels) in create_threads' An error occurred while installing stringio (3.0.7), and Bundler cannot continue. ``` -- https://bugs.ruby-lang.org/

Issue #19687 has been updated by kou (Kouhei Sutou). Can we close this? ---------------------------------------- Bug #19687: Should a development version of the standard library be included in ruby/ruby? https://bugs.ruby-lang.org/issues/19687#change-103258 * Author: jaruga (Jun Aruga) * Status: Feedback * Priority: Normal * Assignee: kou (Kouhei Sutou) * ruby -v: ruby 3.3.0dev (2023-05-22T03:58:17Z master bd786e7896) [x86_64-linux] * Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN ---------------------------------------- The `stringio` gem uses the value of the `STRINGIO_VERSION` as the gem version. https://github.com/ruby/ruby/blob/31ac8efca8ecb574e1e7b7c32cce54cb1b97f19a/e... https://github.com/ruby/ruby/blob/31ac8efca8ecb574e1e7b7c32cce54cb1b97f19a/e... ``` #define STRINGIO_VERSION "3.0.7" ``` It seems that that `stringio` on the current master branch in ruby/ruby sets the version 3.0.7 that doesn't exist in the RubyGems <https://rubygems.org/gems/stringio> by the commit <https://github.com/ruby/ruby/commit/67743d582317544d2c830b63d3423b04bad185a7>. And I see that this causes raising an error when running `bundle install` on ruby/openssl with Ruby on the master branch. I captured the `Gemeifile.lock` by `bundle lock`. And I see the `rdoc` depending on `psych` depending on `stringio`. The workaround was to add `gem "stringio", "< 3.0.7"` to the `Gemfile`. However, it's not convenient. Is it an expected behavior? Or should the ruby/ruby always merge the static version of the ruby/* (upstream standard libraries such as "stringio") rater than the development version? ``` $ which ruby ~/.local/ruby-bd786e7896/bin/ruby $ ruby -v ruby 3.3.0dev (2023-05-22T03:58:17Z master bd786e7896) [x86_64-linux] $ pwd /home/jaruga/git/ruby/openssl $ bundle install --standalone ... stringio-3.0.7 is built in to Ruby, and can't be cached because your Gemfile doesn't have any sources that contain it. ... Bundler::GemNotFound: Could not find stringio-3.0.7.gem for installation /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/source/rubygems.rb:157:in `install' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/gem_installer.rb:54:in `install' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/gem_installer.rb:16:in `install_from_spec' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/parallel_installer.rb:156:in `do_install' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/parallel_installer.rb:147:in `block in worker_pool' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:62:in `apply_func' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:57:in `block in process_queue' <internal:kernel>:187:in `loop' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:54:in `process_queue' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:90:in `block (2 levels) in create_threads' An error occurred while installing stringio (3.0.7), and Bundler cannot continue. ``` -- https://bugs.ruby-lang.org/

Issue #19687 has been updated by jaruga (Jun Aruga).
Can we close this?
Why do you think so? I want to know the opinions for the following questions I wrote for the topic title and content. What are your opinions for the questions? 1. Is it an expected behavior? 2. Should a development version of the standard library be included in ruby/ruby? = Should the ruby/ruby always merge the static version of the ruby/* (upstream standard libraries such as "stringio") rater than the development version? ---------------------------------------- Bug #19687: Should a development version of the standard library be included in ruby/ruby? https://bugs.ruby-lang.org/issues/19687#change-103260 * Author: jaruga (Jun Aruga) * Status: Feedback * Priority: Normal * Assignee: kou (Kouhei Sutou) * ruby -v: ruby 3.3.0dev (2023-05-22T03:58:17Z master bd786e7896) [x86_64-linux] * Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN ---------------------------------------- The `stringio` gem uses the value of the `STRINGIO_VERSION` as the gem version. https://github.com/ruby/ruby/blob/31ac8efca8ecb574e1e7b7c32cce54cb1b97f19a/e... https://github.com/ruby/ruby/blob/31ac8efca8ecb574e1e7b7c32cce54cb1b97f19a/e... ``` #define STRINGIO_VERSION "3.0.7" ``` It seems that that `stringio` on the current master branch in ruby/ruby sets the version 3.0.7 that doesn't exist in the RubyGems <https://rubygems.org/gems/stringio> by the commit <https://github.com/ruby/ruby/commit/67743d582317544d2c830b63d3423b04bad185a7>. And I see that this causes raising an error when running `bundle install` on ruby/openssl with Ruby on the master branch. I captured the `Gemeifile.lock` by `bundle lock`. And I see the `rdoc` depending on `psych` depending on `stringio`. The workaround was to add `gem "stringio", "< 3.0.7"` to the `Gemfile`. However, it's not convenient. Is it an expected behavior? Or should the ruby/ruby always merge the static version of the ruby/* (upstream standard libraries such as "stringio") rater than the development version? ``` $ which ruby ~/.local/ruby-bd786e7896/bin/ruby $ ruby -v ruby 3.3.0dev (2023-05-22T03:58:17Z master bd786e7896) [x86_64-linux] $ pwd /home/jaruga/git/ruby/openssl $ bundle install --standalone ... stringio-3.0.7 is built in to Ruby, and can't be cached because your Gemfile doesn't have any sources that contain it. ... Bundler::GemNotFound: Could not find stringio-3.0.7.gem for installation /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/source/rubygems.rb:157:in `install' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/gem_installer.rb:54:in `install' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/gem_installer.rb:16:in `install_from_spec' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/parallel_installer.rb:156:in `do_install' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/parallel_installer.rb:147:in `block in worker_pool' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:62:in `apply_func' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:57:in `block in process_queue' <internal:kernel>:187:in `loop' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:54:in `process_queue' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:90:in `block (2 levels) in create_threads' An error occurred while installing stringio (3.0.7), and Bundler cannot continue. ``` -- https://bugs.ruby-lang.org/

Issue #19687 has been updated by kou (Kouhei Sutou).
Can we close this?
Why do you think so?
Because your `bundle install` problem was solved.
1. Is it an expected behavior?
Yes.
2. Should a development version of the standard library be included in ruby/ruby? = Should the ruby/ruby always merge the static version of the ruby/* (upstream standard libraries such as "stringio") rater than the development version?
I don't think "should". I think "may". I think that there is no problem that ruby/ruby includes not released ruby/*. ---------------------------------------- Bug #19687: Should a development version of the standard library be included in ruby/ruby? https://bugs.ruby-lang.org/issues/19687#change-103261 * Author: jaruga (Jun Aruga) * Status: Feedback * Priority: Normal * Assignee: kou (Kouhei Sutou) * ruby -v: ruby 3.3.0dev (2023-05-22T03:58:17Z master bd786e7896) [x86_64-linux] * Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN ---------------------------------------- The `stringio` gem uses the value of the `STRINGIO_VERSION` as the gem version. https://github.com/ruby/ruby/blob/31ac8efca8ecb574e1e7b7c32cce54cb1b97f19a/e... https://github.com/ruby/ruby/blob/31ac8efca8ecb574e1e7b7c32cce54cb1b97f19a/e... ``` #define STRINGIO_VERSION "3.0.7" ``` It seems that that `stringio` on the current master branch in ruby/ruby sets the version 3.0.7 that doesn't exist in the RubyGems <https://rubygems.org/gems/stringio> by the commit <https://github.com/ruby/ruby/commit/67743d582317544d2c830b63d3423b04bad185a7>. And I see that this causes raising an error when running `bundle install` on ruby/openssl with Ruby on the master branch. I captured the `Gemeifile.lock` by `bundle lock`. And I see the `rdoc` depending on `psych` depending on `stringio`. The workaround was to add `gem "stringio", "< 3.0.7"` to the `Gemfile`. However, it's not convenient. Is it an expected behavior? Or should the ruby/ruby always merge the static version of the ruby/* (upstream standard libraries such as "stringio") rater than the development version? ``` $ which ruby ~/.local/ruby-bd786e7896/bin/ruby $ ruby -v ruby 3.3.0dev (2023-05-22T03:58:17Z master bd786e7896) [x86_64-linux] $ pwd /home/jaruga/git/ruby/openssl $ bundle install --standalone ... stringio-3.0.7 is built in to Ruby, and can't be cached because your Gemfile doesn't have any sources that contain it. ... Bundler::GemNotFound: Could not find stringio-3.0.7.gem for installation /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/source/rubygems.rb:157:in `install' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/gem_installer.rb:54:in `install' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/gem_installer.rb:16:in `install_from_spec' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/parallel_installer.rb:156:in `do_install' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/parallel_installer.rb:147:in `block in worker_pool' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:62:in `apply_func' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:57:in `block in process_queue' <internal:kernel>:187:in `loop' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:54:in `process_queue' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:90:in `block (2 levels) in create_threads' An error occurred while installing stringio (3.0.7), and Bundler cannot continue. ``` -- https://bugs.ruby-lang.org/

Issue #19687 has been updated by jaruga (Jun Aruga). Status changed from Feedback to Closed Sure. Thanks for your opinions. So, my opinion for this situation is below.
2. Should a development version of the standard library be included in ruby/ruby? = Should the ruby/ruby always merge the static version of the ruby/* (upstream standard libraries such as "stringio") rater than the development version?
Yes, it should or may happen. And it's not a problem for users. Because in the Ruby development version, that `bundle install --standalone` may not work due to the development version of the standard libraries that don't exist in RubyGems. However, users can still use the `bundle install` without `--standalone` option as a workaround, while it's not the exact replacement. So, I think we can close this ticket. And thank you for checking my issue. ---------------------------------------- Bug #19687: Should a development version of the standard library be included in ruby/ruby? https://bugs.ruby-lang.org/issues/19687#change-103262 * Author: jaruga (Jun Aruga) * Status: Closed * Priority: Normal * Assignee: kou (Kouhei Sutou) * ruby -v: ruby 3.3.0dev (2023-05-22T03:58:17Z master bd786e7896) [x86_64-linux] * Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN ---------------------------------------- The `stringio` gem uses the value of the `STRINGIO_VERSION` as the gem version. https://github.com/ruby/ruby/blob/31ac8efca8ecb574e1e7b7c32cce54cb1b97f19a/e... https://github.com/ruby/ruby/blob/31ac8efca8ecb574e1e7b7c32cce54cb1b97f19a/e... ``` #define STRINGIO_VERSION "3.0.7" ``` It seems that that `stringio` on the current master branch in ruby/ruby sets the version 3.0.7 that doesn't exist in the RubyGems <https://rubygems.org/gems/stringio> by the commit <https://github.com/ruby/ruby/commit/67743d582317544d2c830b63d3423b04bad185a7>. And I see that this causes raising an error when running `bundle install` on ruby/openssl with Ruby on the master branch. I captured the `Gemeifile.lock` by `bundle lock`. And I see the `rdoc` depending on `psych` depending on `stringio`. The workaround was to add `gem "stringio", "< 3.0.7"` to the `Gemfile`. However, it's not convenient. Is it an expected behavior? Or should the ruby/ruby always merge the static version of the ruby/* (upstream standard libraries such as "stringio") rater than the development version? ``` $ which ruby ~/.local/ruby-bd786e7896/bin/ruby $ ruby -v ruby 3.3.0dev (2023-05-22T03:58:17Z master bd786e7896) [x86_64-linux] $ pwd /home/jaruga/git/ruby/openssl $ bundle install --standalone ... stringio-3.0.7 is built in to Ruby, and can't be cached because your Gemfile doesn't have any sources that contain it. ... Bundler::GemNotFound: Could not find stringio-3.0.7.gem for installation /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/source/rubygems.rb:157:in `install' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/gem_installer.rb:54:in `install' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/gem_installer.rb:16:in `install_from_spec' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/parallel_installer.rb:156:in `do_install' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/installer/parallel_installer.rb:147:in `block in worker_pool' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:62:in `apply_func' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:57:in `block in process_queue' <internal:kernel>:187:in `loop' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:54:in `process_queue' /home/jaruga/.local/ruby-bd786e7896/lib/ruby/3.3.0+0/bundler/worker.rb:90:in `block (2 levels) in create_threads' An error occurred while installing stringio (3.0.7), and Bundler cannot continue. ``` -- https://bugs.ruby-lang.org/
participants (2)
-
jaruga (Jun Aruga)
-
kou (Kouhei Sutou)