bibliothecary 12.2.0 → 12.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 37cce0e70366df9eeaaf3d134ba139335359ed2b484ce78c737e8f155d4606b7
4
- data.tar.gz: b23e369a3077301e8f3078a179f474b3afc83af926e445370988d170d998ae19
3
+ metadata.gz: 8405e79b9449b0f4e1f1dc7940b54870ab0aafe7adb511a7d4876ecfca2798ed
4
+ data.tar.gz: 15ef48279642088fdbb57291c44a1faaf74c4c2a47e0ac4258e215dfe40e8197
5
5
  SHA512:
6
- metadata.gz: b46141115f05919f3d4f16b0e1cf03a0baf0060e972e5ec044c791c2f0124e0e0bcc34e87eec715298d207252cfbf8960c68edfc533ff5ee7290ad358af76ccb
7
- data.tar.gz: a302ac6a16b775df78f2eef640feac02e624b2be6b8165f75492922c34e1c218de449bdfb6e3992e7f8b3941cf2d42c6457eb4d2025266b5abec05f553219902
6
+ metadata.gz: 7710e394463856a89913e95d49b525966a4b394c6be84c403d97a17bc0c8964df2293ab995164c65fdd9fb3f96d5b9cd1be114f03464d4fc9c1dd2fe269b0a48
7
+ data.tar.gz: 1a9e5a61ad6904934c85e324ffc66a5e7d8bdff592b5b0b63040db5431e6dd153e40b70f0d75c1d1a7a9652e3e8ef12fd9b4325b0b8acf31c9c128d4c61bea56
data/CHANGELOG.md CHANGED
@@ -13,20 +13,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
13
13
 
14
14
  ### Removed
15
15
 
16
- ## [12.2.0] - 2025-05-30
16
+ ## [12.3.1] - 2025-06-06
17
17
 
18
- ### Added
18
+ ### Changed
19
19
 
20
- - Maven parser support for maven-dependency-tree.dot file.
20
+ - Handle .csproj files that begin with an <?xml> tag
21
21
 
22
- ### Changed
22
+ ## [12.3.0] - 2025-06-06
23
23
 
24
- ### Removed
24
+ ### Added
25
25
 
26
- ## [12.1.10] - 2025-05-23
26
+ - Nuget support for <Reference> tag in \*.csproj manifests.
27
+
28
+ ## [12.2.0] - 2025-05-30
27
29
 
28
30
  ### Added
29
31
 
32
+ - Maven parser support for maven-dependency-tree.dot file.
33
+
34
+ ## [12.1.10] - 2025-05-23
35
+
30
36
  ### Changed
31
37
 
32
38
  - Normalize package names in Poetry manifests, storing the original in
@@ -34,50 +40,32 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
34
40
  names in its lockfile according to PyPa's rules, but doesn't provide the original name.
35
41
  Storing the original_name will provide a connection from manifest to lockfile.
36
42
 
37
- ### Removed
38
-
39
43
  ## [12.1.9] - 2025-05-16
40
44
 
41
- ### Added
42
-
43
45
  ### Changed
44
46
 
45
47
  - Fix 12.1.8 Poetry regression that ignored deps with no category or group.
46
48
 
47
- ### Removed
48
-
49
49
  ## [12.1.8] - 2025-05-16
50
50
 
51
51
  ### Added
52
52
 
53
53
  - Support multiple requirements for a single package in poetry.lock.
54
54
 
55
- ### Changed
56
-
57
- ### Removed
58
-
59
55
  ## [12.1.7] - 2025-04-29
60
56
 
61
- ### Added
62
-
63
57
  ### Changed
64
58
 
65
59
  - Include "source" field in Dependency objects from pub files.
66
60
  - Include "source" field in Dependency objects from pnpm-lock.yaml files.
67
61
 
68
- ### Removed
69
-
70
62
  ## [12.1.6] - 2025-04-29
71
63
 
72
- ### Added
73
-
74
64
  ### Changed
75
65
 
76
66
  - Use JSON.parser.parse() in bun.lock parser to work around overriden JSON.parse() method.
77
67
  - Don't raise an error in pnpm-lock.yaml v9 parser if devDependencies isn't found.
78
68
 
79
- ### Removed
80
-
81
69
  ## [12.1.5] - 2025-03-17
82
70
 
83
71
  ### Added
@@ -85,10 +73,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
85
73
  - Adds alias support for PNPM lockfiles.
86
74
  - Add support for bun.lock files
87
75
 
88
- ### Changed
89
-
90
- ### Removed
91
-
92
76
  ## [12.1.4] - 2025-03-14
93
77
 
94
78
  ### Added
@@ -96,10 +80,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
96
80
  - Add support for PNPM lockfiles (lockfile versions 5, 6, and 9).
