dependabot-swift 0.382.0 → 0.383.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: 0a04facb548d794c013bb4f05d67b1b13dd965e87cc06f7ae17cec09963f90a3
4
- data.tar.gz: fa0c11ca3bb1b86184f67a5c92432df42beaf443a27854dbfd03691d649d855d
3
+ metadata.gz: fd3b92ca6615165f561e6be3ec0d2699534b646c5e916e774a9a9e536a23c56c
4
+ data.tar.gz: 99a5a43bed40eab511e7b8948fd8972b9ba709829e3050d017fd16351823b3fe
5
5
  SHA512:
6
- metadata.gz: 0e4c70b470be46925531d54b6ae8d8d768f3046db6610084f5d74fbbaf45e453fbdbdd95428298bf24d80290a7244ab650640083a5b59744a0f80e69a7c23283
7
- data.tar.gz: 7182e4cccbe97b6a8a4b9c05bd583748eacbe813e96f417fdb7e1f8458a6ce83f8298a33bc4c7340e6e528688bdb213b6323d1c3cbdbe1db391071d20993c806
6
+ metadata.gz: bdc51dfd64d41dce709c7ce8e83ff2e100073af1b912b3fdb11fe1f3859a6a84c799896f2d42b644629ba51bd4859fb0213e1eff4c4cdeca6b94ddb84690684c
7
+ data.tar.gz: 602b5fd558036b1af40d093f7a250bca0d6daded595ee0a6dcd43eb1a8b40ad16e46f40e38ae9378a4533d374f26046aad93d279fa6c4666e4337773cb1db362
@@ -12,7 +12,7 @@ module Dependabot
12
12
 
13
13
  # TODO: Support pinning to specific revisions
14
14
  REGEXP = T.let(
15
- /(from.*|\.upToNextMajor.*|\.upToNextMinor.*|".*"\s*\.\.[\.<]\s*".*"\s*,?|exact.*|\.exact.*)/,
15
+ /(from.*|\.upToNextMajor.*|\.upToNextMinor.*|"[^"]*"\s*\.\.[\.<]\s*"[^"]*".*|exact.*|\.exact.*)/,
16
16
  Regexp
17
17
  )
18
18
 
@@ -88,23 +88,23 @@ module Dependabot
88
88
  sig { params(declaration: String).returns([String, String]) }
89
89
  def parse_declaration(declaration)
90
90
  if up_to_next_major?
91
- min = declaration.gsub(/\Afrom\s*:\s*"(\S+?)"\s*(?:,\s*)?\z/, '\1')
91
+ min = declaration.gsub(/\Afrom\s*:\s*"(\S+?)"\s*(?:,.*)?\z/, '\1')
92
92
  max = bump_major(min)
93
93
  elsif up_to_next_major_deprecated?
94
- min = declaration.gsub(/\A\.upToNextMajor\s*\(\s*from\s*:\s*"(\S+?)"\s*(?:,\s*)?\)\s*(?:,\s*)?\z/, '\1')
94
+ min = declaration.gsub(/\A\.upToNextMajor\s*\(\s*from\s*:\s*"(\S+?)"\s*(?:,\s*)?\)\s*(?:,.*)?\z/, '\1')
95
95
  max = bump_major(min)
96
96
  elsif up_to_next_minor_deprecated?
97
- min = declaration.gsub(/\A\.upToNextMinor\s*\(\s*from\s*:\s*"(\S+?)"\s*(?:,\s*)?\)\s*(?:,\s*)?\z/, '\1')
97
+ min = declaration.gsub(/\A\.upToNextMinor\s*\(\s*from\s*:\s*"(\S+?)"\s*(?:,\s*)?\)\s*(?:,.*)?\z/, '\1')
98
98
  max = bump_minor(min)
99
99
  elsif closed_range?
100
100
  min, max = parse_range("...")
101
101
  elsif range?
102
102
  min, max = parse_range("..<")
103
103
  elsif exact_version?
104
- min = declaration.gsub(/\Aexact\s*:\s*"(\S+?)"\s*(?:,\s*)?\z/, '\1')
104
+ min = declaration.gsub(/\Aexact\s*:\s*"(\S+?)"\s*(?:,.*)?\z/, '\1')
105
105
  max = min
