--- - branch: MAIN date: Sat Feb 11 13:48:12 UTC 2023 files: - new: '1.10' old: '1.9' path: pkgsrc/devel/ruby-zeitwerk/Makefile pathrev: pkgsrc/devel/ruby-zeitwerk/Makefile@1.10 type: modified - new: '1.12' old: '1.11' path: pkgsrc/devel/ruby-zeitwerk/distinfo pathrev: pkgsrc/devel/ruby-zeitwerk/distinfo@1.12 type: modified id: 20230211T134812Z.c9f599db9d07d1281db690b2662cc1ae3e11a70c log: | devel/ruby-zeitwerk: update to 2.6.7 2.6.7 (2023-02-10) * Reset module state on Zeitwerk::NameError. If an autoload is triggered, the file is loaded successfully, but the expected constant does not get defined, Ruby resets the state of the module. In particular, autoload? returns nil for that constant name, and constants does not include the constant name (starting with Ruby 3.1). Zeitwerk is more strict, not defining the expected constant is an error condition and the loader raises Zeitwerk::NameError. But this happens during the require call and the exception prevents Ruby from doing that cleanup. With this change, the parent module is left in a state that makes more sense and is consistent with what Ruby does. * A message is logged if an autoload did not define the expected constant. When that happens, Zeitwerk::NameError is raised and you normally see the exception. But if the error is shallowed, and you are inspecting the logs to investigate something, this new message may be helpful. * By default, Zeitwerk::Loader#dirs filters ignored root directories out. Please, pass ignored: true if you want them included. It is very strange to configure a root directory and also ignore it, the edge case is supported only for completeness. However, in that case, client code listing root directories rarely needs the ignored ones. * Documentation improvements. * Enforcement of private interfaces continues with another gradual patch. module: pkgsrc subject: 'CVS commit: pkgsrc/devel/ruby-zeitwerk' unixtime: '1676123292' user: taca