Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

testsuite fails on ruby3.3.0dev due to Logger change #4493

Closed
mtasaka opened this issue Sep 29, 2023 · 2 comments · Fixed by #4494
Closed

testsuite fails on ruby3.3.0dev due to Logger change #4493

mtasaka opened this issue Sep 29, 2023 · 2 comments · Fixed by #4494
Assignees
Labels
bug compliance v2.0.21 Issues resolved in the 2.0.21 release
Milestone

Comments

@mtasaka
Copy link
Contributor

mtasaka commented Sep 29, 2023

With upcomming ruby 3.3.0dev (I tried: ruby/ruby@52f8b34 ) asciidoctor git head ( 880f043 ) testsuite fails with a lot of messages like:

  1) Error:
Minitest::Test::TestLinks#test_xref_using_angled_bracket_syntax_with_nested_path_which_has_been_included_in_this_document:
ArgumentError: invalid log level: 
    /usr/share/ruby/logger/severity.rb:34:in `coerce'
    /usr/share/ruby/logger.rb:401:in `level='
    /builddir/build/GIT/asciidoctor/test/test_helper.rb:331:in `ensure in in_verbose_mode'
    /builddir/build/GIT/asciidoctor/test/test_helper.rb:331:in `in_verbose_mode'
    /builddir/build/GIT/asciidoctor/test/links_test.rb:699:in `block (3 levels) in <top (required)>'
    /builddir/build/GIT/asciidoctor/test/test_helper.rb:320:in `using_memory_logger'
    /builddir/build/GIT/asciidoctor/test/links_test.rb:698:in `block (2 levels) in <top (required)>'

  2) Error:
Minitest::Test::TestLinks#test_should_not_interpret_path_sans_extension_in_xref_with_angled_bracket_syntax_in_compat_mode:
NoMethodError: undefined method `[]' for nil
    /usr/share/ruby/logger.rb:385:in `level'
    /usr/share/ruby/logger.rb:494:in `info?'
    /builddir/build/GIT/asciidoctor/lib/asciidoctor/substitutors.rb:809:in `block in sub_macros'
    /builddir/build/GIT/asciidoctor/lib/asciidoctor/substitutors.rb:729:in `gsub'
    /builddir/build/GIT/asciidoctor/lib/asciidoctor/substitutors.rb:729:in `sub_macros'
    /builddir/build/GIT/asciidoctor/lib/asciidoctor/substitutors.rb:103:in `block in apply_subs'
    /builddir/build/GIT/asciidoctor/lib/asciidoctor/substitutors.rb:92:in `each'
    /builddir/build/GIT/asciidoctor/lib/asciidoctor/substitutors.rb:92:in `apply_subs'
    /builddir/build/GIT/asciidoctor/lib/asciidoctor/block.rb:113:in `content'
    /builddir/build/GIT/asciidoctor/lib/asciidoctor/converter/html5.rb:798:in `convert_paragraph'
    /builddir/build/GIT/asciidoctor/lib/asciidoctor/converter/html5.rb:54:in `convert'
    /builddir/build/GIT/asciidoctor/lib/asciidoctor/abstract_block.rb:77:in `convert'
    /builddir/build/GIT/asciidoctor/lib/asciidoctor/abstract_block.rb:86:in `block in content'
    /builddir/build/GIT/asciidoctor/lib/asciidoctor/abstract_block.rb:86:in `map'
    /builddir/build/GIT/asciidoctor/lib/asciidoctor/abstract_block.rb:86:in `content'
    /builddir/build/GIT/asciidoctor/lib/asciidoctor/document.rb:1012:in `content'
    /builddir/build/GIT/asciidoctor/lib/asciidoctor/converter/html5.rb:326:in `convert_embedded'
    /builddir/build/GIT/asciidoctor/lib/asciidoctor/converter/html5.rb:64:in `convert'
    /builddir/build/GIT/asciidoctor/lib/asciidoctor/document.rb:956:in `convert'
    /builddir/build/GIT/asciidoctor/test/links_test.rb:540:in `block (3 levels) in <top (required)>'
    /builddir/build/GIT/asciidoctor/test/test_helper.rb:320:in `using_memory_logger'
    /builddir/build/GIT/asciidoctor/test/links_test.rb:538:in `block (2 levels) in <top (required)>'

  3) Error:
