bibliothecary 10.1.0 → 10.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/lib/bibliothecary/dependency.rb +5 -1
- data/lib/bibliothecary/parsers/cran.rb +1 -1
- data/lib/bibliothecary/parsers/go.rb +11 -11
- data/lib/bibliothecary/parsers/hackage.rb +1 -1
- data/lib/bibliothecary/parsers/maven.rb +2 -2
- data/lib/bibliothecary/parsers/npm.rb +1 -1
- data/lib/bibliothecary/parsers/nuget.rb +3 -3
- data/lib/bibliothecary/parsers/pypi.rb +4 -4
- data/lib/bibliothecary/parsers/shard.rb +1 -1
- data/lib/bibliothecary/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 593043fd2afa0c57546f1947d788d7d4882cc398b36ebcc5774cb89446ba07d1
|
4
|
+
data.tar.gz: fcf4b7b67a9b0d6de622d6bf4390bf20b64f6c015e13253ffad21257bd142f81
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9b6922980540f62a05e27a46c612937dc165c4815dab3ca8462ad137e1cb4905ac9a015a7a47777126336eefa5a50794027696d1be9340e88206b71885c6893a
|
7
|
+
data.tar.gz: b283d69564bbd69f8684cd4ac530551c42c5ab1c174da3edaa84f9ca4ee9750abc26cd1d6a977ccf69709fe52cb8d821d7875f6821c456ac5727b1a196dbd060
|
data/CHANGELOG.md
CHANGED
@@ -13,6 +13,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
13
13
|
|
14
14
|
### Removed
|
15
15
|
|
16
|
+
## [10.2.0] - 2024-08-27
|
17
|
+
|
18
|
+
### Changed
|
19
|
+
|
20
|
+
- `Bibliothecary::Dependency#requirement` now defaults to all versions (`"*"`) instead of `nil` if no version range is specified for the dependency,
|
21
|
+
|
16
22
|
## [10.1.0] - 2024-07-23
|
17
23
|
|
18
24
|
### Changed
|
@@ -54,7 +54,7 @@ module Bibliothecary
|
|
54
54
|
)
|
55
55
|
@name = name
|
56
56
|
@platform = platform
|
57
|
-
@requirement = requirement
|
57
|
+
@requirement = requirement || "*"
|
58
58
|
@original_requirement = original_requirement
|
59
59
|
# TODO: maybe deprecate this field? Is it possible to replace it with original_requirement?
|
60
60
|
@lockfile_requirement = lockfile_requirement
|
@@ -72,6 +72,10 @@ module Bibliothecary
|
|
72
72
|
end
|
73
73
|
alias :== :eql?
|
74
74
|
|
75
|
+
def [](key)
|
76
|
+
public_send(key)
|
77
|
+
end
|
78
|
+
|
75
79
|
def to_h
|
76
80
|
FIELDS.to_h { |f| [f, public_send(f)] }
|
77
81
|
end
|
@@ -86,7 +86,7 @@ module Bibliothecary
|
|
86
86
|
next unless match
|
87
87
|
deps << Dependency.new(
|
88
88
|
name: match[1].strip,
|
89
|
-
requirement: match[2].strip
|
89
|
+
requirement: match[2].strip,
|
90
90
|
type: "runtime",
|
91
91
|
)
|
92
92
|
end
|
@@ -140,7 +140,7 @@ module Bibliothecary
|
|
140
140
|
replacement_dep.original_name == dep.name &&
|
141
141
|
(replacement_dep.original_requirement == "*" || replacement_dep.original_requirement == dep.requirement)
|
142
142
|
end
|
143
|
-
|
143
|
+
|
144
144
|
replaced_dep || dep
|
145
145
|
end
|
146
146
|
|
@@ -168,7 +168,7 @@ module Bibliothecary
|
|
168
168
|
elsif (match = line.match(GOMOD_SINGLELINE_DEP_REGEXP)) # or, detect a singleline dep
|
169
169
|
categorized_deps[match[:category]] << go_mod_category_relative_dep(category: match[:category], line: line, match: match)
|
170
170
|
elsif (current_multiline_category && match = line.match(GOMOD_MULTILINE_DEP_REGEXP)) # otherwise, parse the multiline dep
|
171
|
-
categorized_deps[current_multiline_category] << go_mod_category_relative_dep(category: current_multiline_category, line: line, match: match)
|
171
|
+
categorized_deps[current_multiline_category] << go_mod_category_relative_dep(category: current_multiline_category, line: line, match: match)
|
172
172
|
end
|
173
173
|
end
|
174
174
|
categorized_deps
|
@@ -180,7 +180,7 @@ module Bibliothecary
|
|
180
180
|
if (match = line.match(GOSUM_REGEXP))
|
181
181
|
deps << Dependency.new(
|
182
182
|
name: match[1].strip,
|
183
|
-
requirement: match[2].strip.split("/").first
|
183
|
+
requirement: match[2].strip.split("/").first,
|
184
184
|
type: "runtime",
|
185
185
|
)
|
186
186
|
end
|
@@ -191,7 +191,7 @@ module Bibliothecary
|
|
191
191
|
def self.parse_go_resolved(file_contents, options: {}) # rubocop:disable Lint/UnusedMethodArgument
|
192
192
|
JSON.parse(file_contents)
|
193
193
|
.select { |dep| dep["Main"] != "true" }
|
194
|
-
.map do |dep|
|
194
|
+
.map do |dep|
|
195
195
|
if dep["Replace"].is_a?(String) && dep["Replace"] != "<nil>" && dep["Replace"] != ""
|
196
196
|
# NOTE: The "replace" directive doesn't actually change the version reported from Go (e.g. "go mod graph"), it only changes
|
197
197
|
# the *source code*. So by replacing the deps here, we're giving more honest results than you'd get when asking go
|
@@ -213,7 +213,7 @@ module Bibliothecary
|
|
213
213
|
manifest.fetch(attr_name,[]).map do |dependency|
|
214
214
|
Dependency.new(
|
215
215
|
name: dependency[dep_attr_name],
|
216
|
-
requirement: dependency[version_attr_name]
|
216
|
+
requirement: dependency[version_attr_name],
|
217
217
|
type: type,
|
218
218
|
)
|
219
219
|
end
|
@@ -222,21 +222,21 @@ module Bibliothecary
|
|
222
222
|
# Returns our standard-ish dep Hash based on the category of dep matched ("require", "replace", etc.)
|
223
223
|
def self.go_mod_category_relative_dep(category:, line:, match:)
|
224
224
|
case category
|
225
|
-
when "replace"
|
225
|
+
when "replace"
|
226
226
|
replacement_dep = line.split(GOMOD_REPLACEMENT_SEPARATOR_REGEXP, 2).last
|
227
227
|
replacement_match = replacement_dep.match(GOMOD_DEP_REGEXP)
|
228
228
|
Dependency.new(
|
229
229
|
original_name: match[:name],
|
230
|
-
original_requirement: match[:requirement]
|
230
|
+
original_requirement: match[:requirement],
|
231
231
|
name: replacement_match[:name],
|
232
|
-
requirement: replacement_match[:requirement]
|
232
|
+
requirement: replacement_match[:requirement],
|
233
233
|
type: "runtime",
|
234
234
|
direct: !match[:indirect],
|
235
235
|
)
|
236
236
|
when "retract"
|
237
237
|
Dependency.new(
|
238
238
|
name: match[:name],
|
239
|
-
requirement: match[:requirement]
|
239
|
+
requirement: match[:requirement],
|
240
240
|
type: "runtime",
|
241
241
|
deprecated: true,
|
242
242
|
direct: !match[:indirect],
|
@@ -244,7 +244,7 @@ module Bibliothecary
|
|
244
244
|
else
|
245
245
|
Dependency.new(
|
246
246
|
name: match[:name],
|
247
|
-
requirement: match[:requirement]
|
247
|
+
requirement: match[:requirement],
|
248
248
|
type: "runtime",
|
249
249
|
direct: !match[:indirect],
|
250
250
|
)
|
@@ -323,7 +323,7 @@ module Bibliothecary
|
|
323
323
|
.map { |(type, group, artifactId, version)|
|
324
324
|
Dependency.new(
|
325
325
|
name: [group, artifactId].join(":"),
|
326
|
-
requirement: version
|
326
|
+
requirement: version,
|
327
327
|
type: type,
|
328
328
|
)
|
329
329
|
}
|
@@ -336,7 +336,7 @@ module Bibliothecary
|
|
336
336
|
.map { |(type, group, artifactId, version)|
|
337
337
|
Dependency.new(
|
338
338
|
name: [group, artifactId].join(":"),
|
339
|
-
requirement: version
|
339
|
+
requirement: version,
|
340
340
|
type: type,
|
341
341
|
)
|
342
342
|
}
|
@@ -72,7 +72,7 @@ module Bibliothecary
|
|
72
72
|
.map do |name, dep|
|
73
73
|
Dependency.new(
|
74
74
|
name: name.split("node_modules/").last,
|
75
|
-
requirement: dep["version"]
|
75
|
+
requirement: dep["version"],
|
76
76
|
type: dep.fetch("dev", false) || dep.fetch("devOptional", false) ? "development" : "runtime",
|
77
77
|
local: dep.fetch("link", false),
|
78
78
|
)
|
@@ -94,7 +94,7 @@ module Bibliothecary
|
|
94
94
|
manifest.packages.locate("package").map do |dependency|
|
95
95
|
Dependency.new(
|
96
96
|
name: dependency.id,
|
97
|
-
requirement: (dependency.version if dependency.respond_to? "version")
|
97
|
+
requirement: (dependency.version if dependency.respond_to? "version"),
|
98
98
|
type: dependency.respond_to?("developmentDependency") && dependency.developmentDependency == "true" ? "development" : "runtime",
|
99
99
|
)
|
100
100
|
end
|
@@ -106,7 +106,7 @@ module Bibliothecary
|
|
106
106
|
manifest = Ox.parse file_contents
|
107
107
|
|
108
108
|
packages = manifest.locate("ItemGroup/PackageReference").select{ |dep| dep.respond_to? "Include" }.map do |dependency|
|
109
|
-
requirement = (dependency.Version if dependency.respond_to? "Version")
|
109
|
+
requirement = (dependency.Version if dependency.respond_to? "Version")
|
110
110
|
if requirement.is_a?(Ox::Element)
|
111
111
|
requirement = dependency.nodes.detect{ |n| n.value == "Version" }&.text
|
112
112
|
end
|
@@ -133,7 +133,7 @@ module Bibliothecary
|
|
133
133
|
manifest.package.metadata.dependencies.locate("dependency").map do |dependency|
|
134
134
|
Dependency.new(
|
135
135
|
name: dependency.id,
|
136
|
-
requirement: dependency.attributes[:version]
|
136
|
+
requirement: dependency.attributes[:version],
|
137
137
|
type: dependency.respond_to?("developmentDependency") && dependency.developmentDependency == "true" ? "development" : "runtime",
|
138
138
|
)
|
139
139
|
end
|
@@ -165,7 +165,7 @@ module Bibliothecary
|
|
165
165
|
"*"
|
166
166
|
end
|
167
167
|
else
|
168
|
-
info
|
168
|
+
info
|
169
169
|
end
|
170
170
|
end
|
171
171
|
|
@@ -217,7 +217,7 @@ module Bibliothecary
|
|
217
217
|
next unless match
|
218
218
|
deps << Dependency.new(
|
219
219
|
name: match[1],
|
220
|
-
requirement: match[-1]
|
220
|
+
requirement: match[-1],
|
221
221
|
type: "runtime",
|
222
222
|
)
|
223
223
|
end
|
@@ -269,7 +269,7 @@ module Bibliothecary
|
|
269
269
|
elsif (match = line.delete(" ").match(REQUIREMENTS_REGEXP))
|
270
270
|
deps << Dependency.new(
|
271
271
|
name: match[1],
|
272
|
-
requirement: match[-1]
|
272
|
+
requirement: match[-1],
|
273
273
|
type: type,
|
274
274
|
)
|
275
275
|
end
|
@@ -287,7 +287,7 @@ module Bibliothecary
|
|
287
287
|
|
288
288
|
requirement = uri.path[/@(.+)$/, 1]
|
289
289
|
|
290
|
-
Dependency.new(name: name, requirement: requirement
|
290
|
+
Dependency.new(name: name, requirement: requirement, type: type)
|
291
291
|
end
|
292
292
|
|
293
293
|
def self.pip_compile?(file_contents)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bibliothecary
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 10.
|
4
|
+
version: 10.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Nesbitt
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-08-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: tomlrb
|