Hello, subversion developers:
Now Fedora 38 is preparing for upcoming ruby 3.2 (which is expected to be
released
on 2022/Dec), and current subversion fails for test suite for ruby like:
===============================================================================
Error: test_adm_ensure(SvnWcTest): NoMethodError: undefined method `exists?'
for File:Class
/builddir/build/BUILD/subversion-1.14.2/subversion/bindings/swig/ruby/test/test_wc.rb:345:in
`test_adm_ensure'
342:
343: def test_adm_ensure
344: adm_dir = Dir.glob(File.join(@wc_path, "{.,_}svn")).first
=> 345: assert(File.exists?(adm_dir))
346: FileUtils.rm_rf(adm_dir)
347: assert(!File.exists?(adm_dir))
348: Svn::Wc.ensure_adm(@wc_path, @fs.uuid, @repos_uri, @repos_uri, 0)
/builddir/build/BUILD/subversion-1.14.2/subversion/bindings/swig/ruby/test/test-unit-ext/priority.rb:115:in
`run'
===============================================================================
Error: test_delete(SvnWcTest): NoMethodError: undefined method `exists?' for
File:Class
Error: test_switch_editor(SvnWcTest): NoMethodError: undefined method `exists?'
for File:Class
Error: test_update_editor(SvnWcTest): NoMethodError: undefined method `exists?'
for File:Class
Error: test_update_editor_options(SvnWcTest): NoMethodError: undefined method
`exists?' for File:Class
Ruby 3.2 now completely removes "File.exists?" which were already obsoleted on
ruby 2.1.
Just replacing with "File.exist?" should fix these errors.
https://github.com/ruby/ruby/blob/6378825df5c7abc7ef45f257057ffd21dc9e63b5/NEWS.md?plain=1#L248
https://bugs.ruby-lang.org/issues/17391
https://docs.ruby-lang.org/en/3.1/File.html#method-c-exist-3F
The targets which need fixing are:
===============================================================================
./subversion/bindings/swig/ruby/test/test_wc.rb:345:
assert(File.exists?(adm_dir))
./subversion/bindings/swig/ruby/test/test_wc.rb:347:
assert(!File.exists?(adm_dir))
./subversion/bindings/swig/ruby/test/test_wc.rb:349:
assert(File.exists?(adm_dir))
./subversion/bindings/swig/ruby/test/test_wc.rb:477:
assert(File.exists?(path))
./subversion/bindings/swig/ruby/test/test_wc.rb:481:
assert(!File.exists?(path))
./subversion/bindings/swig/ruby/test/test_wc.rb:485:
assert(File.exists?(path))
./subversion/bindings/swig/ruby/test/test_wc.rb:489:
assert(File.exists?(path))
./subversion/bindings/swig/ruby/test/test_wc.rb:811:
assert(File.exists?(path2))
./subversion/bindings/swig/ruby/test/test_wc.rb:813:
assert(!File.exists?(path2))
./subversion/bindings/swig/ruby/test/test_wc.rb:851:
assert(File.exists?(path2))
./subversion/bindings/swig/ruby/test/test_wc.rb:853:
assert(!File.exists?(path2))
./subversion/bindings/swig/ruby/test/test_wc.rb:949:
assert(File.exists?(path1))
./subversion/bindings/swig/ruby/test/test_wc.rb:951:
assert(File.exists?(File.join(@wc_path, file2)))
./subversion/bindings/swig/ruby/test/windows_util.rb:118:
File.read(gen_make_opts).lines.to_a if File.exists?(gen_make_opts)
./subversion/bindings/swig/ruby/svn/util.rb:23: if File.exists?(svn_ext_path)
===============================================================================
Regards,
Mamoru TASAKA <[email protected]>