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