-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
Vendor net-http
, net-protocol
, resolv
, and timeout
to reduce conflicts between Gemfile gems and internal dependencies
#6793
Conversation
345c68c
to
f5ec01a
Compare
f8c3f72
to
19c1afc
Compare
00523b3
to
95ddd86
Compare
ba7aacc
to
9d8cd50
Compare
I'd like to add a spec for the user problem this is fixing, but other than that it's ready. I know @hsbt does not like this, so I'd like to ask more opinions to avoid just imposing my perspective. I already said why I think we should do this in #6773 (comment). I know it's annoying to vendor 10K lines of code, but it is what it is right now. Also I think it's good that Bundler & RubyGems will always use the same code for these gems, rather than having varying behavior depending on which version of |
Thank you for considering that. I understood this problem and your concern. I worried that is not only for code management. The official ruby package size is increased in recent years.
It's not only caused vendoring code. Especially, Ruby 3.3 has Prism parser and related code. Ruby core team are also negative to manage duplicated code like I have no idea to resolve both problem that are specified any versions and not vendoring them. |
9d8cd50
to
f590791
Compare
I don't think increased ruby package size is a strong reason to not do this, to be honest. This PR "just" increases about 70K the rubygems package size. |
967ef1e
to
8f765e1
Compare
net-http
, net-protocol
, resolv
, and timeout
to reduce conflicts between Gemfile gems and internal dependencies
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I thought about this a bunch and talked with @deivid-rodriguez. I don't think this is the very best long term solution. I'd imagine rg&b playing nicely with any version of a stdlib that is loaded. However, this is not where this project is at right now, so I think we should stick with the plan in the RFC until we have a better plan. This is consistent with that plan.
bcab4c9
to
9f73bfb
Compare
Allow target namespace to be an intermediate one with other constants behind it (like `Net` in `Net::HTTP`).
9f73bfb
to
2662e45
Compare
Since I got someone else to back me up, and @hsbt said privately he's ok with vendoring if we decide so, I set this PR to be merged after CI. |
What was the end-user or developer problem that led to this PR?
Problems with our internal usage of default gems getting in the middle of our users.
Running the following script on Ruby 3.2 without any
timeout
version other than the default install reproduces the issue:What is your fix for the problem, implemented in this PR?
Vendor
net-http
,net-protocol
,resolv
, andtimeout
.Make sure the following tasks are checked