Feature #19843
closedPromote bigdecimal as bundled gems at Ruby 3.4
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.
Updated by hsbt (Hiroshi SHIBATA) about 1 year ago
- Related to Feature #19776: Warn bundled gems when it called from `require` added
Updated by hsbt (Hiroshi SHIBATA) about 1 year ago
- Related to Feature #19351: Promote bundled gems at Ruby 3.3 added
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.
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]
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.
-
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. -
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/41115b. 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 -
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,
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.