dependabot-julia 0.357.0 → 0.358.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 +4 -4
- data/lib/dependabot/julia/requirement.rb +52 -41
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c442b3d384670e44fdceb57d184f86c67f0568580c773a9edad960cd664e0e18
|
|
4
|
+
data.tar.gz: 94bb9140bec5fa998ccc894c452a8a2a13e77450830a101ae3bc3a0e100e8b28
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 05b7acbb49fb4ed7f759de5c554d5a5daf4d005aaba74296a21ef6e8ede74577828ff6fe5a83aa129d78b58d0765ce175e0fa23fd77a742d1587418978524fe9
|
|
7
|
+
data.tar.gz: 86d1919b0c98ec0b083f876ca7db6d737e967c2e459b9a8e2353d8f640bf67f9b2b33ed90c260ea4013bfadf4bbc1feea97680359325816363a6b1d40638d50b
|
|
@@ -30,8 +30,14 @@ module Dependabot
|
|
|
30
30
|
|
|
31
31
|
sig { params(constraints: T::Array[String]).returns(T::Boolean) }
|
|
32
32
|
def self.compound_constraint?(constraints)
|
|
33
|
-
# Compound constraints (e.g., ">= 1.0, < 2.0")
|
|
34
|
-
|
|
33
|
+
# Compound constraints (e.g., ">= 1.0, < 2.0") are when explicit comparison operators
|
|
34
|
+
# (>=, <=, <, >, =) work together to define a single range.
|
|
35
|
+
# Separate constraints (e.g., "^1.10, 2" or "0.34, 0.35") use version specs
|
|
36
|
+
# (with or without ^/~) as OR conditions - any matching spec is acceptable.
|
|
37
|
+
# Only treat as compound if ALL constraints use explicit comparison operators.
|
|
38
|
+
return false if constraints.length <= 1
|
|
39
|
+
|
|
40
|
+
constraints.all? { |c| c.match?(/^[<>=]/) }
|
|
35
41
|
end
|
|
36
42
|
|
|
37
43
|
sig { params(constraints: T::Array[String]).returns(T::Array[Dependabot::Julia::Requirement]) }
|
|
@@ -74,51 +80,56 @@ module Dependabot
|
|
|
74
80
|
[constraint]
|
|
75
81
|
end
|
|
76
82
|
|
|
83
|
+
sig { params(version_string: String).returns([String, Integer, Integer, Integer, Integer]) }
|
|
84
|
+
private_class_method def self.parse_version_parts(version_string)
|
|
85
|
+
parts = version_string.split(".")
|
|
86
|
+
[
|
|
87
|
+
version_string,
|
|
88
|
+
parts.length,
|
|
89
|
+
T.must(parts[0]).to_i,
|
|
90
|
+
parts[1].to_i,
|
|
91
|
+
parts[2].to_i
|
|
92
|
+
]
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
sig { params(major: Integer, minor: Integer, patch: Integer, num_parts: Integer).returns(String) }
|
|
96
|
+
private_class_method def self.caret_upper_bound(major, minor, patch, num_parts)
|
|
97
|
+
# Julia caret semantics: upper bound determined by left-most non-zero digit
|
|
98
|
+
return "#{major + 1}.0.0" if major.positive?
|
|
99
|
+
return "0.#{minor + 1}.0" if minor.positive?
|
|
100
|
+
return "0.0.#{patch + 1}" if num_parts == 3
|
|
101
|
+
return "0.1.0" if num_parts == 2
|
|
102
|
+
|
|
103
|
+
"1.0.0"
|
|
104
|
+
end
|
|
105
|
+
|
|
77
106
|
sig { params(constraint: String).returns(T::Array[String]) }
|
|
78
107
|
private_class_method def self.normalize_caret_constraint(constraint)
|
|
79
|
-
version = T.must(constraint[1..-1])
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
else
|
|
96
|
-
# x.y.z versions where x > 0: bump major
|
|
97
|
-
[">= #{version}", "< #{major + 1}.0.0"]
|
|
98
|
-
end
|
|
108
|
+
version, num_parts, major, minor, patch = parse_version_parts(T.must(constraint[1..-1]))
|
|
109
|
+
|
|
110
|
+
# Julia caret semantics (from https://pkgdocs.julialang.org/v1/compatibility/):
|
|
111
|
+
# ^1.2.3 -> [1.2.3, 2.0.0), ^0.2.3 -> [0.2.3, 0.3.0), ^0.0.3 -> [0.0.3, 0.0.4)
|
|
112
|
+
# ^0.0 -> [0.0.0, 0.1.0), ^0 -> [0.0.0, 1.0.0)
|
|
113
|
+
[">= #{version}", "< #{caret_upper_bound(major, minor, patch, num_parts)}"]
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
sig { params(major: Integer, minor: Integer, patch: Integer, num_parts: Integer).returns(String) }
|
|
117
|
+
private_class_method def self.tilde_upper_bound(major, minor, patch, num_parts)
|
|
118
|
+
# Julia tilde semantics: ~1 equivalent to ^1, otherwise bump minor (except 0.0.x bumps patch)
|
|
119
|
+
return "#{major + 1}.0.0" if num_parts == 1
|
|
120
|
+
return "0.0.#{patch + 1}" if major.zero? && minor.zero? && num_parts == 3
|
|
121
|
+
return "0.1.0" if major.zero? && minor.zero?
|
|
122
|
+
|
|
123
|
+
"#{major}.#{minor + 1}.0"
|
|
99
124
|
end
|
|
100
125
|
|
|
101
126
|
sig { params(constraint: String).returns(T::Array[String]) }
|
|
102
127
|
private_class_method def self.normalize_tilde_constraint(constraint)
|
|
103
|
-
version = T.must(constraint[1..-1])
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
# Julia tilde semantics (similar to npm):
|
|
109
|
-
# - For 0.0.x: compatible within patch (same as caret)
|
|
110
|
-
# - For 0.x.y or x.y.z: compatible within minor (bump minor)
|
|
111
|
-
if major.zero? && minor.zero?
|
|
112
|
-
# 0.0.x versions: bump patch
|
|
113
|
-
patch = parts[2].to_i
|
|
114
|
-
[">= #{version}", "< 0.0.#{patch + 1}"]
|
|
115
|
-
elsif major.zero?
|
|
116
|
-
# 0.x.y versions: bump minor (same as caret for 0.x)
|
|
117
|
-
[">= #{version}", "< 0.#{minor + 1}.0"]
|
|
118
|
-
else
|
|
119
|
-
# x.y.z versions where x > 0: bump minor only
|
|
120
|
-
[">= #{version}", "< #{major}.#{minor + 1}.0"]
|
|
121
|
-
end
|
|
128
|
+
version, num_parts, major, minor, patch = parse_version_parts(T.must(constraint[1..-1]))
|
|
129
|
+
|
|
130
|
+
# Julia tilde semantics (from https://pkgdocs.julialang.org/v1/compatibility/):
|
|
131
|
+
# ~1.2.3 -> [1.2.3, 1.3.0), ~1 -> [1.0.0, 2.0.0), ~0.0.3 -> [0.0.3, 0.0.4)
|
|
132
|
+
[">= #{version}", "< #{tilde_upper_bound(major, minor, patch, num_parts)}"]
|
|
122
133
|
end
|
|
123
134
|
|
|
124
135
|
sig { params(constraint: String).returns(T::Array[String]) }
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: dependabot-julia
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.358.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Dependabot
|
|
@@ -15,14 +15,14 @@ dependencies:
|
|
|
15
15
|
requirements:
|
|
16
16
|
- - '='
|
|
17
17
|
- !ruby/object:Gem::Version
|
|
18
|
-
version: 0.
|
|
18
|
+
version: 0.358.0
|
|
19
19
|
type: :runtime
|
|
20
20
|
prerelease: false
|
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
22
22
|
requirements:
|
|
23
23
|
- - '='
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
|
-
version: 0.
|
|
25
|
+
version: 0.358.0
|
|
26
26
|
- !ruby/object:Gem::Dependency
|
|
27
27
|
name: debug
|
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -261,7 +261,7 @@ licenses:
|
|
|
261
261
|
- MIT
|
|
262
262
|
metadata:
|
|
263
263
|
bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
|
|
264
|
-
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.
|
|
264
|
+
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.358.0
|
|
265
265
|
rdoc_options: []
|
|
266
266
|
require_paths:
|
|
267
267
|
- lib
|