
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/