From b7a5d87eec05e8a928bb85d7527753e8c013adbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Romain=20Tarti=C3=A8re?= Date: Wed, 30 Oct 2024 16:34:59 -1000 Subject: [PATCH] Fix CI with latest yard Monkey patching libraries is a bad idea. Latest version of yard changed some internal details, which broke CI. A workaround was proposed in #401 but the root cause was not addressed. In this commit, we replace the private `io` object with an instance of a class that provide the expected `IO#write` method instead of `nil` which does not provide this interface in CI, so that the issue is not raised anymore. --- puppet-strings.gemspec | 2 +- .../yard/handlers/ruby/data_type_handler_spec.rb | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/puppet-strings.gemspec b/puppet-strings.gemspec index 13240f75..6a8d216f 100644 --- a/puppet-strings.gemspec +++ b/puppet-strings.gemspec @@ -23,6 +23,6 @@ Gem::Specification.new do |s| s.files = Dir['CHANGELOG.md', 'README.md', 'LICENSE', 'lib/**/*', 'exe/**/*'] s.add_runtime_dependency 'rgen', '~> 0.9' - s.add_runtime_dependency 'yard', '~> 0.9', '< 0.9.37' + s.add_runtime_dependency 'yard', '~> 0.9' s.requirements << 'puppet, >= 7.0.0' end diff --git a/spec/unit/puppet-strings/yard/handlers/ruby/data_type_handler_spec.rb b/spec/unit/puppet-strings/yard/handlers/ruby/data_type_handler_spec.rb index 474eca3c..b0b2e69f 100644 --- a/spec/unit/puppet-strings/yard/handlers/ruby/data_type_handler_spec.rb +++ b/spec/unit/puppet-strings/yard/handlers/ruby/data_type_handler_spec.rb @@ -18,8 +18,12 @@ YARD::Logger.instance.io = original_yard_logging_object end + class NullLogger + def write(_message); end + end + def suppress_yard_logging - YARD::Logger.instance.io = nil + YARD::Logger.instance.io = NullLogger.new end describe 'parsing source without a data type definition' do