license_finder 6.6.2 → 6.7.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: 48bb96da32ab1ac5f0ee5f3a61e35a546c7666794348b6055fafbdcd2afb9067
4
- data.tar.gz: c712efcd6787e0747ea1d2975ef719f74ee5e27eb2664dc0f0d1d0f681f62fe2
3
+ metadata.gz: b24945564259115c89ce1e2891676e85757074f15e38485ca498f5344b543ebd
4
+ data.tar.gz: 2ecc05295033dde8a53cb45d76b024e9acd06ba650cb8e83f991be74c0f2ea3f
5
5
  SHA512:
6
- metadata.gz: 204084155100a9da1d8511db5173bfd138f1247c2fd0ed6a5c967a4da7c01b4a3db7352b8e55d98dd82cc68b4460d48daee400531e8a34605ca54046f66065a6
7
- data.tar.gz: 0db4e9e0660b01393a9f142c6f320a526e366cd1e4831097170f954a2496cf2fbb9cbb1fcff9d8f188ca7e5bfccec34ae8c1ab8cfd7c4b3c5815a33b924b61d1
6
+ metadata.gz: 74e0144f9834798f971f024d167ce42afd653e29a2f279ef1b67ace4949ca1bd7ce8375264eb6d14a3bad67d2f4a5d7df5ee5a851cbb5b16df79c4c26555d471
7
+ data.tar.gz: 9c04d6fb15c1f84d41391dbed3a391f20cafe3511213632d7733c943dbb10d63709ced8ef520308b49421ae21fe2d519c5e38e1efb50fe6d70fb74a041218bf7
@@ -1,13 +1,21 @@
1
+ # [6.7.0] / 2020-07-23
2
+
1
3
  # [6.6.2] / 2020-07-09
2
4
 
3
5
  ### Added
4
- * support for rebar3 [Removed] support for rebar2 [#173637980] - [b20e7444](https://github.com/pivotal/LicenseFinder/commit/b20e7444c147d8dbfa46eb4e8e549e03be751e02) - Jeff Jun
6
+ * support for rebar3 - [b20e7444](https://github.com/pivotal/LicenseFinder/commit/b20e7444c147d8dbfa46eb4e8e549e03be751e02) - Jeff Jun
7
+ * Support for Go modules projects outside of the current working directory - [56b3bec6](https://github.com/pivotal/LicenseFinder/commit/56b3bec632b3884ce4cad538742b4a13c55fd7c5)
8
+
9
+ ### Changed
10
+ * Change Go modules to only report imported packages (as with other Go package managers) - [34361fda](https://github.com/pivotal/LicenseFinder/commit/34361fdab2dc3f197f7aec6408175018dee3b453) and [dffae4ab](https://github.com/pivotal/LicenseFinder/commit/dffae4ab95e34115b6a54bf681fc0966a8611f01)
11
+ * Detect Go modules based on `go.mod` (instead of `go.sum`) - [667f6be7](https://github.com/pivotal/LicenseFinder/commit/667f6be716504a53ccc2824daae08af085566546)
5
12
 
6
13
  ### Fixed
7
14
  * handle empty case for mix dependencies [#173637843] - [fc34b281](https://github.com/pivotal/LicenseFinder/commit/fc34b2813925a709addde675849e199b05fc4a23) - Jeff Jun
8
15
 
9
16
  ### Removed
10
- [Added] support for rebar3 * support for rebar2 [#173637980] - [b20e7444](https://github.com/pivotal/LicenseFinder/commit/b20e7444c147d8dbfa46eb4e8e549e03be751e02) - Jeff Jun
17
+ * support for rebar2 [#173637980] - [b20e7444](https://github.com/pivotal/LicenseFinder/commit/b20e7444c147d8dbfa46eb4e8e549e03be751e02) - Jeff Jun
18
+ * Removed the unnecessary prepare command for Go modules - [284cc5c8](https://github.com/pivotal/LicenseFinder/commit/284cc5c821270a6e56275e32bac836a3e451f46b)
11
19
 
12
20
  # [6.6.1] / 2020-06-30
13
21
 
@@ -897,3 +905,4 @@ Bugfixes:
897
905
  [6.6.0]: https://github.com/pivotal/LicenseFinder/compare/v6.5.0...v6.6.0
898
906
  [6.6.1]: https://github.com/pivotal/LicenseFinder/compare/v6.6.0...v6.6.1
899
907
  [6.6.2]: https://github.com/pivotal/LicenseFinder/compare/v6.6.1...v6.6.2
908
+ [6.7.0]: https://github.com/pivotal/LicenseFinder/compare/v6.6.2...v6.7.0
data/README.md CHANGED
@@ -43,7 +43,7 @@ and give you an actionable exception report.
43
43
 
44
44
  ### Experimental project types
45
45
 
46
- * Erlang (via `rebar3`)
46
+ * Erlang (via `rebar` and `Erlang.mk`)
47
47
  * Objective-C, Swift (via Carthage or CocoaPods \[0.39 and below. See [CocoaPods Specs Repo Sharding](http://blog.cocoapods.org/Sharding/)\])
48
48
  * Objective-C (+ CocoaPods 0.39 and below. See [CocoaPods Specs Repo Sharding](http://blog.cocoapods.org/Sharding/))
49
49
  * Elixir (via `mix`)
@@ -175,7 +175,8 @@ languages, as long as that language has a package definition in the project dire
175
175
  * `bower.json` (for `bower`)
176
176
  * `Podfile` (for `pod`)
177
177
  * `Cartfile` (for `carthage`)
178
- * `rebar.config` (for `rebar3`)
178
+ * `rebar.config` (for `rebar`)
179
+ * `Erlang.mk` or `erlang.mk` file (for `Erlang.mk`)
179
180
  * `mix.exs` (for `mix`)
180
181
  * `packages/` directory (for `nuget`)
181
182
  * `*.csproj` (for `dotnet`)
@@ -327,7 +328,7 @@ you should manually research what the actual license is. When you
327
328
  have established the real license, you can record it with:
328
329
 
329
330
  ```sh
330
- $ license_finder dependencies add my_unknown_dependency MIT --homepage="www.unknown-code.org"
331
+ $ license_finder licenses add my_unknown_dependency MIT --homepage="www.unknown-code.org"
331
332
  ```
332
333
 
333
334
  This command would assign the MIT license to the dependency
data/Rakefile CHANGED
@@ -6,15 +6,6 @@ Bundler::GemHelper.install_tasks
6
6
  require './lib/license_finder/platform'
7
7
  require 'rspec/core/rake_task'
8
8
 
9
- namespace :spec do
10
- desc 'Run test tagged \'focus\''
11
- RSpec::Core::RakeTask.new(:focus) do |t|
12
- t.fail_on_error = true
13
- t.pattern = './spec/**/*_spec.rb'
14
- t.rspec_opts = %w[--color --tag focus]
15
- end
16
- end
17
-
18
9
  desc 'Run all specs in spec/'
19
10
  RSpec::Core::RakeTask.new(:spec) do |t|
20
11
  t.fail_on_error = true
data/VERSION CHANGED
@@ -1 +1 @@
1
- 6.6.2
1
+ 6.7.0
@@ -189,6 +189,7 @@ require 'license_finder/packages/gradle_package'
189
189
  require 'license_finder/packages/cocoa_pods_package'
190
190
  require 'license_finder/packages/carthage_package'
191
191
  require 'license_finder/packages/rebar_package'
192
+ require 'license_finder/packages/erlangmk_package'
192
193
  require 'license_finder/packages/mix_package'
193
194
  require 'license_finder/packages/merged_package'
194
195
  require 'license_finder/packages/nuget_package'
@@ -163,6 +163,7 @@ require 'license_finder/package_managers/cocoa_pods'
163
163
  require 'license_finder/package_managers/carthage'
164
164
  require 'license_finder/package_managers/gradle'
165
165
  require 'license_finder/package_managers/rebar'
166
+ require 'license_finder/package_managers/erlangmk'
166
167
  require 'license_finder/package_managers/nuget'
167
168
  require 'license_finder/package_managers/dotnet'
168
169
  require 'license_finder/package_managers/dep'
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ module LicenseFinder
4
+ class Erlangmk < PackageManager
5
+ def package_management_command
6
+ 'make'
7
+ end
8
+
9
+ def package_management_command_with_path
10
+ "#{package_management_command} --directory=#{project_path} --no-print-directory"
11
+ end
12
+
13
+ def prepare_command
14
+ "#{package_management_command_with_path} fetch-deps"
15
+ end
16
+
17
+ def possible_package_paths
18
+ [
19
+ project_path.join('Erlang.mk'),
20
+ project_path.join('erlang.mk')
21
+ ]
22
+ end
23
+
24
+ def current_packages
25
+ deps.map do |dep|
26
+ ErlangmkPackage.new(dep)
27
+ end
28
+ end
29
+
30
+ private
31
+
32
+ def deps
33
+ command = "#{package_management_command_with_path} QUERY='name fetch_method repo version absolute_path' query-deps"
34
+ stdout, stderr, status = Cmd.run(command)
35
+ raise "Command '#{command}' failed to execute: #{stderr}" unless status.success?
36
+
37
+ stdout.each_line.map(&:strip).reject { |line| line.start_with?('make') }
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,107 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rubygems'
4
+
5
+ class InvalidErlangmkPackageError < ArgumentError
6
+ end
7
+
8
+ module LicenseFinder
9
+ class ErlangmkPackage < Package
10
+ attr_reader :dep_parent,
11
+ :dep_name,
12
+ :dep_fetch_method,
13
+ :dep_repo_unformatted,
14
+ :dep_version_unformatted,
15
+ :dep_absolute_path
16
+
17
+ def initialize(dep_string_from_query_deps)
18
+ @dep_parent,
19
+ @dep_name,
20
+ @dep_fetch_method,
21
+ @dep_repo_unformatted,
22
+ @dep_version_unformatted,
23
+ @dep_absolute_path = dep_string_from_query_deps.split
24
+
25
+ raise_invalid(dep_string_from_query_deps) unless all_parts_valid?
26
+
27
+ super(
28
+ dep_name,
29
+ dep_version,
30
+ homepage: dep_repo,
31
+ install_path: dep_absolute_path
32
+ )
33
+ end
34
+
35
+ def package_manager
36
+ 'Erlangmk'
37
+ end
38
+
39
+ def dep_version
40
+ @dep_version ||= begin
41
+ version_prefix_re = Regexp.new('^v')
42
+ dep_version_unformatted.sub(version_prefix_re, '')
43
+ end
44
+ end
45
+
46
+ def dep_repo
47
+ @dep_repo ||= dep_repo_unformatted
48
+ .chomp('.git')
49
+ .sub('git@github.com:', 'https://github.com/')
50
+ end
51
+
52
+ def raise_invalid(dep_string)
53
+ invalid_dep_message = "'#{dep_string}' does not look like a valid Erlank.mk dependency"
54
+ valid_dep_example = "A valid dependency example: 'lager: goldrush git https://github.com/DeadZen/goldrush.git 0.1.9 /absolute/path/to/dep'"
55
+ raise(InvalidErlangmkPackageError, "#{invalid_dep_message}. #{valid_dep_example}")
56
+ end
57
+
58
+ def all_parts_valid?
59
+ dep_part_valid?(dep_parent) &&
60
+ dep_part_valid?(dep_name) &&
61
+ set?(dep_fetch_method) &&
62
+ dep_repo_valid? &&
63
+ dep_version_valid? &&
64
+ set?(dep_absolute_path)
65
+ end
66
+
67
+ private
68
+
69
+ def dep_part_valid?(dep_part)
70
+ set?(dep_part) &&
71
+ word?(dep_part)
72
+ end
73
+
74
+ def set?(dep_part)
75
+ !dep_part.nil? &&
76
+ !dep_part.empty?
77
+ end
78
+
79
+ def word?(dep_part)
80
+ dep = dep_part.chomp(':')
81
+ dep =~ word_re
82
+ end
83
+
84
+ def word_re
85
+ @word_re ||= Regexp.new('^\w+$')
86
+ end
87
+
88
+ def dep_repo_valid?
89
+ set?(dep_repo_unformatted) &&
90
+ URI.parse(dep_repo)
91
+ end
92
+
93
+ def dep_version_valid?
94
+ return false unless set?(dep_version_unformatted)
95
+
96
+ if dep_version =~ version_re
97
+ Gem::Version.correct?(dep_version)
98
+ else
99
+ dep_version =~ word_re
100
+ end
101
+ end
102
+
103
+ def version_re
104
+ @version_re ||= Regexp.new('\d+\.\d+\.\d+')
105
+ end
106
+ end
107
+ end
@@ -4,7 +4,7 @@ module LicenseFinder
4
4
  class Scanner
5
5
  PACKAGE_MANAGERS = [
6
6
  GoModules, GoDep, GoWorkspace, Go15VendorExperiment, Glide, Gvt, Govendor, Trash, Dep, Bundler, NPM, Pip,
7
- Yarn, Bower, Maven, Gradle, CocoaPods, Rebar, Nuget, Carthage, Mix, Conan, Sbt, Cargo, Dotnet, Composer, Pipenv
7
+ Yarn, Bower, Maven, Gradle, CocoaPods, Rebar, Erlangmk, Nuget, Carthage, Mix, Conan, Sbt, Cargo, Dotnet, Composer, Pipenv
8
8
  ].freeze
9
9
 
10
10
  class << self
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: 6.6.2
4
+ version: 6.7.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: 2020-07-09 00:00:00.000000000 Z
30
+ date: 2020-07-23 00:00:00.000000000 Z
31
31
  dependencies:
32
32
  - !ruby/object:Gem::Dependency
33
33
  name: bundler
@@ -414,6 +414,7 @@ files:
414
414
  - lib/license_finder/package_managers/conan.rb
415
415
  - lib/license_finder/package_managers/dep.rb
416
416
  - lib/license_finder/package_managers/dotnet.rb
417
+ - lib/license_finder/package_managers/erlangmk.rb
417
418
  - lib/license_finder/package_managers/glide.rb
418
419
  - lib/license_finder/package_managers/go_15vendorexperiment.rb
419
420
  - lib/license_finder/package_managers/go_dep.rb
@@ -449,6 +450,7 @@ files:
449
450
  - lib/license_finder/packages/cocoa_pods_package.rb
450
451
  - lib/license_finder/packages/composer_package.rb
451
452
  - lib/license_finder/packages/conan_package.rb
453
+ - lib/license_finder/packages/erlangmk_package.rb
452
454
  - lib/license_finder/packages/go_package.rb
453
455
  - lib/license_finder/packages/gradle_package.rb
454
456
  - lib/license_finder/packages/manual_package.rb