-
Notifications
You must be signed in to change notification settings - Fork 29
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
Remove needless dependencies #56
Conversation
These are default gems, so there is no need to explicitly depend on them, and depending on them is actually harmful: https://bugs.ruby-lang.org/issues/18567.
I think we need to remove only |
Ah, I thought I don't see |
Maybe we should have a Redmine ticket to discuss if strscan and digest might be removed from stdlib one day, or if there is no plan for that and therefore we should only need to be explicit when it will be needed? |
I don't know about general rules. My gut instinct is that we should be moving toward explicitly specifying dependencies even on default gems. But it's worthwhile looking at the specific uses in
With respect to In addition to @hsbt's remark about Speaking of |
shorter version: I'm okay with removing all three dependencies, at least for now. |
@eregon In #58, I convert the digest and strscan dependencies to development dependencies. That should remove the end-user pain, even if it doesn't entirely solve the issue for truffleruby, jruby, etc. If these are going to be gems at all, this problem isn't going to go away. Maybe it would be worthwhile to update these gems to install on truffleruby and jruby with a no-op stub? |
Yes, that sounds helpful :) |
We have been working on these default gems for some time now and intend to support all of the ones that have a JRuby equivalent. |
Mark obolete SASL mechanisms as deprecated (fixes rubyGH-55): * Warn every time a deprecated mechanism is used. * Warnings can be disabled with `warn_deprecation: false` * delay loading stdgem dependencies until `#initialize`. Fixes rubyGH-56. * This is a backwards-compatible alternative to the approach in rubyGH-58 (don't require and add the deprecated authenticators automatically). We can use that incompatible approach in a later version. Additionally: * Adds basic tests for every authenticator (to avoid another rubyGH-52!) * Fixes a frozen string bug in DigestMD5Authenticator. * By making these optional, there's no reason to require the `digest` or `strscan` gems anymore; fixes rubyGH-56. The DIGEST-MD5 bug was originally reported, tested, and fixed by @singpolyma here: nevans/net-sasl#3. Co-authored-by: Stephen Paul Weber <singpolyma@singpolyma.net>
Mark obolete SASL mechanisms as deprecated (fixes GH-55): * This is a backwards-compatible alternative to the approach in GH-58 (don't require and add the deprecated authenticators automatically). We can use that incompatible approach in a later version. * Warn every time a deprecated mechanism is used. * Warnings can be disabled with `warn_deprecation: false` * delay loading stdgem dependencies until `#initialize`. Fixes GH-56. Additionally: * Adds basic tests for every authenticator (to avoid another GH-52!) * Fixes a frozen string bug in DigestMD5Authenticator. * By making these optional, there's no reason to require the `digest` or `strscan` gems anymore; fixes GH-56. The DIGEST-MD5 bug was originally reported, tested, and fixed by @singpolyma here: nevans/net-sasl#3. Co-authored-by: Stephen Paul Weber <singpolyma@singpolyma.net>
Mark obolete SASL mechanisms as deprecated (fixes GH-55): * This is a backwards-compatible alternative to the approach in GH-58 (don't require and add the deprecated authenticators automatically). We can use that incompatible approach in a later version. * Warn every time a deprecated mechanism is used. * Warnings can be disabled with `warn_deprecation: false` * Fixes GH-56: delay loading standard gem dependencies until `#initialize`, and convert the gems to development dependencies. Additionally: * Adds basic tests for every authenticator (to avoid another GH-52!) * Fixes a frozen string bug in DigestMD5Authenticator. * Fixes constant resolution for exceptions in DigestMD5Authenticator. * Can register an authenticator type that responds to #call (instead of #new). I was originally going to register deprecated authenticators with a Proc that required the file and issued a warning, but I decided to put everything into the initializer instead. `#authenticator` needed to be updated to safely delegate all args, and I left this in. The DIGEST-MD5 bug was originally reported, tested, and fixed by @singpolyma here: nevans/net-sasl#3. Co-authored-by: Stephen Paul Weber <singpolyma@singpolyma.net>
These are default gems, so there is no need to explicitly depend on them,
and depending on them is actually harmful: https://bugs.ruby-lang.org/issues/18567.