dependabot-julia 0.399.0 → 0.400.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: 6c3e654c12908a919461515b6c592e15e2382f106f203b0def25ed45bc68205b
4
- data.tar.gz: b9c55d333c085e4cd51fd74d88e33fd98c8d379ea41be890fcf83c561f4c06ba
3
+ metadata.gz: 22c71ce1df7cae71a73e4cf03663b35be32f1026a1f84f4615450ba449062261
4
+ data.tar.gz: 408a55df020bd8588d50a2cc0db837e524bf2a3dc3d59588ec3bf20aed071d5b
5
5
  SHA512:
6
- metadata.gz: 3a1cdb18bb53b82740729fd4ce2c8276457dd0ac796f38263844fc5ec6e20a36c84d9d2882f04d0834d006080136b5f5b457eed630ad9434625912a174362baf
7
- data.tar.gz: a74b876e844080eb47dad827cef47cef9c861e999e8afcc013da8d12206a6a8e2131fc5810af4e82260f38c179b053d3dae0b64c2badb8bfb3ba3af3c9950f19
6
+ metadata.gz: f714959e016ac030a54c39aa8d59e3302ad06419dc812e466a755a746f68e0f25a42e2762da0f8d92889b082c098bfff9946284e6584801561fc2eb56437ae4d
7
+ data.tar.gz: f5175b774a60457d5e84d8f68aefb54a985bc05f6a6859f1d9ded13aae32109442d72ae3f27998916062e96fc4bafd87d1d78b0735ad2e8c3129ce72dd4d651f
@@ -19,6 +19,12 @@ module Dependabot
19
19
  # comment ("[compat] # pins")
20
20
  COMPAT_HEADER_PATTERN = /^\s*\[compat\]\s*(?:#.*)?$/
21
21
 
22
+ # A compat entry part that admits only 0.0.0 ("<0.0.1", "< 0.0.1")
23
+ ZERO_VERSION_BOUND_PATTERN = /\A<\s*0\.0\.1\z/
24
+
25
+ STDLIB_COMPAT_PSA_URL =
26
+ "https://discourse.julialang.org/t/psa-compat-requirements-in-the-general-registry-are-changing/104958"
27
+
22
28
  sig { returns(T::Array[Regexp]) }
23
29
  def self.updated_files_regex
24
30
  [/(?:Julia)?Project\.toml$/i, /(?:Julia)?Manifest(?:-v[\d.]+)?\.toml$/i]
@@ -48,7 +54,9 @@ module Dependabot
48
54
 
49
55
  # Use DependabotHelper.jl for manifest updating
50
56
  # This works for both standard packages and workspace packages
51
- updated_files_with_julia_helper
57
+ updated_files = updated_files_with_julia_helper
58
+ add_zero_version_bound_notice
59
+ updated_files
52
60
  end
53
61
 
54
62
  sig { returns(T::Array[Dependabot::DependencyFile]) }
@@ -216,6 +224,41 @@ module Dependabot
216
224
 
217
225
  private
218
226
 
227
+ # A "<0.0.1" bound on a stdlib looks like a bug unless explained
228
+ sig { void }
229
+ def add_zero_version_bound_notice
230
+ names = dependencies.filter_map do |dependency|
231
+ next unless dependency.metadata.key?(:julia_stdlib_versions)
232
+ next if zero_version_bound?(dependency.previous_requirements)
233
+ next unless zero_version_bound?(dependency.requirements)
234
+
235
+ "`#{dependency.name}`"
236
+ end
237
+ return if names.empty?
238
+
239
+ subject = names.one? ? "#{names.first} is a standard library" : "#{names.join(', ')} are standard libraries"
240
+ @notices << Dependabot::Notice.new(
241
+ mode: Dependabot::Notice::NoticeMode::INFO,
242
+ type: "julia_stdlib_zero_version_bound",
243
+ package_manager_name: "Pkg",
244
+ title: "Why stdlib compat entries include `<0.0.1`",
245
+ description: "#{subject}. Before Julia 1.10, `Pkg.test()` gave standard libraries version 0.0.0, " \
246
+ "so while the `julia` compat entry admits those releases, a stdlib compat entry needs " \
247
+ "`<0.0.1` for tests to resolve. Raising the `julia` compat entry to `1.10` or later " \
248
+ "removes the need for it. See the [stdlib compat PSA](#{STDLIB_COMPAT_PSA_URL}).",
249
+ show_in_pr: true,
250
+ show_alert: false
251
+ )
252
+ end
253
+
254
+ sig { params(requirements: T.nilable(T::Array[T::Hash[Symbol, T.untyped]])).returns(T::Boolean) }
255
+ def zero_version_bound?(requirements)
256
+ (requirements || []).any? do |req|
257
+ requirement = T.cast(req[:requirement], T.nilable(String)).to_s
258
+ requirement.split(",").any? { |part| part.strip.match?(ZERO_VERSION_BOUND_PATTERN) }
259
+ end
260
+ end
261
+
219
262
  sig { returns(T::Hash[String, T::Hash[String, String]]) }
220
263
  def build_updates_hash
221
264
  @build_updates_hash ||= T.let(
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.399.0
4
+ version: 0.400.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.399.0
18
+ version: 0.400.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.399.0
25
+ version: 0.400.0
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: debug
28
28
  requirement: !ruby/object:Gem::Requirement
@@ -262,7 +262,7 @@ licenses:
262
262
  - MIT
263
263
  metadata:
264
264
  bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
265
- changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.399.0
265
+ changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.400.0
266
266
  rdoc_options: []
267
267
  require_paths:
268
268
  - lib