97
81
  - Add 'parser_options' arg to Bilbiothecary::Runner constructor.
98
82
 
99
- ### Changed
100
-
101
- ### Removed
102
-
103
83
  ## [12.1.3] - 2025-02-26
104
84
 
105
85
  ### Added
@@ -112,28 +92,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
112
92
  - Fix a PyPI parser's regex to exclude false positive "require" names.
113
93
  - Drop all sub-projects from list of deps in a Maven maven-dependency-tree.txt.
114
94
 
115
- ### Removed
116
-
117
95
  ## [12.1.2] - 2025-02-26
118
96
 
119
97
  ### Added
120
98
 
121
99
  - Add 'local' property to dependencies from Pipfile and Pipfile.lock
122
100
 
123
- ### Changed
124
-
125
- ### Removed
126
-
127
101
  ## [12.1.1] - 2025-02-21
128
102
 
129
103
  ### Added
130
104
 
131
105
  - Add test coverage for Go 1.24's new "tool" directive.
132
106
 
133
- ### Changed
134
-
135
- ### Removed
136
-
137
107
  ## [12.1.0] - 2025-01-30
138
108
 
139
109
  ### Added
@@ -145,8 +115,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
145
115
 
146
116
  - Improved Rubocop rules to make future spec changes easier via Rubocop auto-correcting formatting violations.
147
117
 
148
- ### Removed
149
-
150
118
  ## [12.0.0] - 2025-01-27
151
119
 
152
120
  ### Removed
@@ -110,25 +110,54 @@ module Bibliothecary
110
110
  def self.parse_csproj(file_contents, options: {})
111
111
  manifest = Ox.parse file_contents
112
112
 
113
- packages = manifest.locate("ItemGroup/PackageReference").select { |dep| dep.respond_to? "Include" }.map do |dependency|
114
- requirement = (dependency.Version if dependency.respond_to? "Version")
115
- if requirement.is_a?(Ox::Element)
116
- requirement = dependency.nodes.detect { |n| n.value == "Version" }&.text
113
+ # The dotnet samples repo has examples with both of these cases, so both need to be handled:
114
+ project = if manifest.locate("Project").any?
115
+ # 1) If there's an <?xml> tag, we need to pick out the "Project" element
116
+ manifest.locate("Project").first
117
+ else
118
+ # 2) If there's no <?xml> tag, the root element is "Project"
119
+ manifest
120
+ end
121
+
122
+ packages = project
123
+ .locate("ItemGroup/PackageReference")
124
+ .select { |dep| dep.respond_to? "Include" }
125
+ .map do |dependency|
126
+ requirement = (dependency.Version if dependency.respond_to? "Version")
127
+ if requirement.is_a?(Ox::Element)
128
+ requirement = dependency.nodes.detect { |n| n.value == "Version" }&.text
129
+ end
130
+
131
+ type = if (dependency.nodes.first&.nodes&.include?("all") && dependency.nodes.first.value.include?("PrivateAssets")) || dependency.attributes[:PrivateAssets] == "All"
132
+ "development"
133
+ else
134
+ "runtime"
135
+ end
136
+
137
+ Dependency.new(
138
+ name: dependency.Include,
139
+ requirement: requirement,
140
+ type: type,
141
+ source: options.fetch(:filename, nil)
142
+ )
117
143
  end
118
144
 
119
- type = if (dependency.nodes.first&.nodes&.include?("all") && dependency.nodes.first.value.include?("PrivateAssets")) || dependency.attributes[:PrivateAssets] == "All"
120
- "development"
121
- else
122
- "runtime"
123
- end
145
+ packages += project
146
+ .locate("ItemGroup/Reference")
147
+ .select { |dep| dep.respond_to? "Include" }
148
+ .map do |dependency|
149
+ vals = *dependency.Include.split(",").map(&:strip)
150
+ name = vals.shift
151
+ vals = vals.to_h { |r| r.split("=", 2) }
152
+
153
+ Dependency.new(
154
+ name: name,
155
+ requirement: vals["Version"] || "*",
156
+ type: "runtime",
157
+ source: options.fetch(:filename, nil)
158
+ )
159
+ end
124
160
 
125
- Dependency.new(
126
- name: dependency.Include,
127
- requirement: requirement,
128
- type: type,
129
- source: options.fetch(:filename, nil)
130
- )
131
- end
132
161
  packages.uniq(&:name)
133
162
  rescue StandardError
134
163
  []
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Bibliothecary
4
- VERSION = "12.2.0"
4
+ VERSION = "12.3.1"
5
5
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bibliothecary
3
3
  version: !ruby/object:Gem::Version
4
- version: 12.2.0
4
+ version: 12.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Nesbitt
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-05-30 00:00:00.000000000 Z
10
+ date: 2025-06-06 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: commander