106
106
  elsif exact_version_deprecated?
107
- min = declaration.gsub(/\A\.exact\s*\(\s*"(\S+?)"\s*(?:,\s*)?\)\s*(?:,\s*)?\z/, '\1')
107
+ min = declaration.gsub(/\A\.exact\s*\(\s*"(\S+?)"\s*(?:,\s*)?\)\s*(?:,.*)?\z/, '\1')
108
108
  max = min
109
109
  else
110
110
  raise "Unsupported constraint: #{declaration}"
@@ -115,7 +115,10 @@ module Dependabot
115
115
 
116
116
  sig { params(separator: String).returns(T::Array[String]) }
117
117
  def parse_range(separator)
118
- declaration.delete_suffix(",").split(separator).map { |str| unquote(str.strip) }
118
+ declaration
119
+ .gsub(/("[^"]*"\s*\.\.[\.<]\s*"[^"]*").*/, '\1')
120
+ .split(separator)
121
+ .map { |str| unquote(str.strip) }
119
122
  end
120
123
 
121
124
  sig { returns(T::Boolean) }
@@ -16,12 +16,12 @@ module Dependabot
16
16
  # always contains a single element.
17
17
  sig { override.params(requirement_string: T.nilable(String)).returns(T::Array[Requirement]) }
18
18
  def self.requirements_array(requirement_string)
19
- [new(requirement_string)]
19
+ [new(T.must(requirement_string))]
20
20
  end
21
21
 
22
22
  # Patches Gem::Requirement to make it accept requirement strings like
23
23
  # "~> 4.2.5, >= 4.2.5.1" without first needing to split them.
24
- sig { params(requirements: T.untyped).void }
24
+ sig { params(requirements: T.any(String, T::Array[String])).void }
25
25
  def initialize(*requirements)
26
26
  requirements = requirements.flatten.flat_map do |req_string|
27
27
  req_string.split(",").map(&:strip)
@@ -1,6 +1,7 @@
1
1
  # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
+ require "dependabot/dependency_requirement"
4
5
  require "dependabot/update_checkers/base"
5
6
  require "dependabot/swift/native_requirement"
6
7
  require "dependabot/swift/version"
@@ -13,14 +14,17 @@ module Dependabot
13
14
 
14
15
  sig do
15
16
  params(
16
- requirements: T::Array[T::Hash[Symbol, T.untyped]],
17
+ requirements: T::Array[Dependabot::DependencyRequirement],
17
18
  target_version: T.nilable(T.any(String, Gem::Version)),
18
19
  xcode_mode: T::Boolean,
19
20
  target_commit_sha: T.nilable(String)
20
21
  ).void
21
22
  end
22
23
  def initialize(requirements:, target_version:, xcode_mode: false, target_commit_sha: nil)
23
- @requirements = requirements
24
+ @requirements = T.let(
25
+ requirements.map { |req| Dependabot::DependencyRequirement.create(req) },
26
+ T::Array[Dependabot::DependencyRequirement]
27
+ )
24
28
  @xcode_mode = xcode_mode
25
29
  @target_commit_sha = T.let(target_commit_sha, T.nilable(String))
26
30
 
@@ -29,18 +33,19 @@ module Dependabot
29
33
  @target_version = T.let(Version.new(target_version), Dependabot::Version)
30
34
  end
31
35
 
32
- sig { returns(T::Array[T::Hash[Symbol, T.untyped]]) }
36
+ sig { returns(T::Array[Dependabot::DependencyRequirement]) }
33
37
  def updated_requirements
34
38
  return updated_xcode_requirements if xcode_mode
35
39
 
36
- NativeRequirement.map_requirements(requirements) do |requirement|
40
+ updated = NativeRequirement.map_requirements(requirements) do |requirement|
37
41
  T.must(requirement.update_if_needed(T.must(target_version)))
38
42
  end
43
+ updated.map { |req| Dependabot::DependencyRequirement.create(req) }
39
44
  end
40
45
 
41
46
  private
42
47
 
43
- sig { returns(T::Array[T.untyped]) }
48
+ sig { returns(T::Array[Dependabot::DependencyRequirement]) }
44
49
  attr_reader :requirements
45
50
 