Minitest::Test::TestLinks#test_should_warn_and_create_link_if_debug_mode_is_enabled_inter_document_xref_points_to_current_doc_and_reference_not_found:
ArgumentError: invalid log level: 
    /usr/share/ruby/logger/severity.rb:34:in `coerce'
    /usr/share/ruby/logger.rb:401:in `level='
    /builddir/build/GIT/asciidoctor/test/test_helper.rb:331:in `ensure in in_verbose_mode'
    /builddir/build/GIT/asciidoctor/test/test_helper.rb:331:in `in_verbose_mode'
    /builddir/build/GIT/asciidoctor/test/links_test.rb:1006:in `block (3 levels) in <top (required)>'
    /builddir/build/GIT/asciidoctor/test/test_helper.rb:320:in `using_memory_logger'
    /builddir/build/GIT/asciidoctor/test/links_test.rb:1005:in `block (2 levels) in <top (required)>'

  4) Error:
Minitest::Test::TestLinks#test_xref_using_macro_syntax_with_path_and_extension_in_compat_mode:
NoMethodError: undefined method `[]' for nil
    /usr/share/ruby/logger.rb:385:in `level'
    /usr/share/ruby/logger.rb:494:in `info?'
    /builddir/build/GIT/asciidoctor/lib/asciidoctor/substitutors.rb:809:in `block in sub_macros'
    /builddir/build/GIT/asciidoctor/lib/asciidoctor/substitutors.rb:729:in `gsub'
    /builddir/build/GIT/asciidoctor/lib/asciidoctor/substitutors.rb:729:in `sub_macros'
    /builddir/build/GIT/asciidoctor/lib/asciidoctor/substitutors.rb:103:in `block in apply_subs'
    /builddir/build/GIT/asciidoctor/lib/asciidoctor/substitutors.rb:92:in `each'
    /builddir/build/GIT/asciidoctor/lib/asciidoctor/substitutors.rb:92:in `apply_subs'
    /builddir/build/GIT/asciidoctor/lib/asciidoctor/block.rb:113:in `content'
    /builddir/build/GIT/asciidoctor/lib/asciidoctor/converter/html5.rb:798:in `convert_paragraph'
    /builddir/build/GIT/asciidoctor/lib/asciidoctor/converter/html5.rb:54:in `convert'
    /builddir/build/GIT/asciidoctor/lib/asciidoctor/abstract_block.rb:77:in `convert'
    /builddir/build/GIT/asciidoctor/lib/asciidoctor/abstract_block.rb:86:in `block in content'
    /builddir/build/GIT/asciidoctor/lib/asciidoctor/abstract_block.rb:86:in `map'
    /builddir/build/GIT/asciidoctor/lib/asciidoctor/abstract_block.rb:86:in `content'
    /builddir/build/GIT/asciidoctor/lib/asciidoctor/document.rb:1012:in `content'
    /builddir/build/GIT/asciidoctor/lib/asciidoctor/converter/html5.rb:326:in `convert_embedded'
    /builddir/build/GIT/asciidoctor/lib/asciidoctor/converter/html5.rb:64:in `convert'
    /builddir/build/GIT/asciidoctor/lib/asciidoctor/document.rb:956:in `convert'
    /builddir/build/GIT/asciidoctor/test/links_test.rb:653:in `block (3 levels) in <top (required)>'
    /builddir/build/GIT/asciidoctor/test/test_helper.rb:320:in `using_memory_logger'
    /builddir/build/GIT/asciidoctor/test/links_test.rb:651:in `block (2 levels) in <top (required)>'

...
...

This is because of ruby3.3 Logger change:
ruby/ruby@194520f
ruby/logger#85

This can be fixed by calling initializer of ::Logger (by super).

mtasaka added a commit to mtasaka/asciidoctor that referenced this issue Sep 29, 2023
Upcoming ruby3.3 will have enhanced Logger class:
ruby/ruby@194520f
which initializes newly added instance variables.
Without initializing such variables (in super class), now using
subclass of Logger will cause exception.

To avoid this, first call super, then execute additional subclass
initialization.

Closes asciidoctor#4493 .
@mojavelinux mojavelinux added this to the v2.0.x milestone Sep 30, 2023
@mojavelinux
Copy link
Member

This same change needs to be made for the NullLogger and MemoryLogger, but we're missing tests for it. I'll open another issue to address it.

@mojavelinux
Copy link
Member

Oops, I tricked myself. This has already been fixed, but Asciidoctor 2.0.21 has not yet been released. It's time for me to schedule a release then.

@mojavelinux mojavelinux added the v2.0.21 Issues resolved in the 2.0.21 release label Feb 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug compliance v2.0.21 Issues resolved in the 2.0.21 release
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants