Project

General

Profile

Actions

Feature #20309

open

Bundled gems for Ruby 3.5

Added by hsbt (Hiroshi SHIBATA) 9 months ago. Updated 2 months ago.

Status:
Assigned
Target version:
-
[ruby-core:116983]

Description

I propose migrate the following default gems to bundled gems at Ruby 3.5. So, It means users will get warnings if users try to load them.

(Update with 2024/03/14, 2024/06/05, 2024/09/06)

  • rdoc(done)
    • We need to change build task like download rdoc gem before document generation.
      • extract make doc from make all and invoke make doc before make install.
        • done for Ruby 3.4
    • or We make document generation is optional from Ruby 3.5
      • We explicitly separate make install and make install-doc
  • ostruct(done)
  • pstore(done)
  • win32ole(done)
  • logger(done)
    • activesupport needs to add logger to its dependency same as bigdecimal, drb or etc.
  • fiddle(done)
  • benchmark
  • irb
    • We need to consider how works binding.irb after Ruby 3.5.
    • I consider to use irb without Gemfile.
  • reline
  • readline (wrapper file for readline-ext and reline)

I have a plan to migrate the following default gems too. But I need to more feedback from other committers about them.

  • io-console
    • rubygems uses that. Should we make optional that?
  • open-uri
  • yaml (wrapper file for psych)
    • syck is retired today. I'm not sure what people uses psych directly, not yaml.
  • un
    • ruby -run is one of cool feature of Ruby. Should we avoid uninstalling un gem?
    • mkmf uses ruby -run for that. I need to investigate that.
  • singleton
    • This is famous design pattern. Should we enforce users add them to their Gemfile?
  • forwadable
    • reline needs to add forwardable their runtime_dependency after migration.
  • weakref
    • I'm not sure how impact after migrating bundled gems.
  • fcntl
    • Should we integrate these constants into ruby core?

I would like to migrate ipaddr and uri too. But these are used by webrick that is mock server for our test suite. We need to rewrite webrick with TCPSocker or extract ipaddr and uri dependency from webrick

Other default gems depend on our build process or other libraries deeply. I will update this proposal if I could extract them from default gems.


Related issues 4 (1 open3 closed)

Related to Ruby master - Feature #20187: Bundled gems at Ruby 3.4Closedhsbt (Hiroshi SHIBATA)Actions
Related to Ruby master - Feature #19351: Promote bundled gems at Ruby 3.3Closedhsbt (Hiroshi SHIBATA)Actions
Related to Ruby master - Feature #20347: Separate docs task from allClosedhsbt (Hiroshi SHIBATA)Actions
Related to Ruby master - Bug #20714: Handle optional dependencies in `bundled_gems.rb`Assignedhsbt (Hiroshi SHIBATA)Actions
Actions

Also available in: Atom PDF

Like2
Like1Like0Like0Like0Like1Like2Like1Like0Like0Like1Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like1Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0