46
51
  sig { returns(T.nilable(Gem::Version)) }
@@ -53,7 +58,7 @@ module Dependabot
53
58
  attr_reader :target_commit_sha
54
59
 
55
60
  # For Xcode projects, we update the version in the requirement while preserving the kind.
56
- sig { returns(T::Array[T::Hash[Symbol, T.untyped]]) }
61
+ sig { returns(T::Array[Dependabot::DependencyRequirement]) }
57
62
  def updated_xcode_requirements
58
63
  requirements.map do |req|
59
64
  next req unless target_version
@@ -63,7 +68,7 @@ module Dependabot
63
68
  end
64
69
  end
65
70
 
66
- sig { params(requirement: T::Hash[Symbol, T.untyped]).returns(T::Hash[Symbol, T.untyped]) }
71
+ sig { params(requirement: Dependabot::DependencyRequirement).returns(Dependabot::DependencyRequirement) }
67
72
  def update_xcode_requirement(requirement)
68
73
  metadata = requirement[:metadata] || {}
69
74
  requirement_string = metadata[:requirement_string]
@@ -75,12 +80,14 @@ module Dependabot
75
80
  # Update source ref to target version
76
81
  updated_source = update_source_ref(requirement[:source])
77
82
 
78
- requirement.merge(
79
- requirement: new_requirement,
80
- source: updated_source,
81
- metadata: metadata.merge(
82
- requirement_string: new_requirement_string
83
- ).compact
83
+ Dependabot::DependencyRequirement.create(
84
+ requirement.merge(
85
+ requirement: new_requirement,
86
+ source: updated_source,
87
+ metadata: metadata.merge(
88
+ requirement_string: new_requirement_string
89
+ ).compact
90
+ )
84
91
  )
85
92
  end
86
93
 
@@ -2,6 +2,7 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "sorbet-runtime"
5
+ require "dependabot/dependency_requirement"
5
6
  require "dependabot/update_checkers"
6
7
  require "dependabot/update_checkers/base"
7
8
  require "dependabot/update_checkers/version_filters"
@@ -52,23 +53,21 @@ module Dependabot
52
53
 
53
54
  sig { override.returns(T::Array[Dependabot::DependencyRequirement]) }
54
55
  def updated_requirements
55
- return wrap_requirements(updated_xcode_requirements) if xcode_spm_mode?
56
+ return updated_xcode_requirements if xcode_spm_mode?
56
57
 
57
58
  # If no target version is available, return old requirements unchanged
58
59
  target = preferred_resolvable_version
59
- return wrap_requirements(old_requirements) unless target
60
+ return old_requirements unless target
60
61
 
61
- wrap_requirements(
62
- RequirementsUpdater.new(
63
- requirements: old_requirements,
64
- target_version: target
65
- ).updated_requirements
66
- )
62
+ RequirementsUpdater.new(
63
+ requirements: old_requirements,
64
+ target_version: target
65
+ ).updated_requirements
67
66
  end
68
67
 
69
68
  private
70
69
 
71
- sig { returns(T::Array[T::Hash[Symbol, T.untyped]]) }
70
+ sig { returns(T::Array[Dependabot::DependencyRequirement]) }
72
71
  def updated_xcode_requirements
73
72
  # If no target version is available (e.g., revision-only or branch-pinned
74
73
  # dependency), return old requirements unchanged
@@ -94,7 +93,7 @@ module Dependabot
94
93
  ).updated_requirements
95
94
  end
96
95
 
97
- sig { returns(T::Array[T::Hash[Symbol, T.untyped]]) }
96
+ sig { returns(T::Array[Dependabot::DependencyRequirement]) }
98
97
  def old_requirements
99
98
  dependency.requirements
100
99
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dependabot-swift
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.382.0
4
+ version: 0.383.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.382.0
18
+ version: 0.383.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.382.0
25
+ version: 0.383.0
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: debug
28
28
  requirement: !ruby/object:Gem::Requirement
@@ -274,7 +274,7 @@ licenses:
274
274
  - MIT
275
275
  metadata:
276
276
  bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
277
- changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.382.0
277
+ changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.383.0
278
278
  rdoc_options: []
279
279
  require_paths:
280
280
  - lib