Skip to content

Commit

Permalink
Follow depended gem version by fluent-plugin-generate
Browse files Browse the repository at this point in the history
In the previous versions, generated .gemspec doesn't follow
depended gem version which is used in fluentd.gemspec at all.

Instead, it is changed to retrieve depended gem version from
Gemfile.lock to sync with it.

Before:

  spec.add_development_dependency "bundler", "~> 1.14"
  spec.add_development_dependency "rake", "~> 12.0"
  spec.add_development_dependency "test-unit", "~> 3.0"

It is required to update manually.

After:

  spec.add_development_dependency "bundler", "~> 2.2.15"
  spec.add_development_dependency "rake", "~> 13.0"
  spec.add_development_dependency "test-unit", "~> 3.3"

Above depended version is replaced by <%= %> in template.
No need to update manually.

Signed-off-by: Kentaro Hayashi <kenhys@gmail.com>
  • Loading branch information
kenhys committed Mar 31, 2021
1 parent 43353c6 commit 40691ae
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 3 deletions.
30 changes: 30 additions & 0 deletions lib/fluent/command/plugin_generator.rb
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,36 @@ def plugin_name
underscore_name
end

def gem_file_path
File.expand_path(File.join(File.dirname(__FILE__),
"../../../",
"Gemfile"))
end

def lock_file_path
File.expand_path(File.join(File.dirname(__FILE__),
"../../../",
"Gemfile.lock"))
end

def locked_gem_version(gem_name)
d = Bundler::Definition.build(gem_file_path, lock_file_path, false)
d.locked_gems.dependencies[gem_name].requirement.requirements.first.last.version
end

def rake_version
locked_gem_version("rake")
end

def test_unit_version
locked_gem_version("test-unit")
end

def bundler_version
d = Bundler::Definition.build(gem_file_path, lock_file_path, false)
d.locked_gems.bundler_version.version
end

def class_name
"#{capitalized_name}#{type.capitalize}"
end
Expand Down
6 changes: 3 additions & 3 deletions templates/new_gem/fluent-plugin.gemspec.erb
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ Gem::Specification.new do |spec|
spec.test_files = test_files
spec.require_paths = ["lib"]

spec.add_development_dependency "bundler", "~> 1.14"
spec.add_development_dependency "rake", "~> 12.0"
spec.add_development_dependency "test-unit", "~> 3.0"
spec.add_development_dependency "bundler", "~> <%= bundler_version %>"
spec.add_development_dependency "rake", "~> <%= rake_version %>"
spec.add_development_dependency "test-unit", "~> <%= test_unit_version %>"
spec.add_runtime_dependency "fluentd", [">= 0.14.10", "< 2"]
end

0 comments on commit 40691ae

Please sign in to comment.