fxn/zeitwerk

Gemfile/gemspec csv

GVisockas opened this issue · 2 comments

Reviewing my nightly cron tasks I found a warning that csv is not to be a part of standard library from ruby 3.4.0. It is mentioned, though, that:

Also contact author of zeitwerk-2.6.12 to add csv into its gemspec

Please ignore if this has been handled (as far as I have checked, it has not).
Full message:

/shared/bundle/ruby/3.3.0/gems/zeitwerk-2.6.12/lib/zeitwerk/kernel.rb:38: warning: csv was loaded from the standard library, but will no longer be part of the default gems since Ruby 3.4.0. Add csv to your Gemfile or gemspec. Also contact author of zeitwerk-2.6.12 to add csv into its gemspec.
fxn commented

@GVisockas Thanks for reporting this.

Whoever is producing the warning is assuming a certain call stack. There are gems that decorate Kernel#require, so you cannot really know who is the one really loading csv (or any of the ones triggering this).

So, nothing to do here, maybe report the warning is not accurate.

fxn commented

Oh, let me be more clear for people coming here without knowing this aspect of Zeitwerk.

Zeitwerk decorates Kernel#require (here). Therefore, all require calls pass through Zeitwerk. For require calls in projects managed by loaders, Zeitwerk performs some logic, otherwise, it just forwards to the original, decorated require transparently (mod stack traces).

That is, Zeitwerk is not using csv by itself, it is just proxying the require call of some code upwards actually using csv.