ruby-core@ruby-lang.org archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-core:119670] [Ruby master Feature#20859] Make Base64 to core class
@ 2024-11-01  8:53 hsbt (Hiroshi SHIBATA) via ruby-core
  2024-11-01  9:39 ` [ruby-core:119673] " vo.x (Vit Ondruch) via ruby-core
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: hsbt (Hiroshi SHIBATA) via ruby-core @ 2024-11-01  8:53 UTC (permalink / raw)
  To: ruby-core; +Cc: hsbt (Hiroshi SHIBATA)

Issue #20859 has been reported by hsbt (Hiroshi SHIBATA).

----------------------------------------
Feature #20859: Make Base64 to core class
https://bugs.ruby-lang.org/issues/20859

* 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 "enumlator"`




-- 
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/

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [ruby-core:119673] [Ruby master Feature#20859] Make Base64 to core class
  2024-11-01  8:53 [ruby-core:119670] [Ruby master Feature#20859] Make Base64 to core class hsbt (Hiroshi SHIBATA) via ruby-core
@ 2024-11-01  9:39 ` vo.x (Vit Ondruch) via ruby-core
  2024-11-01 12:26 ` [ruby-core:119675] " nobu (Nobuyoshi Nakada) via ruby-core
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: vo.x (Vit Ondruch) via ruby-core @ 2024-11-01  9:39 UTC (permalink / raw)
  To: ruby-core; +Cc: vo.x (Vit Ondruch)

Issue #20859 has been updated by vo.x (Vit Ondruch).


Just FTR, some usage of base64 was already removed, but I think that other projects already added the base64 dependency (or are about to add it [1]).


[1]: https://github.com/cucumber/cucumber-ruby/pull/1762

----------------------------------------
Feature #20859: Make Base64 to core class
https://bugs.ruby-lang.org/issues/20859#change-110332

* 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 "enumlator"`




-- 
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/

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [ruby-core:119675] [Ruby master Feature#20859] Make Base64 to core class
  2024-11-01  8:53 [ruby-core:119670] [Ruby master Feature#20859] Make Base64 to core class hsbt (Hiroshi SHIBATA) via ruby-core
  2024-11-01  9:39 ` [ruby-core:119673] " vo.x (Vit Ondruch) via ruby-core
@ 2024-11-01 12:26 ` nobu (Nobuyoshi Nakada) via ruby-core
  2024-11-01 17:39 ` [ruby-core:119680] " byroot (Jean Boussier) via ruby-core
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: nobu (Nobuyoshi Nakada) via ruby-core @ 2024-11-01 12:26 UTC (permalink / raw)
  To: ruby-core; +Cc: nobu (Nobuyoshi Nakada)

Issue #20859 has been updated by nobu (Nobuyoshi Nakada).


Why make it built-in all at once, rather than moving it back to the standard library?

----------------------------------------
Feature #20859: Make Base64 to core class
https://bugs.ruby-lang.org/issues/20859#change-110334

* 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 "enumlator"`




-- 
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/

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [ruby-core:119680] [Ruby master Feature#20859] Make Base64 to core class
  2024-11-01  8:53 [ruby-core:119670] [Ruby master Feature#20859] Make Base64 to core class hsbt (Hiroshi SHIBATA) via ruby-core
  2024-11-01  9:39 ` [ruby-core:119673] " vo.x (Vit Ondruch) via ruby-core
  2024-11-01 12:26 ` [ruby-core:119675] " nobu (Nobuyoshi Nakada) via ruby-core
@ 2024-11-01 17:39 ` byroot (Jean Boussier) via ruby-core
  2024-11-04 12:06 ` [ruby-core:119699] " deivid via ruby-core
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: byroot (Jean Boussier) via ruby-core @ 2024-11-01 17:39 UTC (permalink / raw)
  To: ruby-core; +Cc: byroot (Jean Boussier)

Issue #20859 has been updated by byroot (Jean Boussier).


I also think the general sentiment about this extraction is that the dependency is too small to justify adding it. For most users it's pretty much a one liner.

That said, is there a problem in just keeping it as a "default gem"? Now that it has a `::VERSION` constant etc, seems like the simplest thing to do.

----------------------------------------
Feature #20859: Make Base64 to core class
https://bugs.ruby-lang.org/issues/20859#change-110340

* 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/

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [ruby-core:119699] [Ruby master Feature#20859] Make Base64 to core class
  2024-11-01  8:53 [ruby-core:119670] [Ruby master Feature#20859] Make Base64 to core class hsbt (Hiroshi SHIBATA) via ruby-core
                   ` (2 preceding siblings ...)
  2024-11-01 17:39 ` [ruby-core:119680] " byroot (Jean Boussier) via ruby-core
@ 2024-11-04 12:06 ` deivid via ruby-core
  2024-11-06  2:31 ` [ruby-core:119763] " mame (Yusuke Endoh) via ruby-core
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: deivid via ruby-core @ 2024-11-04 12:06 UTC (permalink / raw)
  To: ruby-core; +Cc: deivid

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/

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [ruby-core:119763] [Ruby master Feature#20859] Make Base64 to core class
  2024-11-01  8:53 [ruby-core:119670] [Ruby master Feature#20859] Make Base64 to core class hsbt (Hiroshi SHIBATA) via ruby-core
                   ` (3 preceding siblings ...)
  2024-11-04 12:06 ` [ruby-core:119699] " deivid via ruby-core
@ 2024-11-06  2:31 ` mame (Yusuke Endoh) via ruby-core
  2024-11-06 17:41 ` [ruby-core:119778] " deivid via ruby-core
  2024-11-07  6:46 ` [ruby-core:119792] " hsbt (Hiroshi SHIBATA) via ruby-core
  6 siblings, 0 replies; 8+ messages in thread
From: mame (Yusuke Endoh) via ruby-core @ 2024-11-06  2:31 UTC (permalink / raw)
  To: ruby-core; +Cc: mame (Yusuke Endoh)

Issue #20859 has been updated by mame (Yusuke Endoh).


My understanding is that default gems are transitional to eventually being promoted to bundled gems. So, I didn't think there was an option to make it a default gem permanently. As a matter of fact, mirroring repositories is a pain.

In terms of base64, it is not expected to add any features in the future, and it is quite unlikely that it will be even updated. (I am the current maintainer of base64 gem.) And it is a very small library.
Therefore, I do not think it is worth making it a bundled gem. I think it would be better to make it built-in or revert to the standard library (not a default gem).

(I am not opposed to reverting back to the default gem as a temporary measure, since we are close to release.)

----------------------------------------
Feature #20859: Make Base64 to core class
https://bugs.ruby-lang.org/issues/20859#change-110428

* 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/

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [ruby-core:119778] [Ruby master Feature#20859] Make Base64 to core class
  2024-11-01  8:53 [ruby-core:119670] [Ruby master Feature#20859] Make Base64 to core class hsbt (Hiroshi SHIBATA) via ruby-core
                   ` (4 preceding siblings ...)
  2024-11-06  2:31 ` [ruby-core:119763] " mame (Yusuke Endoh) via ruby-core
@ 2024-11-06 17:41 ` deivid via ruby-core
  2024-11-07  6:46 ` [ruby-core:119792] " hsbt (Hiroshi SHIBATA) via ruby-core
  6 siblings, 0 replies; 8+ messages in thread
From: deivid via ruby-core @ 2024-11-06 17:41 UTC (permalink / raw)
  To: ruby-core; +Cc: deivid

Issue #20859 has been updated by deivid (David Rodríguez).


I agree with everything you said @mame. I didn't know the final goal of gemification of the standard library was to make all default gems either stdlib or bundled gems. I like that and I support it.

----------------------------------------
Feature #20859: Make Base64 to core class
https://bugs.ruby-lang.org/issues/20859#change-110445

* 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/

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [ruby-core:119792] [Ruby master Feature#20859] Make Base64 to core class
  2024-11-01  8:53 [ruby-core:119670] [Ruby master Feature#20859] Make Base64 to core class hsbt (Hiroshi SHIBATA) via ruby-core
                   ` (5 preceding siblings ...)
  2024-11-06 17:41 ` [ruby-core:119778] " deivid via ruby-core
@ 2024-11-07  6:46 ` hsbt (Hiroshi SHIBATA) via ruby-core
  6 siblings, 0 replies; 8+ messages in thread
From: hsbt (Hiroshi SHIBATA) via ruby-core @ 2024-11-07  6:46 UTC (permalink / raw)
  To: ruby-core; +Cc: hsbt (Hiroshi SHIBATA)

Issue #20859 has been updated by hsbt (Hiroshi SHIBATA).

Status changed from Assigned to Rejected

Matz is negative for this proposal. I withdraw this.

----------------------------------------
Feature #20859: Make Base64 to core class
https://bugs.ruby-lang.org/issues/20859#change-110475

* Author: hsbt (Hiroshi SHIBATA)
* Status: Rejected
* 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/

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2024-11-07  6:47 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-11-01  8:53 [ruby-core:119670] [Ruby master Feature#20859] Make Base64 to core class hsbt (Hiroshi SHIBATA) via ruby-core
2024-11-01  9:39 ` [ruby-core:119673] " vo.x (Vit Ondruch) via ruby-core
2024-11-01 12:26 ` [ruby-core:119675] " nobu (Nobuyoshi Nakada) via ruby-core
2024-11-01 17:39 ` [ruby-core:119680] " byroot (Jean Boussier) via ruby-core
2024-11-04 12:06 ` [ruby-core:119699] " deivid via ruby-core
2024-11-06  2:31 ` [ruby-core:119763] " mame (Yusuke Endoh) via ruby-core
2024-11-06 17:41 ` [ruby-core:119778] " deivid via ruby-core
2024-11-07  6:46 ` [ruby-core:119792] " hsbt (Hiroshi SHIBATA) via ruby-core

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).