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