license_finder 5.0.3 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 961521e1c3ddc7b0d6dea3404f678dec8c686d9c55850ce4fd8e0fae0892d00e
4
- data.tar.gz: a6142833a1b40a948ac60bb6a0edfe8a42fb2479de7eeed4edef56b2052f5a3d
3
+ metadata.gz: 0f61e3d2e9a0285c561c1192e95d0b91e3a46472960bf70e03bc454f0d66d65f
4
+ data.tar.gz: 2e09b02961abd261e2998a53d5e67122ffe6dec115976ec4bda85d917ea24841
5
5
  SHA512:
6
- metadata.gz: 0bb763ad328cc03b83ac75ecb05130e1ceb9af9739b5065e9c32bf0340b6bb3bf5f28c659e3b024dda338ae8b2a53444634ef3063c2fdcd6fcc3dbb668a66f75
7
- data.tar.gz: ff1c9248369f3b3f2b18b3353f3a89e1ccb2090d5e83bb527bd0be7b5aa6091ac676d4d4f652c710fbdeeb06b5e5049d55023a5f13818028a70ccecddde11a69
6
+ metadata.gz: cb8e2141ca54fe804bcd94417444b75786042c08c8ecd63d58d23612b12d112fd22a635a6410c207c9ff945f1c86f1fe66de07dd26fe36dd9a0fde5d3d088325
7
+ data.tar.gz: 8e232fde4fafe4ea8162c8cab8664339ef2e2fbd666484b95ff1fc273b5904ec9ecafe7b3e1f3f05eed23c1eabcb770cc167c00983a87bd74575612efa9e0d75
data/.gitignore CHANGED
@@ -8,3 +8,6 @@ pkg/*
8
8
  tmp/
9
9
  features/fixtures/maven-wrapper/target
10
10
  *~
11
+ features/fixtures/sbt/target
12
+ features/fixtures/sbt/project/target
13
+ features/fixtures/sbt/project/project
@@ -1,4 +1,9 @@
1
- # [5.0.1] / 2018-02-06
1
+ # [5.0.3] / 2018-02-13
2
+
3
+ ### Changed
4
+ * Add the -vendor-only flag to dep-ensure calls - [e305bd1](https://github.com/pivotal/LicenseFinder/commit/e305bd1d5b2d9653f828c3940b59a12903904699)
5
+
6
+ # [5.0.2] / 2018-02-06
2
7
 
3
8
  ### Fixed
4
9
  * Add conditional production flag to npm - [533f9b8](https://github.com/pivotal/LicenseFinder/commit/533f9b8fda250655f3613444da49fdce60215237)
@@ -546,4 +551,5 @@ Bugfixes:
546
551
  [3.0.1]: https://github.com/pivotal/LicenseFinder/compare/v3.0.0...v3.0.1
547
552
  [3.0.0]: https://github.com/pivotal/LicenseFinder/compare/v2.1.2...v3.0.0
548
553
  [5.0.0]: https://github.com/pivotal/LicenseFinder/compare/v4.0.2...v5.0.0
549
- [5.0.1]: https://github.com/pivotal/LicenseFinder/compare/v5.0.0...v5.0.1
554
+ [5.0.2]: https://github.com/pivotal/LicenseFinder/compare/v5.0.0...v5.0.2
555
+ [5.0.3]: https://github.com/pivotal/LicenseFinder/compare/v5.0.2...v5.0.3
data/Dockerfile CHANGED
@@ -45,6 +45,18 @@ RUN curl -O http://www-us.apache.org/dist/maven/maven-3/3.5.2/binaries/apache-ma
45
45
  mv apache-maven-3.5.2 /usr/local/lib/maven && \
46
46
  ln -s /usr/local/lib/maven/bin/mvn /usr/local/bin/mvn
47
47
 
48
+ # install sbt
49
+ ENV SBT_VERSION 1.1.1
50
+ RUN mkdir -p /usr/local/share/sbt-launcher-packaging && \
51
+ curl --progress \
52
+ --retry 3 \
53
+ --retry-delay 15 \
54
+ --location "https://github.com/sbt/sbt/releases/download/v${SBT_VERSION}/sbt-${SBT_VERSION}.tgz" \
55
+ --output "/tmp/sbt-${SBT_VERSION}.tgz" && \
56
+ tar -xzf "/tmp/sbt-${SBT_VERSION}.tgz" -C /usr/local/share/sbt-launcher-packaging --strip-components=1 && \
57
+ ln -s /usr/local/share/sbt-launcher-packaging/bin/sbt /usr/local/bin/sbt && \
58
+ rm -f "/tmp/sbt-${SBT_VERSION}.tgz"
59
+
48
60
  # install gradle
49
61
  WORKDIR /tmp
50
62
  RUN curl -L -o gradle.zip http://services.gradle.org/distributions/gradle-4.2-bin.zip && \
@@ -78,7 +90,7 @@ ENV LC_ALL=en_US.UTF-8
78
90
 
79
91
  #install rvm
80
92
  RUN curl -sSL https://rvm.io/mpapis.asc | gpg --import && \
81
- curl -sSL https://get.rvm.io | sudo bash -s stable --ruby=2.4.1
93
+ curl -sSL https://get.rvm.io | sudo bash -s stable --ruby=2.5.1
82
94
  ENV PATH=/usr/local/rvm/bin:$PATH
83
95
 
84
96
  #install mix
data/README.md CHANGED
@@ -6,7 +6,8 @@ Build status
6
6
  * Ruby 2.1.5 [![Ruby 2.1.5 build status](https://norsk.cf-app.com/api/v1/teams/main/pipelines/LicenseFinder/jobs/ruby-2.1.5/badge)](https://norsk.cf-app.com/teams/main/pipelines/LicenseFinder)
7
7
  * Ruby 2.2.0 [![Ruby 2.2.0 build status](https://norsk.cf-app.com/api/v1/teams/main/pipelines/LicenseFinder/jobs/ruby-2.2.0/badge)](https://norsk.cf-app.com/teams/main/pipelines/LicenseFinder)
8
8
  * Ruby 2.3.0 [![Ruby 2.3.0 build status](https://norsk.cf-app.com/api/v1/teams/main/pipelines/LicenseFinder/jobs/ruby-2.3.0/badge)](https://norsk.cf-app.com/teams/main/pipelines/LicenseFinder)
9
- * Ruby 2.4.1 [![Ruby 2.4.1 build status](https://norsk.cf-app.com/api/v1/teams/main/pipelines/LicenseFinder/jobs/ruby-2.4.1/badge)](https://norsk.cf-app.com/teams/main/pipelines/LicenseFinder)
9
+ * Ruby 2.4.4 [![Ruby 2.4.4 build status](https://norsk.cf-app.com/api/v1/teams/main/pipelines/LicenseFinder/jobs/ruby-2.4.4/badge)](https://norsk.cf-app.com/teams/main/pipelines/LicenseFinder)
10
+ * Ruby 2.5.1 [![Ruby 2.5.1 build status](https://norsk.cf-app.com/api/v1/teams/main/pipelines/LicenseFinder/jobs/ruby-2.5.1/badge)](https://norsk.cf-app.com/teams/main/pipelines/LicenseFinder)
10
11
  * JRuby 9.0.4.0 [![JRuby 9.0.4.0 build status](https://norsk.cf-app.com/api/v1/teams/main/pipelines/LicenseFinder/jobs/ruby-jruby-9.0.4.0/badge)](https://norsk.cf-app.com/teams/main/pipelines/LicenseFinder)
11
12
 
12
13
 
@@ -48,6 +49,7 @@ report.
48
49
  * Golang (via `gvt`, `glide`,`dep`, and `govendor`)
49
50
  * JavaScript (via `yarn`)
50
51
  * C++/C (via `conan`)
52
+ * Scala (via `sbt`)
51
53
 
52
54
  ## Installation
53
55
 
@@ -171,6 +173,7 @@ languages, as long as that language has a package definition in the project dire
171
173
  * `Gopkg.lock` file (for `dep`)
172
174
  * `yarn.lock` file (for `yarn`)
173
175
  * `conanfile.txt` file (for `conan`)
176
+ * `build.sbt` file (for `sbt`)
174
177
 
175
178
 
176
179
  ### Continuous Integration
@@ -409,6 +412,19 @@ Ensure that `conan install` does not generate an error.
409
412
  ., license* -> ./licenses @ folder=True, ignore_case=True
410
413
  ```
411
414
 
415
+ ### SBT Projects
416
+
417
+ `license_finder` supports SBT. You need to have installed the sbt-license-report in your project:
418
+ [https://github.com/sbt/sbt-license-report](https://github.com/sbt/sbt-license-report)
419
+
420
+ By default, `license_finder` will report on SBT's "compile" and "test" dependencies. If
421
+ you want to generate a report for some other dependency configuration, you can specify
422
+ it in your projects's `build.sbt`
423
+
424
+ ```
425
+ licenseConfigurations := Set("compile", "provided")
426
+ ```
427
+
412
428
  ## Requirements
413
429
 
414
430
  `license_finder` requires ruby >= 1.9, or jruby.
@@ -1,5 +1,5 @@
1
1
  <% setup_slack = defined?(slack_url) && defined?(slack_channel) %>
2
- <% ruby_versions = %w(2.4.1 2.3.0 2.2.0 2.1.5 jruby-9.0.4.0) %>
2
+ <% ruby_versions = %w(2.5.1 2.4.4 2.3.0 2.2.0 2.1.5 jruby-9.0.4.0) %>
3
3
 
4
4
  resource_types:
5
5
  - name: pull-request
@@ -76,3 +76,39 @@ jobs:
76
76
  name: version/tag.txt
77
77
  tag: version/tag.txt
78
78
  body: version/changelog.txt
79
+
80
+ - name: manual-release
81
+ plan:
82
+ - get: lf-git
83
+ - get: lf-image
84
+ params:
85
+ save: true
86
+ - get: lf-release
87
+ - task: update-changelog
88
+ image: lf-image
89
+ params:
90
+ GIT_USERNAME: ((GithubApiUser))
91
+ GIT_EMAIL: ((GithubApiEmail))
92
+ file: lf-git/ci/tasks/update-changelog.yml
93
+ - put: lf-image
94
+ params:
95
+ build: lf-git
96
+ tag: version/version.txt
97
+ tag_as_latest: true
98
+ - task: build-and-push-gem
99
+ image: lf-image
100
+ params:
101
+ GIT_USERNAME: ((GithubApiUser))
102
+ GIT_EMAIL: ((GithubApiEmail))
103
+ GIT_PRIVATE_KEY: ((CfOslBotPrivateKey))
104
+ GEM_API_KEY: ((LicenseFinderGemApiKey))
105
+ file: lf-git/ci/tasks/build-and-push-gem.yml
106
+ - put: lf-git
107
+ params:
108
+ repository: lf-git-changed
109
+ tag: version/tag.txt
110
+ - put: lf-release
111
+ params:
112
+ name: version/tag.txt
113
+ tag: version/tag.txt
114
+ body: version/changelog.txt
@@ -14,9 +14,17 @@ bundle install
14
14
  if [ "$RUBY_VERSION_UNDER_TEST" == "jruby-9.0.4.0" ]
15
15
  then
16
16
  bundle update rack
17
+ apt-get -y install software-properties-common
18
+ add-apt-repository -y ppa:webupd8team/java
19
+ apt-get update
20
+ echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 select true" | sudo debconf-set-selections
21
+ apt -y install oracle-java8-set-default
17
22
  fi
18
- #
23
+
19
24
 
20
25
  bundle exec rake install
21
26
  bundle exec rake spec
22
27
  bundle exec rake features
28
+
29
+
30
+
@@ -47,7 +47,8 @@ module LicenseFinder
47
47
  :format,
48
48
  :columns,
49
49
  :aggregate_paths,
50
- :recursive
50
+ :recursive,
51
+ :sbt_include_groups
51
52
  ).merge(
52
53
  logger: logger_mode
53
54
  )
@@ -29,6 +29,7 @@ module LicenseFinder
29
29
  class_option :rebar_deps_dir, desc: "Path to rebar dependencies directory. Only meaningful if used with a Erlang/rebar project. Defaults to 'deps'."
30
30
  class_option :mix_command, desc: "Command to use when fetching packages through Mix. Only meaningful if used with a Mix project (i.e., Elixir or Erlang). Defaults to 'mix'."
31
31
  class_option :mix_deps_dir, desc: "Path to Mix dependencies directory. Only meaningful if used with a Mix project (i.e., Elixir or Erlang). Defaults to 'deps'."
32
+ class_option :sbt_include_groups, desc: 'Whether dependency name should include group id. Only meaningful if used with a Scala/sbt project. Defaults to false.'
32
33
 
33
34
  # Method options which are shared between report and action_item
34
35
  def self.format_option
@@ -118,6 +118,10 @@ module LicenseFinder
118
118
  get(:columns)
119
119
  end
120
120
 
121
+ def sbt_include_groups
122
+ get(:sbt_include_groups)
123
+ end
124
+
121
125
  protected
122
126
 
123
127
  attr_accessor :primary_config
@@ -82,7 +82,7 @@ module LicenseFinder
82
82
  end
83
83
 
84
84
  def clear_logs
85
- FileUtils.rmdir config.log_directory if File.directory? config.log_directory
85
+ FileUtils.rmtree config.log_directory, secure: true if File.directory? config.log_directory
86
86
  end
87
87
 
88
88
  def options
@@ -102,7 +102,8 @@ module LicenseFinder
102
102
  mix_command: config.mix_command,
103
103
  mix_deps_dir: config.mix_deps_dir,
104
104
  prepare: config.prepare,
105
- prepare_no_fail: config.prepare_no_fail
105
+ prepare_no_fail: config.prepare_no_fail,
106
+ sbt_include_groups: config.sbt_include_groups
106
107
  }
107
108
  end
108
109
  end
@@ -183,3 +183,4 @@ require 'license_finder/packages/merged_package'
183
183
  require 'license_finder/packages/nuget_package'
184
184
  require 'license_finder/packages/conan_package'
185
185
  require 'license_finder/packages/yarn_package'
186
+ require 'license_finder/packages/sbt_package'
@@ -143,5 +143,6 @@ require 'license_finder/package_managers/rebar'
143
143
  require 'license_finder/package_managers/nuget'
144
144
  require 'license_finder/package_managers/dep'
145
145
  require 'license_finder/package_managers/conan'
146
+ require 'license_finder/package_managers/sbt'
146
147
 
147
148
  require 'license_finder/package'
@@ -1,3 +1,6 @@
1
+ require 'license_finder/shared_helpers/common_path'
2
+ require 'json'
3
+
1
4
  module LicenseFinder
2
5
  class Govendor < PackageManager
3
6
  def possible_package_paths
@@ -6,13 +9,12 @@ module LicenseFinder
6
9
 
7
10
  def current_packages
8
11
  file = File.read(detected_package_path)
9
- json = JSON.parse(file)
10
- packages = json['package']
12
+ packages = packages_from_json(file)
11
13
  packages.map do |package|
12
14
  GoPackage.from_dependency({
13
- 'ImportPath' => package['path'],
14
- 'InstallPath' => project_path.join('vendor', package['path']),
15
- 'Rev' => package['revision']
15
+ 'ImportPath' => package[:path],
16
+ 'InstallPath' => project_path.join('vendor', package[:path]),
17
+ 'Rev' => package[:sha]
16
18
  }, nil, true)
17
19
  end
18
20
  end
@@ -28,5 +30,32 @@ module LicenseFinder
28
30
  def self.prepare_command
29
31
  'govendor sync'
30
32
  end
33
+
34
+ private
35
+
36
+ def packages_from_json(json_string)
37
+ data = JSON.parse(json_string)
38
+ packages = data['package']
39
+
40
+ packages_by_sha = {}
41
+
42
+ packages.each do |package|
43
+ package_path = package['path']
44
+ package_revision = package['revision']
45
+ if packages_by_sha[package_revision].nil?
46
+ packages_by_sha[package_revision] = [package_path]
47
+ else
48
+ packages_by_sha[package_revision] << package_path
49
+ end
50
+ end
51
+
52
+ result = []
53
+ packages_by_sha.each do |sha, paths|
54
+ common_paths = CommonPathHelper.shortest_common_paths(paths)
55
+ common_paths.each { |cp| result << { sha: sha, path: cp } }
56
+ end
57
+
58
+ result
59
+ end
31
60
  end
32
61
  end
@@ -1,3 +1,4 @@
1
+ require 'license_finder/shared_helpers/common_path'
1
2
  module LicenseFinder
2
3
  class Gvt < PackageManager
3
4
  def possible_package_paths
@@ -47,12 +48,32 @@ module LicenseFinder
47
48
 
48
49
  def packages_from_output(output, path)
49
50
  package_lines = output.split("\n")
50
- package_lines.map do |package_line|
51
- import_path, revision, repo = package_line.split
51
+ packages_by_sha = {}
52
+ package_lines.each do |p|
53
+ package_path, sha, repo = p.split
54
+ if packages_by_sha[sha].nil?
55
+ packages_by_sha[sha] = {}
56
+ packages_by_sha[sha]['paths'] = [package_path]
57
+ packages_by_sha[sha]['repo'] = repo
58
+ else
59
+ packages_by_sha[sha]['paths'] << package_path
60
+ end
61
+ end
62
+
63
+ result = []
64
+ packages_by_sha.each do |sha, info|
65
+ paths = CommonPathHelper.shortest_common_paths(info['paths'])
66
+
67
+ paths.each { |p| result << [sha, p, info['repo']] }
68
+ end
69
+
70
+ result.map do |package_info|
71
+ sha, import_path, repo = package_info
72
+
52
73
  GoPackage.from_dependency({
53
74
  'ImportPath' => import_path,
54
75
  'InstallPath' => path.join(import_path),
55
- 'Rev' => revision,
76
+ 'Rev' => sha,
56
77
  'Homepage' => repo
57
78
  }, nil, true)
58
79
  end
@@ -25,7 +25,8 @@ module LicenseFinder
25
25
  def possible_package_paths
26
26
  path = project_path.join('vendor/*.nupkg')
27
27
  nuget_dir = Dir[path].map { |pkg| File.dirname(pkg) }.uniq
28
- possible_paths = [project_path.join('.nuget'), project_path.join('packages')]
28
+
29
+ possible_paths = [project_path.join('packages.config'), project_path.join('.nuget')]
29
30
  possible_paths.unshift(Pathname(nuget_dir.first)) unless nuget_dir.empty?
30
31
  possible_paths
31
32
  end
@@ -25,6 +25,18 @@ module LicenseFinder
25
25
  'pip'
26
26
  end
27
27
 
28
+ def self.prepare_command
29
+ 'pip install'
30
+ end
31
+
32
+ def prepare
33
+ prep_cmd = "#{Pip.prepare_command} -r #{@requirements_path}"
34
+ _stdout, stderr, status = Dir.chdir(project_path) { Cmd.run(prep_cmd) }
35
+ return if status.success?
36
+ log_errors stderr
37
+ raise "Prepare command '#{prep_cmd}' failed" unless @prepare_no_fail
38
+ end
39
+
28
40
  def possible_package_paths
29
41
  if project_path.nil?
30
42
  [@requirements_path]
@@ -0,0 +1,46 @@
1
+ require 'csv'
2
+ require 'license_finder/package_utils/sbt_dependency_finder'
3
+
4
+ module LicenseFinder
5
+ class Sbt < PackageManager
6
+ def initialize(options = {})
7
+ super
8
+ @include_groups = options[:sbt_include_groups]
9
+ end
10
+
11
+ def current_packages
12
+ command = "#{package_management_command} dumpLicenseReport"
13
+ _stdout, stderr, status = Dir.chdir(project_path) { Cmd.run(command) }
14
+ raise "Command '#{command}' failed to execute: #{stderr}" unless status.success?
15
+
16
+ dependencies = SbtDependencyFinder.new(project_path).dependencies
17
+ packages = dependencies.flat_map do |text|
18
+ options = {
19
+ headers: true
20
+ }
21
+
22
+ contents = CSV.parse(text, options)
23
+ contents.map do |row|
24
+ group_id, name, version = row['Dependency'].split('#').map(&:strip)
25
+ spec = {
26
+ 'artifactId' => name,
27
+ 'groupId' => group_id,
28
+ 'version' => version,
29
+ 'licenses' => [{ 'name' => row['License'] }]
30
+ }
31
+ SbtPackage.new(spec, logger: logger, include_groups: @include_groups)
32
+ end
33
+ end
34
+
35
+ packages.uniq
36
+ end
37
+
38
+ def package_management_command
39
+ 'sbt'
40
+ end
41
+
42
+ def possible_package_paths
43
+ [project_path.join('build.sbt')]
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,13 @@
1
+ module LicenseFinder
2
+ class SbtDependencyFinder
3
+ def initialize(project_path)
4
+ @project_path = project_path
5
+ end
6
+
7
+ def dependencies
8
+ Pathname
9
+ .glob(@project_path.join('**', 'target', 'license-reports', '*.csv'))
10
+ .map(&:read)
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,20 @@
1
+ module LicenseFinder
2
+ class SbtPackage < Package
3
+ def initialize(spec, options = {})
4
+ name = spec['artifactId']
5
+ name = "#{spec['groupId']}:#{name}" if options[:include_groups]
6
+
7
+ super(
8
+ name,
9
+ spec['version'],
10
+ options.merge(
11
+ spec_licenses: Array(spec['licenses']).map { |l| l['name'] }
12
+ )
13
+ )
14
+ end
15
+
16
+ def package_manager
17
+ 'Sbt'
18
+ end
19
+ end
20
+ end
@@ -1,7 +1,7 @@
1
1
  module LicenseFinder
2
2
  class Scanner
3
3
  PACKAGE_MANAGERS = [GoDep, GoWorkspace, Go15VendorExperiment, Glide, Gvt, Govendor, Dep, Bundler, NPM, Pip,
4
- Yarn, Bower, Maven, Gradle, CocoaPods, Rebar, Nuget, Carthage, Mix, Conan].freeze
4
+ Yarn, Bower, Maven, Gradle, CocoaPods, Rebar, Nuget, Carthage, Mix, Conan, Sbt].freeze
5
5
 
6
6
  def initialize(config = { project_path: Pathname.new('') })
7
7
  @config = config
@@ -0,0 +1,25 @@
1
+ module CommonPathHelper
2
+ def self.shortest_common_paths(paths)
3
+ [].tap do |common_paths|
4
+ # organize by matching root paths
5
+ paths_with_roots = paths.group_by { |path| path.split('/').first }
6
+ paths_with_roots.each do |common_root, full_paths|
7
+ # use the shortest path as the 'template'
8
+ shortest_path = full_paths.sort_by { |path| path.split('/').length }.first
9
+ shortest_common_path = common_root
10
+
11
+ # iterate through each subpath of the 'template'
12
+ shortest_path.split('/').each_with_index do |subpath, i|
13
+ potential_path = i.zero? ? shortest_common_path : [shortest_common_path, subpath].join('/')
14
+
15
+ # check each for the existence of the subsequent subpath
16
+ mismatch = full_paths.any? { |path| !path.start_with?(potential_path) }
17
+ break if mismatch
18
+
19
+ shortest_common_path = potential_path
20
+ end
21
+ common_paths << shortest_common_path
22
+ end
23
+ end
24
+ end
25
+ end
@@ -1,3 +1,3 @@
1
1
  module LicenseFinder
2
- VERSION = '5.0.3'.freeze
2
+ VERSION = '5.1.0'.freeze
3
3
  end
@@ -5,7 +5,7 @@ require 'license_finder/platform'
5
5
  require 'license_finder/version'
6
6
 
7
7
  Gem::Specification.new do |s|
8
- s.required_ruby_version = '>= 1.9.3'
8
+ s.required_ruby_version = '>= 2.1.0'
9
9
  s.name = 'license_finder'
10
10
  s.version = LicenseFinder::VERSION
11
11
 
@@ -50,14 +50,14 @@ Gem::Specification.new do |s|
50
50
  s.add_dependency 'rubyzip'
51
51
  s.add_dependency 'thor'
52
52
  s.add_dependency 'toml', '0.2.0'
53
+ s.add_dependency 'with_env', '1.1.0'
53
54
  s.add_dependency 'xml-simple'
54
55
 
55
- # to preserve ruby 1.9.3 support
56
- s.add_dependency 'with_env', (RUBY_VERSION <= '1.9.3' ? '1.0.0' : '> 1.0')
57
-
56
+ s.add_development_dependency 'addressable', '2.5.2'
58
57
  s.add_development_dependency 'capybara', '~> 2.0.0'
59
58
  s.add_development_dependency 'cocoapods', '0.34.0' if LicenseFinder::Platform.darwin?
60
59
  s.add_development_dependency 'fakefs', '~> 0.11.3'
60
+ s.add_development_dependency 'mime-types', '3.1'
61
61
  s.add_development_dependency 'pry'
62
62
  s.add_development_dependency 'rake'
63
63
  s.add_development_dependency 'rspec', '~> 3'
@@ -66,10 +66,7 @@ Gem::Specification.new do |s|
66
66
 
67
67
  # to preserve ruby < 2.2.2 support.
68
68
  s.add_development_dependency 'rack', (RUBY_VERSION < '2.2.2' ? '1.6.0' : '> 1.6')
69
-
70
- # temporary to preserve ruby 1.9.3 support.
71
- s.add_development_dependency 'addressable', '< 2.5.0'
72
- s.add_development_dependency 'mime-types', '< 3.0'
69
+ s.add_development_dependency 'rack-test', (RUBY_VERSION < '2.2.2' ? '0.7.0' : '> 0.7')
73
70
 
74
71
  s.files = `git ls-files`.split("\n").reject { |f| f.start_with?('spec', 'features') }
75
72
  s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: license_finder
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.3
4
+ version: 5.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Collins
@@ -27,7 +27,7 @@ authors:
27
27
  autorequire:
28
28
  bindir: bin
29
29
  cert_chain: []
30
- date: 2018-02-13 00:00:00.000000000 Z
30
+ date: 2018-04-02 00:00:00.000000000 Z
31
31
  dependencies:
32
32
  - !ruby/object:Gem::Dependency
33
33
  name: bundler
@@ -99,6 +99,20 @@ dependencies:
99
99
  - - '='
100
100
  - !ruby/object:Gem::Version
101
101
  version: 0.2.0
102
+ - !ruby/object:Gem::Dependency
103
+ name: with_env
104
+ requirement: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - '='
107
+ - !ruby/object:Gem::Version
108
+ version: 1.1.0
109
+ type: :runtime
110
+ prerelease: false
111
+ version_requirements: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - '='
114
+ - !ruby/object:Gem::Version
115
+ version: 1.1.0
102
116
  - !ruby/object:Gem::Dependency
103
117
  name: xml-simple
104
118
  requirement: !ruby/object:Gem::Requirement
@@ -114,19 +128,19 @@ dependencies:
114
128
  - !ruby/object:Gem::Version
115
129
  version: '0'
116
130
  - !ruby/object:Gem::Dependency
117
- name: with_env
131
+ name: addressable
118
132
  requirement: !ruby/object:Gem::Requirement
119
133
  requirements:
120
- - - ">"
134
+ - - '='
121
135
  - !ruby/object:Gem::Version
122
- version: '1.0'
123
- type: :runtime
136
+ version: 2.5.2
137
+ type: :development
124
138
  prerelease: false
125
139
  version_requirements: !ruby/object:Gem::Requirement
126
140
  requirements:
127
- - - ">"
141
+ - - '='
128
142
  - !ruby/object:Gem::Version
129
- version: '1.0'
143
+ version: 2.5.2
130
144
  - !ruby/object:Gem::Dependency
131
145
  name: capybara
132
146
  requirement: !ruby/object:Gem::Requirement
@@ -155,6 +169,20 @@ dependencies:
155
169
  - - "~>"
156
170
  - !ruby/object:Gem::Version
157
171
  version: 0.11.3
172
+ - !ruby/object:Gem::Dependency
173
+ name: mime-types
174
+ requirement: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ - - '='
177
+ - !ruby/object:Gem::Version
178
+ version: '3.1'
179
+ type: :development
180
+ prerelease: false
181
+ version_requirements: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - '='
184
+ - !ruby/object:Gem::Version
185
+ version: '3.1'
158
186
  - !ruby/object:Gem::Dependency
159
187
  name: pry
160
188
  requirement: !ruby/object:Gem::Requirement
@@ -240,33 +268,19 @@ dependencies:
240
268
  - !ruby/object:Gem::Version
241
269
  version: '1.6'
242
270
  - !ruby/object:Gem::Dependency
243
- name: addressable
244
- requirement: !ruby/object:Gem::Requirement
245
- requirements:
246
- - - "<"
247
- - !ruby/object:Gem::Version
248
- version: 2.5.0
249
- type: :development
250
- prerelease: false
251
- version_requirements: !ruby/object:Gem::Requirement
252
- requirements:
253
- - - "<"
254
- - !ruby/object:Gem::Version
255
- version: 2.5.0
256
- - !ruby/object:Gem::Dependency
257
- name: mime-types
271
+ name: rack-test
258
272
  requirement: !ruby/object:Gem::Requirement
259
273
  requirements:
260
- - - "<"
274
+ - - ">"
261
275
  - !ruby/object:Gem::Version
262
- version: '3.0'
276
+ version: '0.7'
263
277
  type: :development
264
278
  prerelease: false
265
279
  version_requirements: !ruby/object:Gem::Requirement
266
280
  requirements:
267
- - - "<"
281
+ - - ">"
268
282
  - !ruby/object:Gem::Version
269
- version: '3.0'
283
+ version: '0.7'
270
284
  description: |2
271
285
  LicenseFinder works with your package managers to find
272
286
  dependencies, detect the licenses of the packages in them, compare
@@ -375,6 +389,7 @@ files:
375
389
  - lib/license_finder/package_managers/nuget.rb
376
390
  - lib/license_finder/package_managers/pip.rb
377
391
  - lib/license_finder/package_managers/rebar.rb
392
+ - lib/license_finder/package_managers/sbt.rb
378
393
  - lib/license_finder/package_managers/yarn.rb
379
394
  - lib/license_finder/package_utils/activation.rb
380
395
  - lib/license_finder/package_utils/conan_info_parser.rb
@@ -383,6 +398,7 @@ files:
383
398
  - lib/license_finder/package_utils/licensing.rb
384
399
  - lib/license_finder/package_utils/maven_dependency_finder.rb
385
400
  - lib/license_finder/package_utils/possible_license_file.rb
401
+ - lib/license_finder/package_utils/sbt_dependency_finder.rb
386
402
  - lib/license_finder/packages/bower_package.rb
387
403
  - lib/license_finder/packages/bundler_package.rb
388
404
  - lib/license_finder/packages/carthage_package.rb
@@ -398,6 +414,7 @@ files:
398
414
  - lib/license_finder/packages/nuget_package.rb
399
415
  - lib/license_finder/packages/pip_package.rb
400
416
  - lib/license_finder/packages/rebar_package.rb
417
+ - lib/license_finder/packages/sbt_package.rb
401
418
  - lib/license_finder/packages/yarn_package.rb
402
419
  - lib/license_finder/platform.rb
403
420
  - lib/license_finder/project_finder.rb
@@ -414,6 +431,7 @@ files:
414
431
  - lib/license_finder/reports/text_report.rb
415
432
  - lib/license_finder/scanner.rb
416
433
  - lib/license_finder/shared_helpers/cmd.rb
434
+ - lib/license_finder/shared_helpers/common_path.rb
417
435
  - lib/license_finder/version.rb
418
436
  - license_finder.gemspec
419
437
  - release/instructions.md
@@ -429,7 +447,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
429
447
  requirements:
430
448
  - - ">="
431
449
  - !ruby/object:Gem::Version
432
- version: 1.9.3
450
+ version: 2.1.0
433
451
  required_rubygems_version: !ruby/object:Gem::Requirement
434
452
  requirements:
435
453
  - - ">="
@@ -437,7 +455,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
437
455
  version: '0'
438
456
  requirements: []
439
457
  rubyforge_project:
440
- rubygems_version: 2.7.5
458
+ rubygems_version: 2.7.6
441
459
  signing_key:
442
460
  specification_version: 4
443
461
  summary: Audit the OSS licenses of your application's dependencies.