Project

General

Profile

Actions

Feature #19843

closed
Image

Promote bigdecimal as bundled gems at Ruby 3.4

Feature #19843: Promote bigdecimal as bundled gems at Ruby 3.4
1

Added by hsbt (Hiroshi SHIBATA) over 2 years ago. Updated over 2 years ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:114433]

Description

I triaged target list for bundled gems at https://bugs.ruby-lang.org/issues/19351.

After that, I resolved bigdecimal dependency from our test suite at https://github.com/ruby/ruby/commit/3ef6364a988ab24ca7fdbb7d1b6840b2a40f1466

I propose to promote bigdecimal as bundled gems at Ruby 3.4.

@mrkn (Kenta Murata) Is it okay? I will add bigdecimal to Gem::BUNDLED_GEMS::SINCE for Ruby 3.3.0-preview2.


Related issues 2 (0 open2 closed)

Related to Ruby - Feature #19776: Warn bundled gems when it called from `require`Closedhsbt (Hiroshi SHIBATA)Actions
Related to Ruby - Feature #19351: Promote bundled gems at Ruby 3.3Closedhsbt (Hiroshi SHIBATA)Actions

Image Updated by hsbt (Hiroshi SHIBATA) over 2 years ago Actions #1

  • Related to Feature #19776: Warn bundled gems when it called from `require` added

Image Updated by hsbt (Hiroshi SHIBATA) over 2 years ago Actions #2

Image Updated by mrkn (Kenta Murata) over 2 years ago Actions #3 [ruby-core:114435]

@hsbt (Hiroshi SHIBATA) I agree with you. I've wanted to make bigdecimal a bundled gem for a long time but I didn't have much time to work for it. Thank you very much.

Image Updated by hsbt (Hiroshi SHIBATA) over 2 years ago Actions #4

  • Status changed from Open to Closed

Applied in changeset git|1c93288f8bbf667cb95eb7137b2fe64213894b77.


Added bigdecimal to warning targets for the bundled gems.

[Bug #19843]

Image Updated by hsbt (Hiroshi SHIBATA) over 2 years ago Actions #5

  • Tracker changed from Bug to Feature
  • Backport deleted (3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN)

Image Updated by yahonda (Yasuo Honda) over 2 years ago Actions #6 [ruby-core:114529]

It would be appreciate if this decicions is reconsideed because adding the bigdecimal to the gemspec will install the same version, like 3.1.4 as of today, for all users regardless of which Ruby versions are used.

  1. The Rails main branch supports Ruby 2.7.0 or higher.
    -Ruby 2.7 installs BigDecimal 2.0.0 as one of the default gems, while Ruby 3.0 installs BigDecimal 3.0.0 as one of the default gems.
    These versions are older than the latest bigdecimal version 3.1.4 from a major and minor version perspective.

  2. There are some notable changes from the Rails point of view since BigDecimal 3.1.0.
    a. BigDecimal behavior change in 3.1.0
    https://github.com/ruby/bigdecimal/pull/180
    https://github.com/rails/rails/pull/41115

    b. BigDecimal behavior change in master, will be part of 3.1.5
    https://github.com/ruby/bigdecimal/pull/264
    https://github.com/rails/rails/pull/48693

  3. Gem users have no way to specify the gem version added via the add_dependency method based on the Ruby version they use.

Here, I'm not saying whether these changes are good or not, but I want to say that some Ruby 2.7/3.0 users would expect BigDecimal 2.0 and 3.0 behavior as the default gem does.

Thanks,

Image Updated by hsbt (Hiroshi SHIBATA) over 2 years ago Actions #7

  • Status changed from Closed to Assigned

Image Updated by yahonda (Yasuo Honda) over 2 years ago Actions #8 [ruby-core:114582]

I'm going to open a pull request to Rails that inform that BigDecimal version added as add_dependency will be 3.1.4 or higher. If Ruby 2.7 and 3.0 users and want BigDecimal as their default gem, they can pin the BigDecimal version to the applications Gemfile.

Image Updated by hsbt (Hiroshi SHIBATA) over 2 years ago Actions #9 [ruby-core:114613]

  • Status changed from Assigned to Closed

@yahonda (Yasuo Honda) Thank you for sharing this.

I miss-understood how detect default gems version with RubyGems/Bundler. I expect that bundler detect and install version of default gems like bigdecimal-2.0.0 at Ruby 2.7.

I know maintenance policy of Rails 7.0 and 7.1. But Ruby 2.7 is already EOL.

If Ruby 2.7 and 3.0 users and want BigDecimal as their default gem, they can pin the BigDecimal version to the applications Gemfile.

I appreciate to your work for Ruby 2.7 users.

Actions

Also available in: PDF Atom