Project

General

Profile

Actions

Feature #19843

closed

Promote bigdecimal as bundled gems at Ruby 3.4

Added by hsbt (Hiroshi SHIBATA) about 1 year ago. Updated about 1 year 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 master - Feature #19776: Warn bundled gems when it called from `require`Closedhsbt (Hiroshi SHIBATA)Actions
Related to Ruby master - Feature #19351: Promote bundled gems at Ruby 3.3Closedhsbt (Hiroshi SHIBATA)Actions
Actions #1

Updated by hsbt (Hiroshi SHIBATA) about 1 year ago

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

Updated by hsbt (Hiroshi SHIBATA) about 1 year ago

Updated by mrkn (Kenta Murata) about 1 year ago

@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.

Actions #4

Updated by hsbt (Hiroshi SHIBATA) about 1 year ago

  • Status changed from Open to Closed

Applied in changeset git|1c93288f8bbf667cb95eb7137b2fe64213894b77.


Added bigdecimal to warning targets for the bundled gems.

[Bug #19843]

Actions #5

Updated by hsbt (Hiroshi SHIBATA) about 1 year ago

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

Updated by yahonda (Yasuo Honda) about 1 year ago

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,

Actions #7

Updated by hsbt (Hiroshi SHIBATA) about 1 year ago

  • Status changed from Closed to Assigned

Updated by yahonda (Yasuo Honda) about 1 year ago

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.

Updated by hsbt (Hiroshi SHIBATA) about 1 year ago

  • 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: Atom PDF

Like1
Like0Like0Like0Like0Like0Like0Like0Like0Like0