Skip to content

Generating RDoc for RDoc fails in Ruby 3.4.x and following #1343

@s2k

Description

@s2k

Observed behaviour

When trying to generate the RDoc documentation for Rdoc itself, I get the following error message:

> ruby -v && gem rdoc --rdoc rdoc
ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +YJIT +PRISM [arm64-darwin24]
Parsing documentation for RedCloth-4.3.4
Installing ri documentation for RedCloth-4.3.4
ERROR:  While executing gem ... (TypeError)
    no implicit conversion of nil into String

    @template_dir   = Pathname.new options.template_dir
                                   ^^^^^^^^^^^^^^^^^^^^

Where it still worked

When using Ruby 3.3.8, this worked:

~/dev > rbenv shell 3.3.8
~/dev > RUBYOPT=""
~/dev > ruby -v && gem rdoc --rdoc rdoc
ruby 3.3.8 (2025-04-09 revision b200bad6cd) [arm64-darwin24]
Parsing documentation for debug-1.9.2
# --- 8< --- several lines cut out --- 8< ---
Parsing documentation for typeprof-0.21.9

Why I assume it's an issue with RDoc

Given the error message above and the result of the following command, I presume the issue is within the rdoc gem itself since the code cited in the error message only ever appears in the rdoc gem:

 ~/.rbenv > find . -name "*.rb" -type f -exec egrep -Hin "@template_dir\s*=\s*Pathname.new\s*options.template_dir" {} \;
./versions/3.3.8/lib/ruby/3.3.0/rdoc/generator/darkfish.rb:167:    @template_dir   = Pathname.new options.template_dir
./versions/3.5.0-preview1/lib/ruby/gems/3.5.0+0/gems/rdoc-6.13.1/lib/rdoc/generator/darkfish.rb:161:    @template_dir   = Pathname.new options.template_dir
./versions/3.4.1/lib/ruby/3.4.0/rdoc/generator/darkfish.rb:167:    @template_dir   = Pathname.new options.template_dir
./versions/3.4.1/lib/ruby/gems/3.4.0/gems/rdoc-6.11.0/lib/rdoc/generator/darkfish.rb:167:    @template_dir   = Pathname.new options.template_dir
./versions/3.4.1/lib/ruby/gems/3.4.0/gems/rdoc-6.12.0/lib/rdoc/generator/darkfish.rb:167:    @template_dir   = Pathname.new options.template_dir
./versions/3.4.1/lib/ruby/gems/3.4.0/gems/rdoc-6.13.1/lib/rdoc/generator/darkfish.rb:161:    @template_dir   = Pathname.new options.template_dir
./versions/3.1.6/lib/ruby/3.1.0/rdoc/generator/darkfish.rb:167:    @template_dir   = Pathname.new options.template_dir
./versions/3.4.2/lib/ruby/3.4.0/rdoc/generator/darkfish.rb:167:    @template_dir   = Pathname.new options.template_dir
./versions/3.4.2/lib/ruby/gems/3.4.0/gems/rdoc-6.11.0/lib/rdoc/generator/darkfish.rb:167:    @template_dir   = Pathname.new options.template_dir
./versions/3.4.2/lib/ruby/gems/3.4.0/gems/rdoc-6.12.0/lib/rdoc/generator/darkfish.rb:167:    @template_dir   = Pathname.new options.template_dir
./versions/3.4.2/lib/ruby/gems/3.4.0/gems/rdoc-6.8.1/lib/rdoc/generator/darkfish.rb:167:    @template_dir   = Pathname.new options.template_dir
./versions/3.4.2/lib/ruby/gems/3.4.0/gems/rdoc-6.13.1/lib/rdoc/generator/darkfish.rb:161:    @template_dir   = Pathname.new options.template_dir
./versions/3.4.2/lib/ruby/gems/3.4.0/gems/rdoc-6.13.0/lib/rdoc/generator/darkfish.rb:161:    @template_dir   = Pathname.new options.template_dir
./versions/3.4.2/lib/ruby/gems/3.4.0/gems/rdoc-6.10.0/lib/rdoc/generator/darkfish.rb:167:    @template_dir   = Pathname.new options.template_dir

Hardware & OS used

  • OS: macOS Sequoia 15.4.1 arm64
  • Host: MacBook Pro (Apple M4 Max (16) @ 4.51 GHz)

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions