From: deivid via ruby-core Date: 2024-11-04T12:06:09+00:00 Subject: [ruby-core:119699] [Ruby master Feature#20859] Make Base64 to core class Issue #20859 has been updated by deivid (David Rodr�guez). I think these are two separate issues, so maybe better implement/discuss in two separate steps? * One would be something like "Making `base64` a bundled gem caused too much trouble, let's revert that". This seems straightforward to fix. * Another one would be something like "Base64 is too small and basic to justify being a gem and not just a core builtin class". This seems more tricky and would involve moving it to a core class, making the gem a noop if the core class exists as @hsbt suggested, and I guess printing some deprecation warning in this case, so that the explicit dependency is removed? ---------------------------------------- Feature #20859: Make Base64 to core class https://bugs.ruby-lang.org/issues/20859#change-110359 * Author: hsbt (Hiroshi SHIBATA) * Status: Assigned * Assignee: hsbt (Hiroshi SHIBATA) ---------------------------------------- >From https://bugs.ruby-lang.org/issues/20857#note-12 I also heard that `base64` gem has some issue for eco-system like https://github.com/ddnexus/pagy/pull/618. My fist intention is simply added `base64` gem into gem dependency by `Gem::Specification#add_dependency`. But some people rewrite `Base64.encode64` to `Array#pack`. It means gemification of `base64` is miss-direciton by me. I withdraw that and propose to make `Base64` into core class. https://github.com/ruby/ruby/pull/11977 It resolve dependency issues of `base64` as the default gems. TODO: * To release new version of `base64` gem that skip to load if `Base64` is available. * make `require "base64"` same as `require "enumerator"` -- 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/lists/ruby-core.ml.ruby-lang.org/