From: "vo.x (Vit Ondruch) via ruby-core" Date: 2024-09-16T20:35:11+00:00 Subject: [ruby-core:119230] [Ruby master Feature#20309] Bundled gems for Ruby 3.5 Issue #20309 has been updated by vo.x (Vit Ondruch). Eregon (Benoit Daloze) wrote in #note-34: > There is an additional issue with making fiddle a bundled gem: it means any usage now must have libffi headers available or it will fail to install. > Before, it would just work because fiddle would have been built when CRuby was built. > Seen in https://github.com/ffi/ffi/actions/runs/10881406447/job/30190385022?pr=1119: > ``` > extconf.rb:78:in `
': missing libffi. Please install libffi or use > --with-libffi-source-dir with libffi source location. (RuntimeError) > ``` > From https://github.com/ffi/ffi/pull/1119 I don't think it is bad idea to start using `bundle install --local`, i.e. use gems which are already available on the system. And on top of that, stop using Bundler in containers for runtime in production use. ---------------------------------------- Feature #20309: Bundled gems for Ruby 3.5 https://bugs.ruby-lang.org/issues/20309#change-109812 * Author: hsbt (Hiroshi SHIBATA) * Status: Assigned * Assignee: hsbt (Hiroshi SHIBATA) ---------------------------------------- I propose migrate the following default gems to bundled gems at Ruby 3.5. So, It means users will get warnings if users try to load them. (Update with 2024/03/14, 2024/06/05, 2024/09/06) * rdoc(done) * We need to change build task like download rdoc gem before document generation. * extract `make doc` from `make all` and invoke `make doc` before `make install`. * done for Ruby 3.4 * or We make document generation is optional from Ruby 3.5 * We explicitly separate `make install` and `make install-doc` * ostruct(done) * I make ostruct as optional on json at https://github.com/flori/json/pull/565 * pstore(done) * win32ole(done) * logger(done) * activesupport needs to add logger to its dependency same as bigdecimal, drb or etc. * fiddle(done) * benchmark * irb * We need to consider how works `binding.irb` after Ruby 3.5. * I consider to use `irb` without Gemfile. * reline * readline (wrapper file for readline-ext and reline) I have a plan to migrate the following default gems too. But I need to more feedback from other committers about them. * io-console * rubygems uses that. Should we make optional that? * open-uri * yaml (wrapper file for psych) * syck is retired today. I'm not sure what people uses `psych` directly, not `yaml`. * un * `ruby -run` is one of cool feature of Ruby. Should we avoid uninstalling `un` gem? * mkmf uses `ruby -run` for that. I need to investigate that. * singleton * This is famous design pattern. Should we enforce users add them to their Gemfile? * forwadable * `reline` needs to add forwardable their `runtime_dependency` after migration. * weakref * I'm not sure how impact after migrating bundled gems. * fcntl * Should we integrate these constants into ruby core? I would like to migrate `ipaddr` and `uri` too. But these are used by webrick that is mock server for our test suite. We need to rewrite `webrick` with `TCPSocker` or extract `ipaddr` and `uri` dependency from `webrick` Other default gems depend on our build process or other libraries deeply. I will update this proposal if I could extract them from default gems. -- 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/