puppetlabs / puppet-strings

The next generation Puppet documentation extraction and presentation tool.
http://puppetlabs.github.io/puppet-strings/
Apache License 2.0
90 stars 83 forks source link

Error / emptied target file with 2.5.0 #265

Closed wyardley closed 2 years ago

wyardley commented 3 years ago

Describe the Bug

With recent Voxpupuli modulesync, Ruby 2.6, and the latest Puppet-strings, running bundle exec rake strings:generate:reference results in the error:

NoMethodError: undefined method `split' for nil:NilClass

and an empty REFERENCE.md file.

% ruby --version                                     
ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin20]

Some discussion in https://github.com/voxpupuli/puppet-rabbitmq/pull/863

Expected Behavior

The CHANGELOG to be generated. Reverting to 2.4.0 restores the expected behavior.

Steps to Reproduce

Steps to reproduce the behavior:

  1. check out e.g., github.com/voxpupuli/puppet-rabbitmq
  2. run bundle install and then run bundle exec rake strings:generate:reference

Environment

Additional Context

Add any other context about the problem here.

see traceback below

NoMethodError: undefined method `split' for nil:NilClass
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/puppet-strings-2.5.0/lib/puppet-strings/markdown/base.rb:173:in `word_wrap'
(erb):119:in `block in render'
(erb):100:in `each'
(erb):100:in `render'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/erb.rb:901:in `eval'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/erb.rb:901:in `result'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/puppet-strings-2.5.0/lib/puppet-strings/markdown/base.rb:181:in `render'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/puppet-strings-2.5.0/lib/puppet-strings/markdown/resource_type.rb:11:in `render'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/puppet-strings-2.5.0/lib/puppet-strings/markdown/resource_types.rb:22:in `block in render'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/puppet-strings-2.5.0/lib/puppet-strings/markdown/resource_types.rb:21:in `each'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/puppet-strings-2.5.0/lib/puppet-strings/markdown/resource_types.rb:21:in `render'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/puppet-strings-2.5.0/lib/puppet-strings/markdown.rb:22:in `generate'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/puppet-strings-2.5.0/lib/puppet-strings/markdown.rb:38:in `block in render'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/puppet-strings-2.5.0/lib/puppet-strings/markdown.rb:38:in `open'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/puppet-strings-2.5.0/lib/puppet-strings/markdown.rb:38:in `render'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/puppet-strings-2.5.0/lib/puppet-strings.rb:81:in `render_markdown'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/puppet-strings-2.5.0/lib/puppet-strings.rb:62:in `generate'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/puppet-strings-2.5.0/lib/puppet-strings/tasks/generate.rb:43:in `block (2 levels) in <top (required)>'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:279:in `block in execute'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:279:in `each'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:279:in `execute'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:219:in `block in invoke_with_call_chain'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/monitor.rb:230:in `mon_synchronize'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:199:in `invoke_with_call_chain'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:188:in `invoke'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/puppet-strings-2.5.0/lib/puppet-strings/tasks/generate.rb:49:in `block (3 levels) in <top (required)>'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:281:in `block in execute'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:281:in `each'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:281:in `execute'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:219:in `block in invoke_with_call_chain'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/monitor.rb:230:in `mon_synchronize'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:199:in `invoke_with_call_chain'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/rake-13.0.1/lib/rake/task.rb:188:in `invoke'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/rake-13.0.1/lib/rake/application.rb:160:in `invoke_task'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/rake-13.0.1/lib/rake/application.rb:116:in `block (2 levels) in top_level'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/rake-13.0.1/lib/rake/application.rb:116:in `each'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/rake-13.0.1/lib/rake/application.rb:116:in `block in top_level'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/rake-13.0.1/lib/rake/application.rb:125:in `run_with_threads'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/rake-13.0.1/lib/rake/application.rb:110:in `top_level'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/rake-13.0.1/lib/rake/application.rb:83:in `block in run'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/rake-13.0.1/lib/rake/application.rb:186:in `standard_exception_handling'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/rake-13.0.1/lib/rake/application.rb:80:in `run'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/gems/rake-13.0.1/exe/rake:27:in `<top (required)>'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/bin/rake:23:in `load'
/Users/wby/git/puppet-rabbitmq/.vendor/ruby/2.6.0/bin/rake:23:in `<top (required)>'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/bundler/cli/exec.rb:74:in `load'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/bundler/cli/exec.rb:74:in `kernel_load'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/bundler/cli/exec.rb:28:in `run'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/bundler/cli.rb:463:in `exec'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/bundler/vendor/thor/lib/thor.rb:387:in `dispatch'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/bundler/cli.rb:27:in `dispatch'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/bundler/vendor/thor/lib/thor/base.rb:466:in `start'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/bundler/cli.rb:18:in `start'
/Library/Ruby/Gems/2.6.0/gems/bundler-1.17.2/exe/bundle:30:in `block in <top (required)>'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/bundler/friendly_errors.rb:124:in `with_friendly_errors'
/Library/Ruby/Gems/2.6.0/gems/bundler-1.17.2/exe/bundle:22:in `<top (required)>'
/usr/bin/bundle:23:in `load'
/usr/bin/bundle:23:in `<main>'
Tasks: TOP => strings:generate
DavidS commented 3 years ago

This was already fixed in https://github.com/puppetlabs/puppet-strings/commit/9b538837923367117fdc6ae7c00e2730ac37a879 and will "only" need a release to get deployed.

I could verify that running puppet-strings from the default branch fixes the issue.