dependabot-python 0.279.0 → 0.281.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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1273f0793f6c0432a5a66468ec19a460c854eda211c935c45af189d1c7b11e9d
|
4
|
+
data.tar.gz: c938f342ad448550e12036631ecefe4623d5d16afebf21aa01bfe85a0c048ab2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a2ae4f68e9cdba267b00989165544e24384d8cd10b58c99802066214fb0b354a9c331af03e8b611a0195eda2d6d760c8cb354584b29b3a7b0d7f42e8e14067a7
|
7
|
+
data.tar.gz: 39a45d259c975b32debd5f3d21edd53622fb863630da7fe0bdafb6170f6adde5e3f556c36896cac357475b14797ac878855c4b9d171f7d29799bc8bd8ac20854
|
@@ -36,7 +36,17 @@ module Dependabot
|
|
36
36
|
line = matches[1]
|
37
37
|
end
|
38
38
|
|
39
|
-
|
39
|
+
pattern = PATTERN
|
40
|
+
|
41
|
+
if Dependabot::Experiments.enabled?(:python_new_version)
|
42
|
+
quoted = OPS.keys.sort_by(&:length).reverse
|
43
|
+
.map { |k| Regexp.quote(k) }.join("|")
|
44
|
+
version_pattern = Python::Version::NEW_VERSION_PATTERN
|
45
|
+
pattern_raw = "\\s*(?<op>#{quoted})?\\s*(?<version>#{version_pattern})\\s*".freeze
|
46
|
+
pattern = /\A#{pattern_raw}\z/
|
47
|
+
end
|
48
|
+
|
49
|
+
unless (matches = pattern.match(line))
|
40
50
|
msg = "Illformed requirement [#{obj.inspect}]"
|
41
51
|
raise BadRequirementError, msg
|
42
52
|
end
|
@@ -128,7 +138,8 @@ module Dependabot
|
|
128
138
|
upper_bound = parts.map.with_index do |part, i|
|
129
139
|
if i < first_non_zero_index then part
|
130
140
|
elsif i == first_non_zero_index then (part.to_i + 1).to_s
|
131
|
-
|
141
|
+
# .dev has lowest precedence: https://packaging.python.org/en/latest/specifications/version-specifiers/#summary-of-permitted-suffixes-and-relative-ordering
|
142
|
+
elsif i > first_non_zero_index && i == 2 then "0.dev"
|
132
143
|
else
|
133
144
|
0
|
134
145
|
end
|
@@ -151,7 +162,7 @@ module Dependabot
|
|
151
162
|
.first(req_string.split(".").index { |s| s.include?("*") } + 1)
|
152
163
|
.join(".")
|
153
164
|
.gsub(/\*(?!$)/, "0")
|
154
|
-
.gsub(/\*$/, "0.
|
165
|
+
.gsub(/\*$/, "0.dev")
|
155
166
|
.tap { |s| exact_op ? s.gsub!(/^(?<!!)=*/, "~>") : s }
|
156
167
|
end
|
157
168
|
end
|
@@ -353,8 +353,21 @@ module Dependabot
|
|
353
353
|
# package version mentioned in .toml not found in package index
|
354
354
|
PACKAGE_NOT_FOUND = /Package (?<pkg>.*) ((?<req_ver>.*)) not found./
|
355
355
|
|
356
|
-
# error
|
357
|
-
|
356
|
+
# client access error codes while accessing package index
|
357
|
+
CLIENT_ERROR_CODES = T.let({
|
358
|
+
error401: /401 Client Error/,
|
359
|
+
error403: /403 Client Error/,
|
360
|
+
error404: /404 Client Error/,
|
361
|
+
http403: /HTTP error 403/,
|
362
|
+
http404: /HTTP error 404/
|
363
|
+
}.freeze, T::Hash[T.nilable(String), Regexp])
|
364
|
+
|
365
|
+
# server response error codes while accessing package index
|
366
|
+
SERVER_ERROR_CODES = T.let({
|
367
|
+
server502: /502 Server Error/,
|
368
|
+
server503: /503 Server Error/,
|
369
|
+
server504: /504 Server Error/
|
370
|
+
}.freeze, T::Hash[T.nilable(String), Regexp])
|
358
371
|
|
359
372
|
sig do
|
360
373
|
params(
|
@@ -386,6 +399,8 @@ module Dependabot
|
|
386
399
|
|
387
400
|
public
|
388
401
|
|
402
|
+
# rubocop:disable Metrics/AbcSize
|
403
|
+
# rubocop:disable Metrics/PerceivedComplexity
|
389
404
|
sig { params(error: Exception).void }
|
390
405
|
def handle_poetry_error(error)
|
391
406
|
Dependabot.logger.warn(error.message)
|
@@ -403,11 +418,22 @@ module Dependabot
|
|
403
418
|
|
404
419
|
raise DependencyFileNotResolvable, error.message if error.message.match(PYTHON_RANGE_NOT_SATISFIED)
|
405
420
|
|
406
|
-
|
421
|
+
SERVER_ERROR_CODES.each do |(_error_codes, error_regex)|
|
422
|
+
next unless error.message.match?(error_regex)
|
407
423
|
|
408
|
-
|
409
|
-
|
424
|
+
index_url = URI.extract(error.message.to_s).last .then { sanitize_url(_1) }
|
425
|
+
raise InconsistentRegistryResponse, index_url
|
426
|
+
end
|
427
|
+
|
428
|
+
CLIENT_ERROR_CODES.each do |(_error_codes, error_regex)|
|
429
|
+
next unless error.message.match?(error_regex)
|
430
|
+
|
431
|
+
index_url = URI.extract(error.message.to_s).last .then { sanitize_url(_1) }
|
432
|
+
raise PrivateSourceAuthenticationFailure, index_url
|
433
|
+
end
|
410
434
|
end
|
435
|
+
# rubocop:enable Metrics/AbcSize
|
436
|
+
# rubocop:enable Metrics/PerceivedComplexity
|
411
437
|
end
|
412
438
|
end
|
413
439
|
end
|
@@ -4,71 +4,333 @@
|
|
4
4
|
require "dependabot/version"
|
5
5
|
require "dependabot/utils"
|
6
6
|
|
7
|
-
#
|
8
|
-
# parse. This class augments Gem::Version with local version identifier info.
|
9
|
-
# See https://www.python.org/dev/peps/pep-0440 for details.
|
7
|
+
# See https://packaging.python.org/en/latest/specifications/version-specifiers for spec details.
|
10
8
|
|
11
9
|
module Dependabot
|
12
10
|
module Python
|
13
11
|
class Version < Dependabot::Version
|
12
|
+
sig { returns(Integer) }
|
14
13
|
attr_reader :epoch
|
14
|
+
|
15
|
+
sig { returns(T::Array[Integer]) }
|
16
|
+
attr_reader :release_segment
|
17
|
+
|
18
|
+
sig { returns(T.nilable(T::Array[T.any(String, Integer)])) }
|
19
|
+
attr_reader :dev
|
20
|
+
|
21
|
+
sig { returns(T.nilable(T::Array[T.any(String, Integer)])) }
|
22
|
+
attr_reader :pre
|
23
|
+
|
24
|
+
sig { returns(T.nilable(T::Array[T.any(String, Integer)])) }
|
25
|
+
attr_reader :post
|
26
|
+
|
27
|
+
sig { returns(T.nilable(T::Array[T.any(String, Integer)])) }
|
28
|
+
attr_reader :local
|
29
|
+
|
15
30
|
attr_reader :local_version
|
16
31
|
attr_reader :post_release_version
|
17
32
|
|
33
|
+
INFINITY = 1000
|
34
|
+
NEGATIVE_INFINITY = -INFINITY
|
35
|
+
|
18
36
|
# See https://peps.python.org/pep-0440/#appendix-b-parsing-version-strings-with-regular-expressions
|
37
|
+
NEW_VERSION_PATTERN = /
|
38
|
+
v?
|
39
|
+
(?:
|
40
|
+
(?:(?<epoch>[0-9]+)!)? # epoch
|
41
|
+
(?<release>[0-9]+(?:\.[0-9]+)*) # release
|
42
|
+
(?<pre> # prerelease
|
43
|
+
[-_\.]?
|
44
|
+
(?<pre_l>(a|b|c|rc|alpha|beta|pre|preview))
|
45
|
+
[-_\.]?
|
46
|
+
(?<pre_n>[0-9]+)?
|
47
|
+
)?
|
48
|
+
(?<post> # post release
|
49
|
+
(?:-(?<post_n1>[0-9]+))
|
50
|
+
|
|
51
|
+
(?:
|
52
|
+
[-_\.]?
|
53
|
+
(?<post_l>post|rev|r)
|
54
|
+
[-_\.]?
|
55
|
+
(?<post_n2>[0-9]+)?
|
56
|
+
)
|
57
|
+
)?
|
58
|
+
(?<dev> # dev release
|
59
|
+
[-_\.]?
|
60
|
+
(?<dev_l>dev)
|
61
|
+
[-_\.]?
|
62
|
+
(?<dev_n>[0-9]+)?
|
63
|
+
)?
|
64
|
+
)
|
65
|
+
(?:\+(?<local>[a-z0-9]+(?:[-_\.][a-z0-9]+)*))? # local version
|
66
|
+
/ix
|
67
|
+
|
19
68
|
VERSION_PATTERN = 'v?([1-9][0-9]*!)?[0-9]+[0-9a-zA-Z]*(?>\.[0-9a-zA-Z]+)*' \
|
20
69
|
'(-[0-9A-Za-z]+(\.[0-9a-zA-Z]+)*)?' \
|
21
70
|
'(\+[0-9a-zA-Z]+(\.[0-9a-zA-Z]+)*)?'
|
22
|
-
ANCHORED_VERSION_PATTERN = /\A\s*(#{VERSION_PATTERN})?\s*\z/
|
23
71
|
|
72
|
+
ANCHORED_VERSION_PATTERN = /\A\s*#{VERSION_PATTERN}\s*\z/
|
73
|
+
|
74
|
+
sig { override.params(version: VersionParameter).returns(T::Boolean) }
|
24
75
|
def self.correct?(version)
|
25
76
|
return false if version.nil?
|
26
77
|
|
27
|
-
|
78
|
+
if Dependabot::Experiments.enabled?(:python_new_version)
|
79
|
+
version.to_s.match?(/\A\s*#{NEW_VERSION_PATTERN}\s*\z/o)
|
80
|
+
else
|
81
|
+
version.to_s.match?(ANCHORED_VERSION_PATTERN)
|
82
|
+
end
|
28
83
|
end
|
29
84
|
|
30
|
-
|
85
|
+
sig { override.params(version: VersionParameter).void }
|
86
|
+
def initialize(version) # rubocop:disable Metrics/AbcSize,Metrics/PerceivedComplexity
|
87
|
+
raise Dependabot::BadRequirementError, "Malformed version string - string is nil" if version.nil?
|
88
|
+
|
31
89
|
@version_string = version.to_s
|
32
|
-
|
33
|
-
version
|
34
|
-
|
35
|
-
|
36
|
-
|
90
|
+
|
91
|
+
raise Dependabot::BadRequirementError, "Malformed version string - string is empty" if @version_string.empty?
|
92
|
+
|
93
|
+
matches = anchored_version_pattern.match(@version_string.downcase)
|
94
|
+
|
95
|
+
unless matches
|
96
|
+
raise Dependabot::BadRequirementError,
|
97
|
+
"Malformed version string - #{@version_string} does not match regex"
|
98
|
+
end
|
99
|
+
|
100
|
+
if Dependabot::Experiments.enabled?(:python_new_version)
|
101
|
+
@epoch = matches["epoch"].to_i
|
102
|
+
@release_segment = matches["release"]&.split(".")&.map(&:to_i) || []
|
103
|
+
@pre = parse_letter_version(matches["pre_l"], matches["pre_n"])
|
104
|
+
@post = parse_letter_version(matches["post_l"], matches["post_n1"] || matches["post_n2"])
|
105
|
+
@dev = parse_letter_version(matches["dev_l"], matches["dev_n"])
|
106
|
+
@local = parse_local_version(matches["local"])
|
107
|
+
super(matches["release"] || "")
|
37
108
|
else
|
38
|
-
@
|
109
|
+
version, @local_version = @version_string.split("+")
|
110
|
+
version ||= ""
|
111
|
+
version = version.gsub(/^v/, "")
|
112
|
+
if version.include?("!")
|
113
|
+
epoch, version = version.split("!")
|
114
|
+
@epoch = epoch.to_i
|
115
|
+
else
|
116
|
+
@epoch = 0
|
117
|
+
end
|
118
|
+
version = normalise_prerelease(version)
|
119
|
+
version, @post_release_version = version.split(/\.r(?=\d)/)
|
120
|
+
version ||= ""
|
121
|
+
@local_version = normalise_prerelease(@local_version) if @local_version
|
122
|
+
super
|
39
123
|
end
|
40
|
-
version = normalise_prerelease(version)
|
41
|
-
version, @post_release_version = version.split(/\.r(?=\d)/)
|
42
|
-
version ||= ""
|
43
|
-
@local_version = normalise_prerelease(@local_version) if @local_version
|
44
|
-
super
|
45
124
|
end
|
46
125
|
|
126
|
+
sig { override.params(version: VersionParameter).returns(Dependabot::Python::Version) }
|
127
|
+
def self.new(version)
|
128
|
+
T.cast(super, Dependabot::Python::Version)
|
129
|
+
end
|
130
|
+
|
131
|
+
sig { returns(String) }
|
47
132
|
def to_s
|
48
133
|
@version_string
|
49
134
|
end
|
50
135
|
|
136
|
+
sig { returns(String) }
|
51
137
|
def inspect # :nodoc:
|
52
138
|
"#<#{self.class} #{@version_string}>"
|
53
139
|
end
|
54
140
|
|
55
|
-
|
56
|
-
|
141
|
+
sig { returns(T::Boolean) }
|
142
|
+
def prerelease?
|
143
|
+
return super unless Dependabot::Experiments.enabled?(:python_new_version)
|
57
144
|
|
58
|
-
|
59
|
-
|
145
|
+
!!(pre || dev)
|
146
|
+
end
|
147
|
+
|
148
|
+
sig { returns(T.any(Gem::Version, Dependabot::Python::Version)) }
|
149
|
+
def release
|
150
|
+
return super unless Dependabot::Experiments.enabled?(:python_new_version)
|
151
|
+
|
152
|
+
Dependabot::Python::Version.new(release_segment.join("."))
|
153
|
+
end
|
154
|
+
|
155
|
+
sig { params(other: VersionParameter).returns(Integer) }
|
156
|
+
def <=>(other) # rubocop:disable Metrics/AbcSize,Metrics/PerceivedComplexity
|
157
|
+
other = Dependabot::Python::Version.new(other.to_s) unless other.is_a?(Dependabot::Python::Version)
|
158
|
+
other = T.cast(other, Dependabot::Python::Version)
|
60
159
|
|
61
|
-
|
62
|
-
|
160
|
+
if Dependabot::Experiments.enabled?(:python_new_version)
|
161
|
+
epoch_comparison = epoch <=> other.epoch
|
162
|
+
return epoch_comparison unless epoch_comparison.zero?
|
63
163
|
|
64
|
-
|
65
|
-
|
164
|
+
release_comparison = release_version_comparison(other)
|
165
|
+
return release_comparison unless release_comparison.zero?
|
166
|
+
|
167
|
+
pre_comparison = compare_keys(pre_cmp_key, other.pre_cmp_key)
|
168
|
+
return pre_comparison unless pre_comparison.zero?
|
169
|
+
|
170
|
+
post_comparison = compare_keys(post_cmp_key, other.post_cmp_key)
|
171
|
+
return post_comparison unless post_comparison.zero?
|
172
|
+
|
173
|
+
dev_comparison = compare_keys(dev_cmp_key, other.dev_cmp_key)
|
174
|
+
return dev_comparison unless dev_comparison.zero?
|
175
|
+
|
176
|
+
compare_keys(local_cmp_key, other.local_cmp_key)
|
177
|
+
else
|
178
|
+
epoch_comparison = epoch_comparison(other)
|
179
|
+
return epoch_comparison unless epoch_comparison.zero?
|
66
180
|
|
67
|
-
|
181
|
+
version_comparison = super
|
182
|
+
return T.must(version_comparison) unless version_comparison&.zero?
|
183
|
+
|
184
|
+
post_version_comparison = post_version_comparison(other)
|
185
|
+
return post_version_comparison unless post_version_comparison.zero?
|
186
|
+
|
187
|
+
local_version_comparison(other)
|
188
|
+
end
|
189
|
+
end
|
190
|
+
|
191
|
+
sig do
|
192
|
+
params(
|
193
|
+
key: T.any(Integer, T::Array[T.any(String, Integer)]),
|
194
|
+
other_key: T.any(Integer, T::Array[T.any(String, Integer)])
|
195
|
+
).returns(Integer)
|
196
|
+
end
|
197
|
+
def compare_keys(key, other_key)
|
198
|
+
if key.is_a?(Integer) && other_key.is_a?(Integer)
|
199
|
+
key <=> other_key
|
200
|
+
elsif key.is_a?(Array) && other_key.is_a?(Array)
|
201
|
+
key <=> other_key
|
202
|
+
elsif key.is_a?(Integer)
|
203
|
+
key == NEGATIVE_INFINITY ? -1 : 1
|
204
|
+
elsif other_key.is_a?(Integer)
|
205
|
+
other_key == NEGATIVE_INFINITY ? 1 : -1
|
206
|
+
end
|
207
|
+
end
|
208
|
+
|
209
|
+
sig { returns(T.any(Integer, T::Array[T.any(String, Integer)])) }
|
210
|
+
def pre_cmp_key
|
211
|
+
if pre.nil? && post.nil? && dev # sort 1.0.dev0 before 1.0a0
|
212
|
+
NEGATIVE_INFINITY
|
213
|
+
elsif pre.nil?
|
214
|
+
INFINITY # versions without a pre-release should sort after those with one.
|
215
|
+
else
|
216
|
+
T.must(pre)
|
217
|
+
end
|
218
|
+
end
|
219
|
+
|
220
|
+
sig { returns(T.any(Integer, T::Array[T.any(String, Integer)])) }
|
221
|
+
def local_cmp_key
|
222
|
+
if local.nil?
|
223
|
+
# Versions without a local segment should sort before those with one.
|
224
|
+
NEGATIVE_INFINITY
|
225
|
+
else
|
226
|
+
# According to PEP440.
|
227
|
+
# - Alphanumeric segments sort before numeric segments
|
228
|
+
# - Alphanumeric segments sort lexicographically
|
229
|
+
# - Numeric segments sort numerically
|
230
|
+
# - Shorter versions sort before longer versions when the prefixes match exactly
|
231
|
+
local&.map do |token|
|
232
|
+
if token.is_a?(Integer)
|
233
|
+
[token, ""]
|
234
|
+
else
|
235
|
+
[NEGATIVE_INFINITY, token]
|
236
|
+
end
|
237
|
+
end
|
238
|
+
end
|
239
|
+
end
|
240
|
+
|
241
|
+
sig { returns(T.any(Integer, T::Array[T.any(String, Integer)])) }
|
242
|
+
def post_cmp_key
|
243
|
+
# Versions without a post segment should sort before those with one.
|
244
|
+
return NEGATIVE_INFINITY if post.nil?
|
245
|
+
|
246
|
+
T.must(post)
|
247
|
+
end
|
248
|
+
|
249
|
+
sig { returns(T.any(Integer, T::Array[T.any(String, Integer)])) }
|
250
|
+
def dev_cmp_key
|
251
|
+
# Versions without a dev segment should sort after those with one.
|
252
|
+
return INFINITY if dev.nil?
|
253
|
+
|
254
|
+
T.must(dev)
|
68
255
|
end
|
69
256
|
|
70
257
|
private
|
71
258
|
|
259
|
+
sig { params(other: Dependabot::Python::Version).returns(Integer) }
|
260
|
+
def release_version_comparison(other)
|
261
|
+
tokens, other_tokens = pad_for_comparison(release_segment, other.release_segment)
|
262
|
+
tokens <=> other_tokens
|
263
|
+
end
|
264
|
+
|
265
|
+
sig do
|
266
|
+
params(
|
267
|
+
tokens: T::Array[Integer],
|
268
|
+
other_tokens: T::Array[Integer]
|
269
|
+
).returns(T::Array[T::Array[Integer]])
|
270
|
+
end
|
271
|
+
def pad_for_comparison(tokens, other_tokens)
|
272
|
+
tokens = tokens.dup
|
273
|
+
other_tokens = other_tokens.dup
|
274
|
+
|
275
|
+
longer = [tokens, other_tokens].max_by(&:count)
|
276
|
+
shorter = [tokens, other_tokens].min_by(&:count)
|
277
|
+
|
278
|
+
difference = T.must(longer).length - T.must(shorter).length
|
279
|
+
|
280
|
+
difference.times { T.must(shorter) << 0 }
|
281
|
+
|
282
|
+
[tokens, other_tokens]
|
283
|
+
end
|
284
|
+
|
285
|
+
sig { params(local: T.nilable(String)).returns(T.nilable(T::Array[T.any(String, Integer)])) }
|
286
|
+
def parse_local_version(local)
|
287
|
+
return if local.nil?
|
288
|
+
|
289
|
+
# Takes a string like abc.1.twelve and turns it into ["abc", 1, "twelve"]
|
290
|
+
local.split(/[\._-]/).map { |s| /^\d+$/.match?(s) ? s.to_i : s }
|
291
|
+
end
|
292
|
+
|
293
|
+
sig do
|
294
|
+
params(
|
295
|
+
letter: T.nilable(String), number: T.nilable(String)
|
296
|
+
).returns(T.nilable(T::Array[T.any(String, Integer)]))
|
297
|
+
end
|
298
|
+
def parse_letter_version(letter = nil, number = nil)
|
299
|
+
return if letter.nil? && number.nil?
|
300
|
+
|
301
|
+
if letter
|
302
|
+
# Implicit 0 for cases where prerelease has no numeral
|
303
|
+
number ||= 0
|
304
|
+
|
305
|
+
# Normalize alternate spellings
|
306
|
+
if letter == "alpha"
|
307
|
+
letter = "a"
|
308
|
+
elsif letter == "beta"
|
309
|
+
letter = "b"
|
310
|
+
elsif %w(c pre preview).include? letter
|
311
|
+
letter = "rc"
|
312
|
+
elsif %w(rev r).include? letter
|
313
|
+
letter = "post"
|
314
|
+
end
|
315
|
+
|
316
|
+
return letter, number.to_i
|
317
|
+
end
|
318
|
+
|
319
|
+
# Number but no letter i.e. implicit post release syntax (e.g. 1.0-1)
|
320
|
+
letter = "post"
|
321
|
+
|
322
|
+
[letter, number.to_i]
|
323
|
+
end
|
324
|
+
|
325
|
+
sig { returns(Regexp) }
|
326
|
+
def anchored_version_pattern
|
327
|
+
if Dependabot::Experiments.enabled?(:python_new_version)
|
328
|
+
/\A\s*#{NEW_VERSION_PATTERN}\s*\z/o
|
329
|
+
else
|
330
|
+
ANCHORED_VERSION_PATTERN
|
331
|
+
end
|
332
|
+
end
|
333
|
+
|
72
334
|
def epoch_comparison(other)
|
73
335
|
epoch.to_i <=> other.epoch.to_i
|
74
336
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dependabot-python
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.281.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dependabot
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-10-
|
11
|
+
date: 2024-10-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dependabot-common
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.281.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: 0.281.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: debug
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -156,14 +156,14 @@ dependencies:
|
|
156
156
|
requirements:
|
157
157
|
- - "~>"
|
158
158
|
- !ruby/object:Gem::Version
|
159
|
-
version: 0.8.
|
159
|
+
version: 0.8.5
|
160
160
|
type: :development
|
161
161
|
prerelease: false
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
163
163
|
requirements:
|
164
164
|
- - "~>"
|
165
165
|
- !ruby/object:Gem::Version
|
166
|
-
version: 0.8.
|
166
|
+
version: 0.8.5
|
167
167
|
- !ruby/object:Gem::Dependency
|
168
168
|
name: simplecov
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
@@ -288,7 +288,7 @@ licenses:
|
|
288
288
|
- MIT
|
289
289
|
metadata:
|
290
290
|
bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
|
291
|
-
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.
|
291
|
+
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.281.0
|
292
292
|
post_install_message:
|
293
293
|
rdoc_options: []
|
294
294
|
require_paths:
|