Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Document default gems #87

Open
zzak opened this issue May 9, 2014 · 7 comments
Open

Document default gems #87

zzak opened this issue May 9, 2014 · 7 comments

Comments

@zzak
Copy link
Contributor

zzak commented May 9, 2014

Move original topic from @headius (a.k.a. @Headies):

There's currently docs/guides on how to use most aspects of RubyGems except for default gems. I recognize that default gems are largely used by implementers (and perhaps installers) but there should still be some guide or howto written up.

I'm willing to write it, if there's a good place for such articles to live.

cc rubygems/rubygems#662

@igneus
Copy link
Contributor

igneus commented Oct 17, 2020

If by "default gems" the "gems installed by default" are meant, these are now covered (although in a minimalist fashion) on the RubyGems Basics page:

Listing installed gems
...
(Ruby ships with some gems by default, bigdecimal, io-console, json, minitest, psych, rake, rdoc, test-unit for ruby 2.0.0).

@headius
Copy link

headius commented Oct 21, 2020

"default gems" are slightly different than "installed by default". The latter is often referred to as "bundled" gems to be clear about the distinction.

"default gems" are gems that get installed directly into the standard library, and which are loadable without loading the RubyGems subsystem at all. If RubyGems is loaded, these stdlib-based gems can be upgraded, and RubyGems handles this by looking at a separate "default" specification directory which holds the specs for these gems.

You can see which gems are default in the CRuby repository by looking for .gemspec files, I believe, but this does not constitute a complete list. An example for the ostruct gem is here: https://github.com/ruby/ruby/blob/d3b2c1a17585ad30fb297ab489da0505e8b9b97a/lib/ostruct/ostruct.gemspec

There is a list of "bundled" gems (i.e. preinstalled but not directly into stdlib) here: https://github.com/ruby/ruby/blob/master/gems/bundled_gems

Note that JRuby handles default gems by maintaining a separate list (as part of our build script) and not versioning those gems in our repository. I would like to see CRuby do the same, since there have been many cases of diverging sources due to this duplicate versioning:

cc @marcandre @hsbt

@deivid-rodriguez
Copy link
Member

@headius Is what you'd like CRuby to do similar to what I proposed in https://bugs.ruby-lang.org/issues/16778?

@headius
Copy link

headius commented Oct 26, 2020

@deivid-rodriguez That is EXACTLY what I want, and I added a +1000 comment there to support you. Let me know if I can do anything else to make this happen.

@deivid-rodriguez
Copy link
Member

😃 That's great, thanks for your support! Maybe it gets some traction again, I'll be happy to find some time to work on it.

@deivid-rodriguez
Copy link
Member

By the way this is an excellent resource for default gems: https://stdgems.org/.

@headius
Copy link

headius commented Oct 27, 2020

By the way this is an excellent resource for default gems: https://stdgems.org/.

Very nice, thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants