licensed 4.2.0 → 4.3.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 +4 -4
- data/CHANGELOG.md +7 -1
- data/Gemfile.lock +13 -10
- data/README.md +2 -2
- data/docs/sources/cocoapods.md +11 -4
- data/lib/licensed/configuration.rb +1 -1
- data/lib/licensed/sources/cocoapods.rb +32 -35
- data/lib/licensed/sources/source.rb +5 -0
- data/lib/licensed/version.rb +1 -1
- data/licensed.gemspec +2 -2
- metadata +17 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8fbd6fc2c6122a9b41d7ac258d08861114f6425df01f7e6fd0f482e03a9d3efb
|
|
4
|
+
data.tar.gz: 292fce45466f23cc690e3ffd8db6464928b80581c0cc99ab54dedf1e130b0adb
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3b462f9f482e65519349ad62b8c8cb53cbadd693dd8a0449e730c6aad63bf5484c78e39b5a67d61aa68169e5bcd65ef3131a591a0bd5965d8fcb0962d382e609
|
|
7
|
+
data.tar.gz: 399c6ff21a5a02c849e122365ccf4f8e5813bc7be628236fd5402894d012677501c9dd729cfbb597566f9fb4425f36360df59de8177b5cc0cb456c116e318916
|
data/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,12 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## 4.3.0
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- Cocoapods support has been re-enabled using a cocoapods plugin (https://github.com/github/licensed/pull/644)
|
|
14
|
+
|
|
9
15
|
## 4.2.0
|
|
10
16
|
|
|
11
17
|
### Added
|
|
@@ -723,4 +729,4 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|
|
723
729
|
|
|
724
730
|
Initial release :tada:
|
|
725
731
|
|
|
726
|
-
[Unreleased]: https://github.com/github/licensed/compare/4.
|
|
732
|
+
[Unreleased]: https://github.com/github/licensed/compare/4.3.0...HEAD
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
licensed (4.
|
|
4
|
+
licensed (4.3.0)
|
|
5
5
|
json (~> 2.6)
|
|
6
6
|
licensee (~> 9.16)
|
|
7
7
|
parallel (~> 1.22)
|
|
@@ -14,7 +14,7 @@ PATH
|
|
|
14
14
|
GEM
|
|
15
15
|
remote: https://rubygems.org/
|
|
16
16
|
specs:
|
|
17
|
-
activesupport (7.0.4.
|
|
17
|
+
activesupport (7.0.4.3)
|
|
18
18
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
19
19
|
i18n (>= 1.6, < 2)
|
|
20
20
|
minitest (>= 5.1)
|
|
@@ -23,7 +23,7 @@ GEM
|
|
|
23
23
|
public_suffix (>= 2.0.2, < 6.0)
|
|
24
24
|
ast (2.4.2)
|
|
25
25
|
byebug (11.1.3)
|
|
26
|
-
concurrent-ruby (1.2.
|
|
26
|
+
concurrent-ruby (1.2.2)
|
|
27
27
|
dotenv (2.8.1)
|
|
28
28
|
faraday (2.7.4)
|
|
29
29
|
faraday-net_http (>= 2.0, < 3.1)
|
|
@@ -39,13 +39,15 @@ GEM
|
|
|
39
39
|
rugged (>= 0.24, < 2.0)
|
|
40
40
|
thor (>= 0.19, < 2.0)
|
|
41
41
|
mini_portile2 (2.8.1)
|
|
42
|
-
minitest (5.
|
|
42
|
+
minitest (5.18.0)
|
|
43
|
+
minitest-hooks (1.5.0)
|
|
44
|
+
minitest (> 5.3)
|
|
43
45
|
mocha (2.0.2)
|
|
44
46
|
ruby2_keywords (>= 0.0.5)
|
|
45
|
-
nokogiri (1.14.
|
|
47
|
+
nokogiri (1.14.2)
|
|
46
48
|
mini_portile2 (~> 2.8.0)
|
|
47
49
|
racc (~> 1.4)
|
|
48
|
-
octokit (6.0
|
|
50
|
+
octokit (6.1.0)
|
|
49
51
|
faraday (>= 1, < 3)
|
|
50
52
|
sawyer (~> 0.9)
|
|
51
53
|
parallel (1.22.1)
|
|
@@ -54,14 +56,14 @@ GEM
|
|
|
54
56
|
pathname-common_prefix (0.0.1)
|
|
55
57
|
public_suffix (5.0.1)
|
|
56
58
|
racc (1.6.2)
|
|
57
|
-
rack (3.0.
|
|
59
|
+
rack (3.0.7)
|
|
58
60
|
rainbow (3.1.1)
|
|
59
61
|
rake (13.0.6)
|
|
60
62
|
regexp_parser (2.6.2)
|
|
61
63
|
reverse_markdown (2.1.1)
|
|
62
64
|
nokogiri
|
|
63
65
|
rexml (3.2.5)
|
|
64
|
-
rubocop (1.
|
|
66
|
+
rubocop (1.45.1)
|
|
65
67
|
json (~> 2.3)
|
|
66
68
|
parallel (~> 1.10)
|
|
67
69
|
parser (>= 3.2.0.0)
|
|
@@ -80,7 +82,7 @@ GEM
|
|
|
80
82
|
rubocop-performance (1.15.2)
|
|
81
83
|
rubocop (>= 1.7.0, < 2.0)
|
|
82
84
|
rubocop-ast (>= 0.4.0)
|
|
83
|
-
rubocop-rails (2.
|
|
85
|
+
rubocop-rails (2.18.0)
|
|
84
86
|
activesupport (>= 4.2.0)
|
|
85
87
|
rack (>= 1.1)
|
|
86
88
|
rubocop (>= 1.33.0, < 2.0)
|
|
@@ -93,7 +95,7 @@ GEM
|
|
|
93
95
|
faraday (>= 0.17.3, < 3)
|
|
94
96
|
thor (1.2.1)
|
|
95
97
|
tomlrb (2.0.3)
|
|
96
|
-
tzinfo (2.0.
|
|
98
|
+
tzinfo (2.0.6)
|
|
97
99
|
concurrent-ruby (~> 1.0)
|
|
98
100
|
unicode-display_width (2.4.2)
|
|
99
101
|
|
|
@@ -104,6 +106,7 @@ DEPENDENCIES
|
|
|
104
106
|
byebug (~> 11.1)
|
|
105
107
|
licensed!
|
|
106
108
|
minitest (~> 5.17)
|
|
109
|
+
minitest-hooks (~> 1.5)
|
|
107
110
|
mocha (~> 2.0)
|
|
108
111
|
rake (~> 13.0)
|
|
109
112
|
rubocop-github (~> 0.20)
|
data/README.md
CHANGED
|
@@ -47,7 +47,7 @@ sudo apt-get install cmake pkg-config
|
|
|
47
47
|
brew install cmake pkg-config
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
-
### With
|
|
50
|
+
### With Gemfile
|
|
51
51
|
|
|
52
52
|
Add this line to your application's Gemfile:
|
|
53
53
|
|
|
@@ -61,7 +61,7 @@ And then execute:
|
|
|
61
61
|
$> bundle
|
|
62
62
|
```
|
|
63
63
|
|
|
64
|
-
### With
|
|
64
|
+
### With Homebrew (on macOS)
|
|
65
65
|
|
|
66
66
|
```bash
|
|
67
67
|
brew install licensed
|
data/docs/sources/cocoapods.md
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
# CocoaPods
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The cocoapods source will detect dependencies when `Podfile` and `Podfile.lock` are found at an app's `source_path`. The cocoapods source uses the [cocoapods-dependencies-list](https://github.com/jonabc/cocoapods-dependencies-list) plugin to enumerate dependencies and gather metadata on each package.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
It uses the `pod` CLI commands to enumerate dependencies and gather metadata on each package.
|
|
5
|
+
**NOTE: Licensed does not install the [cocoapods-dependencies-list](https://github.com/jonanc/cocoapods-dependencies-list) plugin. Users must install the gem alongside the cocoapods gem to enumerate cocoapods dependencies.**
|
|
8
6
|
|
|
9
7
|
## Evaluating dependencies from a specific target
|
|
10
8
|
|
|
@@ -15,3 +13,12 @@ cocoapods:
|
|
|
15
13
|
targets:
|
|
16
14
|
- ios
|
|
17
15
|
```
|
|
16
|
+
|
|
17
|
+
## Specifying which pod executable to run
|
|
18
|
+
|
|
19
|
+
The cocoapods source will call the `pod` executable to evaluate dependencies by default. If needed, you can override the executable used with the `cocoapods.command` configuration option. This might be useful if the full path to the `pod` executable is needed (e.g. `pod` is not findable from the system `PATH`), or if you need to execute `pod` with `bundle exec`.
|
|
20
|
+
|
|
21
|
+
```yml
|
|
22
|
+
cocoapods:
|
|
23
|
+
command: 'bundle exec pod'
|
|
24
|
+
```
|
|
@@ -116,7 +116,7 @@ module Licensed
|
|
|
116
116
|
# Returns an array of paths to files containing additional license terms.
|
|
117
117
|
def additional_terms_for_dependency(dependency)
|
|
118
118
|
amendment_paths = Array(self.dig("additional_terms", dependency["type"], dependency["name"]))
|
|
119
|
-
amendment_paths.flat_map { |path| Dir.glob(self.root.join(path)) }
|
|
119
|
+
amendment_paths.flat_map { |path| Dir.glob(self.root.join(path)) }.sort
|
|
120
120
|
end
|
|
121
121
|
|
|
122
122
|
private
|
|
@@ -3,32 +3,29 @@ require "json"
|
|
|
3
3
|
require "pathname"
|
|
4
4
|
require "uri"
|
|
5
5
|
|
|
6
|
-
# **NOTE** Cocoapods is disabled until cocoapods-core supports recent rails versions
|
|
7
|
-
# https://github.com/CocoaPods/Core/pull/733
|
|
8
|
-
# require "cocoapods-core"
|
|
9
|
-
|
|
10
6
|
module Licensed
|
|
11
7
|
module Sources
|
|
12
8
|
class Cocoapods < Source
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
DEFAULT_POD_COMMAND = "pod".freeze
|
|
10
|
+
MISSING_PLUGIN_MESSAGE = "Error running `pods dependencies`. Please ensure the cocoapods-dependencies-list gem is installed, it is required for licensed to enumerate dependencies.".freeze
|
|
15
11
|
|
|
16
|
-
|
|
12
|
+
def enabled?
|
|
13
|
+
return unless Licensed::Shell.tool_available?("pod")
|
|
17
14
|
|
|
18
|
-
|
|
15
|
+
config.pwd.join("Podfile").exist? && config.pwd.join("Podfile.lock").exist?
|
|
19
16
|
end
|
|
20
17
|
|
|
21
18
|
def enumerate_dependencies
|
|
22
19
|
pods.map do |pod|
|
|
23
|
-
name = pod.name
|
|
24
|
-
path = dependency_path(pod.root_name)
|
|
25
|
-
version = lockfile.version(name).version
|
|
26
|
-
|
|
27
20
|
Dependency.new(
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
metadata: {
|
|
21
|
+
name: pod["name"],
|
|
22
|
+
version: pod["version"],
|
|
23
|
+
path: pod["path"],
|
|
24
|
+
metadata: {
|
|
25
|
+
"type" => Cocoapods.type,
|
|
26
|
+
"summary" => pod["summary"],
|
|
27
|
+
"homepage" => pod["homepage"]
|
|
28
|
+
}
|
|
32
29
|
)
|
|
33
30
|
end
|
|
34
31
|
end
|
|
@@ -36,32 +33,32 @@ module Licensed
|
|
|
36
33
|
private
|
|
37
34
|
|
|
38
35
|
def pods
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
targets_to_validate = podfile.target_definition_list.filter { |t| targets.include?(t.label) }
|
|
42
|
-
if targets_to_validate.any?
|
|
43
|
-
targets_to_validate.map(&:dependencies).flatten
|
|
44
|
-
else
|
|
45
|
-
raise Licensed::Sources::Source::Error, "Unable to find any target in the Podfile matching the ones provided in the config."
|
|
46
|
-
end
|
|
36
|
+
cocoapods_dependencies_json.values.flatten
|
|
47
37
|
end
|
|
48
38
|
|
|
49
|
-
def
|
|
50
|
-
|
|
51
|
-
|
|
39
|
+
def cocoapods_dependencies_json
|
|
40
|
+
args = ["dependencies", "--include-path"]
|
|
41
|
+
args << "--targets=#{targets.join(",")}" if targets.any?
|
|
52
42
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
43
|
+
output = Licensed::Shell.execute(*pod_command, *args, allow_failure: true)
|
|
44
|
+
if output.include? "Unknown command"
|
|
45
|
+
raise Licensed::Sources::Source::Error, MISSING_PLUGIN_MESSAGE
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
JSON.parse(output)
|
|
49
|
+
rescue JSON::ParserError => e
|
|
50
|
+
message = "Licensed was unable to parse the output from 'pod dependencies'. JSON Error: #{e.message}"
|
|
51
|
+
raise Licensed::Sources::Source::Error, message
|
|
56
52
|
end
|
|
57
53
|
|
|
58
|
-
def
|
|
59
|
-
|
|
60
|
-
|
|
54
|
+
def targets
|
|
55
|
+
return [] unless [String, Array].any? { |type| source_config["targets"].is_a?(type) }
|
|
56
|
+
Array(source_config["targets"]).map { |t| "Pods-#{t}" }
|
|
61
57
|
end
|
|
62
58
|
|
|
63
|
-
def
|
|
64
|
-
|
|
59
|
+
def pod_command
|
|
60
|
+
return DEFAULT_POD_COMMAND unless source_config["command"].is_a?(String)
|
|
61
|
+
source_config["command"].split
|
|
65
62
|
end
|
|
66
63
|
end
|
|
67
64
|
end
|
|
@@ -90,6 +90,11 @@ module Licensed
|
|
|
90
90
|
config.ignored?(dependency.metadata, require_version: self.class.require_matched_dependency_version)
|
|
91
91
|
end
|
|
92
92
|
|
|
93
|
+
# Returns configuration options set for the current source
|
|
94
|
+
def source_config
|
|
95
|
+
@source_config ||= config[self.class.type].is_a?(Hash) ? config[self.class.type] : {}
|
|
96
|
+
end
|
|
97
|
+
|
|
93
98
|
private
|
|
94
99
|
|
|
95
100
|
# Returns a cached list of dependencies
|
data/lib/licensed/version.rb
CHANGED
data/licensed.gemspec
CHANGED
|
@@ -21,7 +21,7 @@ Gem::Specification.new do |spec|
|
|
|
21
21
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
22
22
|
spec.require_paths = ["lib"]
|
|
23
23
|
|
|
24
|
-
spec.required_ruby_version = ">= 2.
|
|
24
|
+
spec.required_ruby_version = ">= 2.7.0"
|
|
25
25
|
|
|
26
26
|
spec.add_dependency "licensee", "~> 9.16"
|
|
27
27
|
spec.add_dependency "thor", "~> 1.2"
|
|
@@ -31,10 +31,10 @@ Gem::Specification.new do |spec|
|
|
|
31
31
|
spec.add_dependency "parallel", "~> 1.22"
|
|
32
32
|
spec.add_dependency "reverse_markdown", "~> 2.1"
|
|
33
33
|
spec.add_dependency "json", "~> 2.6"
|
|
34
|
-
# spec.add_dependency "cocoapods-core", "~> 1.11"
|
|
35
34
|
|
|
36
35
|
spec.add_development_dependency "rake", "~> 13.0"
|
|
37
36
|
spec.add_development_dependency "minitest", "~> 5.17"
|
|
37
|
+
spec.add_development_dependency "minitest-hooks", "~> 1.5"
|
|
38
38
|
spec.add_development_dependency "mocha", "~> 2.0"
|
|
39
39
|
spec.add_development_dependency "rubocop-github", "~> 0.20"
|
|
40
40
|
spec.add_development_dependency "byebug", "~> 11.1"
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: licensed
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.
|
|
4
|
+
version: 4.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- GitHub
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2023-
|
|
11
|
+
date: 2023-03-20 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: licensee
|
|
@@ -150,6 +150,20 @@ dependencies:
|
|
|
150
150
|
- - "~>"
|
|
151
151
|
- !ruby/object:Gem::Version
|
|
152
152
|
version: '5.17'
|
|
153
|
+
- !ruby/object:Gem::Dependency
|
|
154
|
+
name: minitest-hooks
|
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
|
156
|
+
requirements:
|
|
157
|
+
- - "~>"
|
|
158
|
+
- !ruby/object:Gem::Version
|
|
159
|
+
version: '1.5'
|
|
160
|
+
type: :development
|
|
161
|
+
prerelease: false
|
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
163
|
+
requirements:
|
|
164
|
+
- - "~>"
|
|
165
|
+
- !ruby/object:Gem::Version
|
|
166
|
+
version: '1.5'
|
|
153
167
|
- !ruby/object:Gem::Dependency
|
|
154
168
|
name: mocha
|
|
155
169
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -321,7 +335,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
321
335
|
requirements:
|
|
322
336
|
- - ">="
|
|
323
337
|
- !ruby/object:Gem::Version
|
|
324
|
-
version: 2.
|
|
338
|
+
version: 2.7.0
|
|
325
339
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
326
340
|
requirements:
|
|
327
341
|
- - ">="
|