Revamp dependencies and file content across inspec and inspec-core.

+ inspec-core has all the real dependencies for inspec (the project).
+ inspec keeps all aws/azure/gcp code and their dependencies.
+ inspec depends on inspec-core and inspec-bin.
+ Removed test_files entirely.
+ Removed FNM_DOTMATCH on our globs... don't cargo cult.
+ Added some code to print out the gemspec and files to make it easier
  to debug by executing the gemspec directly.
+ Sorted all deps... so hard to find things.
+ Added version specifiers where needed.

Signed-off-by: Ryan Davis <zenspider@chef.io>
This commit is contained in:
Ryan Davis 2020-01-24 14:56:10 -08:00
parent 56988f9f8a
commit 217d79d4d6
2 changed files with 37 additions and 60 deletions

View file

@ -15,36 +15,37 @@ Gem::Specification.new do |spec|
spec.required_ruby_version = "~> 2.4"
spec.files = %w{README.md LICENSE} + Dir.glob("{bin,lib,etc}/**/*", File::FNM_DOTMATCH)
.reject { |f| File.directory?(f) || f =~ /aws|azure|gcp/ || f =~ %r{lib/plugins/.*/test/} }
# the gemfile and gemspec are necessary for appbundler so don't remove it
spec.files =
Dir.glob("{{lib,etc}/**/*,README.md,LICENSE,Gemfile,inspec-core.gemspec}")
.grep_v(%r{(?<!inspec-init/templates/profiles/)(aws|azure|gcp)})
.grep_v(%r{lib/plugins/.*/test/})
.reject { |f| File.directory?(f) }
# Implementation dependencies
spec.add_dependency "chef-telemetry", "~> 1.0"
spec.add_dependency "chef-telemetry", "~> 1.0"
spec.add_dependency "license-acceptance", ">= 0.2.13", "< 2.0"
spec.add_dependency "thor", ">= 0.20", "< 2.0"
spec.add_dependency "json-schema", "~> 2.8"
spec.add_dependency "method_source", "~> 0.8"
spec.add_dependency "rubyzip", "~> 1.2", ">= 1.2.2"
spec.add_dependency "rspec", "~> 3.9"
spec.add_dependency "rspec-its", "~> 1.2"
spec.add_dependency "pry", "~> 0"
spec.add_dependency "hashie", "~> 3.4"
spec.add_dependency "mixlib-log"
spec.add_dependency "sslshake", "~> 1.2"
spec.add_dependency "parallel", "~> 1.9"
spec.add_dependency "faraday", ">=0.9.0"
spec.add_dependency "tty-table", "~> 0.10"
spec.add_dependency "tty-prompt", "~> 0.17"
spec.add_dependency "tomlrb", "~> 1.2"
spec.add_dependency "addressable", "~> 2.4"
spec.add_dependency "parslet", "~> 1.5"
spec.add_dependency "semverse"
spec.add_dependency "htmlentities"
spec.add_dependency "multipart-post"
spec.add_dependency "term-ansicolor"
spec.add_dependency "thor", ">= 0.20", "< 2.0"
spec.add_dependency "json-schema", "~> 2.8"
spec.add_dependency "method_source", "~> 0.8"
spec.add_dependency "rubyzip", "~> 1.2", ">= 1.2.2"
spec.add_dependency "rspec", "~> 3.9"
spec.add_dependency "rspec-its", "~> 1.2"
spec.add_dependency "pry", "~> 0"
spec.add_dependency "hashie", "~> 3.4"
spec.add_dependency "mixlib-log", "~> 3.0"
spec.add_dependency "sslshake", "~> 1.2"
spec.add_dependency "parallel", "~> 1.9"
spec.add_dependency "faraday", ">= 0.9.0"
spec.add_dependency "tty-table", "~> 0.10"
spec.add_dependency "tty-prompt", "~> 0.17"
spec.add_dependency "tomlrb", "~> 1.2"
spec.add_dependency "addressable", "~> 2.4"
spec.add_dependency "parslet", "~> 1.5"
spec.add_dependency "semverse", "~> 3.0"
spec.add_dependency "htmlentities", "~> 4.3" # TODO: remove when #4853 fixed
spec.add_dependency "multipart-post", "~> 2.0"
spec.add_dependency "term-ansicolor", "~> 1.7"
spec.add_dependency "train-core", "~> 3.0"
# Used for Azure profile until integrated into train
spec.add_dependency "faraday_middleware", "~> 0.12.2"
end

View file

@ -15,38 +15,14 @@ Gem::Specification.new do |spec|
spec.required_ruby_version = "~> 2.4"
# the gemfile and gemspec are necessary for appbundler so don't remove it
spec.files = %w{Gemfile inspec.gemspec README.md LICENSE} + Dir.glob(
"{bin,lib,etc}/**/*", File::FNM_DOTMATCH
).reject { |f| File.directory?(f) }
# ONLY the aws/azure/gcp files. The rest will come in from inspec-core
# the gemspec is necessary for appbundler so don't remove it
spec.files =
Dir.glob("{{lib,etc}/**/*,inspec.gemspec}")
.grep(/aws|azure|gcp|gemspec/)
.reject { |f| File.directory?(f) }
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
.reject { |f| File.directory?(f) || f =~ %r{lib/plugins/.*/test/} }
# Implementation dependencies
spec.add_dependency "chef-telemetry", "~> 1.0"
spec.add_dependency "license-acceptance", ">= 0.2.13", "< 2.0"
spec.add_dependency "thor", ">= 0.20", "< 2.0"
spec.add_dependency "json-schema", "~> 2.8"
spec.add_dependency "method_source", "~> 0.8"
spec.add_dependency "rubyzip", "~> 1.2", ">= 1.2.2"
spec.add_dependency "rspec", "~> 3.9"
spec.add_dependency "rspec-its", "~> 1.2"
spec.add_dependency "pry", "~> 0"
spec.add_dependency "hashie", "~> 3.4"
spec.add_dependency "mixlib-log"
spec.add_dependency "sslshake", "~> 1.2"
spec.add_dependency "parallel", "~> 1.9"
spec.add_dependency "faraday", ">=0.9.0"
spec.add_dependency "tty-table", "~> 0.10"
spec.add_dependency "tty-prompt", "~> 0.17"
spec.add_dependency "tomlrb", "~> 1.2"
spec.add_dependency "addressable", "~> 2.4"
spec.add_dependency "parslet", "~> 1.5"
spec.add_dependency "semverse"
spec.add_dependency "htmlentities"
spec.add_dependency "multipart-post"
spec.add_dependency "term-ansicolor"
spec.add_dependency "inspec-core", "= #{Inspec::VERSION}"
spec.add_dependency "train", "~> 3.0"
@ -55,6 +31,6 @@ Gem::Specification.new do |spec|
# Train plugins we ship with InSpec
spec.add_dependency "train-habitat", "~> 0.1"
spec.add_dependency "train-aws", "~> 0.1"
spec.add_dependency "train-winrm", "~> 0.2"
spec.add_dependency "train-aws", "~> 0.1"
spec.add_dependency "train-winrm", "~> 0.2"
end