bibliothecary 7.0.0 → 7.1.1
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/lib/bibliothecary/parsers/maven.rb +7 -1
- data/lib/bibliothecary/parsers/packagist.rb +22 -4
- data/lib/bibliothecary/version.rb +1 -1
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e99bd64be33f917579aeca0ce4d27a1290328020516f2bf2328f3bc82273da99
|
4
|
+
data.tar.gz: 3c431e57230c9d20ba3e66e4e5e9b72def9ba81ad8707f47166be5d9e993a751
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 722b6cad2fa9b84111fa97a5f925e6fb3967489bac80747e11ab1c6ac22cfec6a4fdeefa6e17ad9e926860e429322e1e1f182bfc88ea69a4778cfc0717d9de70
|
7
|
+
data.tar.gz: 0e92b678afe3f81ad3593f6feaa7e4357a4bda19e1ec4720a8f513c69261b87eb2916950b556ab645913432496b1153f8db7a44f3945baaa6e2154a0109fdd01
|
@@ -152,10 +152,12 @@ module Bibliothecary
|
|
152
152
|
.compact
|
153
153
|
.uniq
|
154
154
|
end
|
155
|
+
|
155
156
|
def self.parse_maven_tree(file_contents)
|
156
157
|
file_contents = file_contents.gsub(/\r\n?/, "\n")
|
157
158
|
captures = file_contents.scan(/^\[INFO\](?:(?:\+-)|\||(?:\\-)|\s)+((?:[\w\.-]+:)+[\w\.\-${}]+)/).flatten.uniq
|
158
|
-
|
159
|
+
|
160
|
+
deps = captures.map do |item|
|
159
161
|
parts = item.split(":")
|
160
162
|
case parts.count
|
161
163
|
when 4
|
@@ -170,6 +172,10 @@ module Bibliothecary
|
|
170
172
|
type: type
|
171
173
|
}
|
172
174
|
end
|
175
|
+
|
176
|
+
# First dep line will be the package itself (unless we're only analyzing a single line)
|
177
|
+
package = deps[0]
|
178
|
+
deps.size < 2 ? deps : deps[1..-1].reject { |d| d[:name] == package[:name] && d[:requirement] == package[:requirement] }
|
173
179
|
end
|
174
180
|
|
175
181
|
def self.parse_resolved_dep_line(line)
|
@@ -24,14 +24,20 @@ module Bibliothecary
|
|
24
24
|
{
|
25
25
|
name: dependency["name"],
|
26
26
|
requirement: dependency["version"],
|
27
|
-
type:
|
28
|
-
}
|
27
|
+
type: "runtime"
|
28
|
+
}.tap do |result|
|
29
|
+
# Store Drupal version if Drupal, but include the original manifest version for reference
|
30
|
+
result[:original_requirement], result[:requirement] = result[:requirement], dependency.dig("source", "reference") if is_drupal_module(dependency)
|
31
|
+
end
|
29
32
|
end + manifest.fetch('packages-dev',[]).map do |dependency|
|
30
33
|
{
|
31
34
|
name: dependency["name"],
|
32
35
|
requirement: dependency["version"],
|
33
|
-
type:
|
34
|
-
}
|
36
|
+
type: "development"
|
37
|
+
}.tap do |result|
|
38
|
+
# Store Drupal version if Drupal, but include the original manifest version for reference
|
39
|
+
result[:original_requirement], result[:requirement] = result[:requirement], dependency.dig("source", "reference") if is_drupal_module(dependency)
|
40
|
+
end
|
35
41
|
end
|
36
42
|
end
|
37
43
|
|
@@ -40,6 +46,18 @@ module Bibliothecary
|
|
40
46
|
map_dependencies(manifest, 'require', 'runtime') +
|
41
47
|
map_dependencies(manifest, 'require-dev', 'development')
|
42
48
|
end
|
49
|
+
|
50
|
+
# Drupal hosts its own Composer repository, where its "modules" are indexed and searchable. The best way to
|
51
|
+
# confirm that Drupal's repo is being used is if its in the "repositories" in composer.json
|
52
|
+
# (https://support.acquia.com/hc/en-us/articles/360048081273-Using-Composer-to-manage-dependencies-in-Drupal-8-and-9),
|
53
|
+
# but you may only have composer.lock, so we test if the type is "drupal-*" (e.g. "drupal-module" or "drupal-theme")
|
54
|
+
# The Drupal team also setup its own mapper of Composer semver -> Drupal tool-specfic versions
|
55
|
+
# (https://www.drupal.org/project/project_composer/issues/2622450),
|
56
|
+
# so we return the Drupal requirement instead of semver requirement if it's here
|
57
|
+
# (https://www.drupal.org/docs/develop/using-composer/using-composer-to-install-drupal-and-manage-dependencies#s-about-semantic-versioning)
|
58
|
+
private_class_method def self.is_drupal_module(dependency)
|
59
|
+
dependency["type"] =~ /drupal/ && dependency.dig("source", "reference")
|
60
|
+
end
|
43
61
|
end
|
44
62
|
end
|
45
63
|
end
|
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: 7.
|
4
|
+
version: 7.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Nesbitt
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-08-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: tomlrb
|
@@ -206,7 +206,7 @@ dependencies:
|
|
206
206
|
- - ">="
|
207
207
|
- !ruby/object:Gem::Version
|
208
208
|
version: '0'
|
209
|
-
description:
|
209
|
+
description:
|
210
210
|
email:
|
211
211
|
- andrewnez@gmail.com
|
212
212
|
executables:
|
@@ -274,7 +274,7 @@ homepage: https://github.com/librariesio/bibliothecary
|
|
274
274
|
licenses:
|
275
275
|
- AGPL-3.0
|
276
276
|
metadata: {}
|
277
|
-
post_install_message:
|
277
|
+
post_install_message:
|
278
278
|
rdoc_options: []
|
279
279
|
require_paths:
|
280
280
|
- lib
|
@@ -289,8 +289,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
289
289
|
- !ruby/object:Gem::Version
|
290
290
|
version: '0'
|
291
291
|
requirements: []
|
292
|
-
rubygems_version: 3.2
|
293
|
-
signing_key:
|
292
|
+
rubygems_version: 3.1.2
|
293
|
+
signing_key:
|
294
294
|
specification_version: 4
|
295
295
|
summary: Find and parse manifests
|
296
296
|
test_files: []
|