From: "Dan0042 (Daniel DeLorme) via ruby-core" Date: 2023-11-06T15:36:35+00:00 Subject: [ruby-core:115277] [Ruby master Feature#19972] Install default/bundled gems into dedicated directories Issue #19972 has been updated by Dan0042 (Daniel DeLorme). I'm not against the idea, but there's already quite few a directories for ruby libraries and TBH it's getting a bit confusing. lib/ruby/3.2.0 lib/ruby/gems/3.2.0 lib/ruby/site_ruby/3.2.0/x86_64-linux lib/ruby/vendor_ruby/3.2.0/x86_64-linux lib/ruby/default_gems/3.2.0 **new!!!** from https://stdgems.org/ > * Default gems: These gems are part of Ruby and you can always require them directly. You cannot remove them. They are maintained by Ruby core. > * Bundled gems: The behavior of bundled gems is similar to normal gems, but they get automatically installed when you install Ruby. They can be uninstalled and they are maintained outside of Ruby core. According to the above, bundled gems are closer in behavior to user gems than to default gems; does it really make sense to mix bundled+default? From my reading of the situation, it seems like there should be 1. a directory for default gems 2. the regular "gems" directory for bundled gems and root-installed gems 3. Gem.user_dir for user-installed gems ---------------------------------------- Feature #19972: Install default/bundled gems into dedicated directories https://bugs.ruby-lang.org/issues/19972#change-105193 * Author: vo.x (Vit Ondruch) * Status: Open * Priority: Normal ---------------------------------------- I think that the current situation, where the same directory (lets call it `Gem.default_dir`) is used for default/bundled gems as well as for user installed gems, is suboptimal. During the times, this has caused us quite some issue on Fedora. Historically, we redefined the `Gem.default_dir` to user home directory, to avoid the mixing of system gems and user installed gems. Unfortunately, with advent of default/bundled gems, we were facing issues that these gems were suddenly not listed, etc. I am realizing this issue in full once again since the "user install" RubyGems feature has landed [1]. I also think that we have arrived to this situation by evolution, not by design. Therefore my proposal is: Keep the `Gem.default_dir` for user `gem install`ed gems and lets install default and bundled gems into separate dedicated directories. Have separate `Gem.bundled_gems_dir` and `Gem.default_gems_dir` structures. Of course, if `Gem.default_dir == Gem.bundled_gems_dir == Gem.default_gems_dir`, we still can have the current layout. I have a simple POC here: https://github.com/ruby/ruby/pull/8761 BTW I have reported it here, because I think that RubyGems provides all it is needed. So it is not RubyGems ticket after all. However, I believe that RubyGems could benefit from this long term and some simplifications/cleanups would be possible. [1]: https://github.com/rubygems/rubygems/pull/5327 -- https://bugs.ruby-lang.org/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/