dependabot-elm 0.299.1 → 0.300.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: 44e5852715cc8edb9f556f249cf57c5b49a357d21d44d5d5843adfe61cf68ed8
|
4
|
+
data.tar.gz: c64d802a4334a7a9274dcf1864fcd14b559f4cdd7bc400642c792f292b4df4ca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ac343cd2fd2d38e6a1a4c59317ad079c7cb47f6654bffcd1a112d2cac45c627a5bb9bff53b79390d53e621a135a6a0ceb6da935f9efc24323a368067b636d2f9
|
7
|
+
data.tar.gz: 0f8252922e02c171289e5aa1a61a03d0039a4d0c2395750e97b1cd75afcb53031e31c6a1c5a7715c6b54dac16b13200396031116bd0d96cc7fcfa631bde7673f
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# typed:
|
1
|
+
# typed: strong
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
4
|
require "dependabot/elm/version"
|
@@ -8,9 +8,12 @@ module Dependabot
|
|
8
8
|
module Elm
|
9
9
|
class UpdateChecker
|
10
10
|
class CliParser
|
11
|
+
extend T::Sig
|
12
|
+
|
11
13
|
INSTALL_DEPENDENCY_REGEX = %r{([^\s]+\/[^\s]+)\s+(\d+\.\d+\.\d+)}
|
12
14
|
UPGRADE_DEPENDENCY_REGEX = %r{([^\s]+\/[^\s]+) \(\d+\.\d+\.\d+ => (\d+\.\d+\.\d+)\)}
|
13
15
|
|
16
|
+
sig { params(text: String).returns(T::Hash[String, Elm::Version]) }
|
14
17
|
def self.decode_install_preview(text)
|
15
18
|
installs = {}
|
16
19
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# typed:
|
1
|
+
# typed: strict
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
4
|
require "open3"
|
@@ -28,6 +28,9 @@ module Dependabot
|
|
28
28
|
def initialize(dependency:, dependency_files:)
|
29
29
|
@dependency = dependency
|
30
30
|
@dependency_files = dependency_files
|
31
|
+
|
32
|
+
@install_metadata = T.let(nil, T.nilable(T::Hash[String, Dependabot::Elm::Version]))
|
33
|
+
@original_dependency_details ||= T.let(nil, T.nilable(T::Array[Dependabot::Dependency]))
|
31
34
|
end
|
32
35
|
|
33
36
|
sig { params(unlock_requirement: Symbol).returns(T.nilable(Dependabot::Elm::Version)) }
|
@@ -113,22 +116,26 @@ module Dependabot
|
|
113
116
|
|
114
117
|
sig { returns(T::Hash[String, Dependabot::Elm::Version]) }
|
115
118
|
def install_metadata
|
116
|
-
@install_metadata ||=
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
119
|
+
@install_metadata ||= parse_install_metadata
|
120
|
+
end
|
121
|
+
|
122
|
+
sig { returns(T.any(T::Hash[String, Dependabot::Elm::Version], T.noreturn)) }
|
123
|
+
def parse_install_metadata
|
124
|
+
SharedHelpers.in_a_temporary_directory do
|
125
|
+
write_temporary_dependency_files
|
126
|
+
|
127
|
+
# Elm package install outputs a preview of the actions to be
|
128
|
+
# performed. We can use this preview to calculate whether it
|
129
|
+
# would do anything funny
|
130
|
+
dependency_name = Shellwords.escape(dependency.name)
|
131
|
+
command = "yes n | elm19 install #{dependency_name}"
|
132
|
+
response = run_shell_command(command)
|
133
|
+
|
134
|
+
CliParser.decode_install_preview(response)
|
135
|
+
rescue SharedHelpers::HelperSubprocessFailed => e
|
136
|
+
# 5) We bump our dep but elm blows up
|
137
|
+
handle_elm_errors(e)
|
138
|
+
end
|
132
139
|
end
|
133
140
|
|
134
141
|
sig { params(command: String).returns(::String) }
|
@@ -151,7 +158,7 @@ module Dependabot
|
|
151
158
|
)
|
152
159
|
end
|
153
160
|
|
154
|
-
sig { params(error: Dependabot::DependabotError).
|
161
|
+
sig { params(error: Dependabot::DependabotError).returns(T.noreturn) }
|
155
162
|
def handle_elm_errors(error)
|
156
163
|
if error.message.include?("OLD DEPENDENCIES") ||
|
157
164
|
error.message.include?("BAD JSON")
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# typed:
|
1
|
+
# typed: strict
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
4
|
require "excon"
|
@@ -10,15 +10,19 @@ require "dependabot/errors"
|
|
10
10
|
module Dependabot
|
11
11
|
module Elm
|
12
12
|
class UpdateChecker < Dependabot::UpdateCheckers::Base
|
13
|
+
extend T::Sig
|
14
|
+
|
13
15
|
require_relative "update_checker/requirements_updater"
|
14
16
|
require_relative "update_checker/elm_19_version_resolver"
|
15
17
|
|
18
|
+
sig { override.returns(T.nilable(Dependabot::Version)) }
|
16
19
|
def latest_version
|
17
|
-
@latest_version ||= candidate_versions.max
|
20
|
+
@latest_version ||= T.let(candidate_versions.max, T.nilable(Dependabot::Version))
|
18
21
|
end
|
19
22
|
|
20
23
|
# Overwrite the base class to allow multi-dependency update PRs for
|
21
24
|
# dependencies for which we don't have a version.
|
25
|
+
sig { override.params(requirements_to_unlock: T.nilable(Symbol)).returns(T::Boolean) }
|
22
26
|
def can_update?(requirements_to_unlock:)
|
23
27
|
if dependency.appears_in_lockfile?
|
24
28
|
version_can_update?(requirements_to_unlock: requirements_to_unlock)
|
@@ -28,15 +32,20 @@ module Dependabot
|
|
28
32
|
requirements_can_update?
|
29
33
|
elsif requirements_to_unlock == :all
|
30
34
|
updated_dependencies_after_full_unlock.any?
|
35
|
+
else
|
36
|
+
false
|
31
37
|
end
|
32
38
|
end
|
33
39
|
|
40
|
+
sig { override.returns(T.nilable(Dependabot::Version)) }
|
34
41
|
def latest_resolvable_version
|
35
|
-
@latest_resolvable_version ||=
|
42
|
+
@latest_resolvable_version ||= T.let(
|
36
43
|
version_resolver
|
37
|
-
.latest_resolvable_version(unlock_requirement: :own)
|
44
|
+
.latest_resolvable_version(unlock_requirement: :own), T.nilable(Dependabot::Version)
|
45
|
+
)
|
38
46
|
end
|
39
47
|
|
48
|
+
sig { override.returns(T.nilable(Dependabot::Version)) }
|
40
49
|
def latest_resolvable_version_with_no_unlock
|
41
50
|
# Irrelevant, since Elm has a single dependency file (well, there's
|
42
51
|
# also `exact-dependencies.json`, but it's not recommended that that
|
@@ -44,6 +53,7 @@ module Dependabot
|
|
44
53
|
nil
|
45
54
|
end
|
46
55
|
|
56
|
+
sig { override.returns(T::Array[T::Hash[Symbol, T.nilable(String)]]) }
|
47
57
|
def updated_requirements
|
48
58
|
RequirementsUpdater.new(
|
49
59
|
requirements: dependency.requirements,
|
@@ -53,8 +63,9 @@ module Dependabot
|
|
53
63
|
|
54
64
|
private
|
55
65
|
|
66
|
+
sig { returns(Elm19VersionResolver) }
|
56
67
|
def version_resolver
|
57
|
-
@version_resolver ||=
|
68
|
+
@version_resolver ||= T.let(
|
58
69
|
begin
|
59
70
|
unless dependency.requirements.any? { |r| r.fetch(:file) == MANIFEST_FILE }
|
60
71
|
raise Dependabot::DependencyFileNotResolvable, "No #{MANIFEST_FILE} found"
|
@@ -64,18 +75,22 @@ module Dependabot
|
|
64
75
|
dependency: dependency,
|
65
76
|
dependency_files: dependency_files
|
66
77
|
)
|
67
|
-
end
|
78
|
+
end, T.nilable(Elm19VersionResolver)
|
79
|
+
)
|
68
80
|
end
|
69
81
|
|
82
|
+
sig { override.returns(T::Array[Dependabot::Dependency]) }
|
70
83
|
def updated_dependencies_after_full_unlock
|
71
84
|
version_resolver.updated_dependencies_after_full_unlock
|
72
85
|
end
|
73
86
|
|
87
|
+
sig { override.returns(T::Boolean) }
|
74
88
|
def latest_version_resolvable_with_full_unlock?
|
75
89
|
latest_version == version_resolver
|
76
90
|
.latest_resolvable_version(unlock_requirement: :all)
|
77
91
|
end
|
78
92
|
|
93
|
+
sig { returns(T::Array[Dependabot::Version]) }
|
79
94
|
def candidate_versions
|
80
95
|
filtered = all_versions
|
81
96
|
.reject { |v| ignore_requirements.any? { |r| r.satisfied_by?(v) } }
|
@@ -87,6 +102,7 @@ module Dependabot
|
|
87
102
|
filtered
|
88
103
|
end
|
89
104
|
|
105
|
+
sig { params(versions_array: T::Array[Dependabot::Version]).returns(T::Array[Dependabot::Version]) }
|
90
106
|
def filter_lower_versions(versions_array)
|
91
107
|
return versions_array unless current_version
|
92
108
|
|
@@ -94,10 +110,12 @@ module Dependabot
|
|
94
110
|
.select { |version| version > current_version }
|
95
111
|
end
|
96
112
|
|
113
|
+
sig { returns(T::Array[Dependabot::Version]) }
|
97
114
|
def all_versions
|
98
|
-
@all_versions ||= fetch_all_versions
|
115
|
+
@all_versions ||= T.let(fetch_all_versions, T.nilable(T::Array[Dependabot::Version]))
|
99
116
|
end
|
100
117
|
|
118
|
+
sig { returns(T::Array[Dependabot::Version]) }
|
101
119
|
def fetch_all_versions
|
102
120
|
response = Dependabot::RegistryClient.get(
|
103
121
|
url: "https://package.elm-lang.org/packages/#{dependency.name}/releases.json"
|
@@ -113,6 +131,7 @@ module Dependabot
|
|
113
131
|
|
114
132
|
# Overwrite the base class's requirements_up_to_date? method to instead
|
115
133
|
# check whether the latest version is allowed
|
134
|
+
sig { override.returns(T::Boolean) }
|
116
135
|
def requirements_up_to_date?
|
117
136
|
return false unless latest_version
|
118
137
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dependabot-elm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.300.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dependabot
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-
|
11
|
+
date: 2025-03-06 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.300.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.300.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: debug
|
29
29
|
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.300.0
|
265
265
|
post_install_message:
|
266
266
|
rdoc_options: []
|
267
267
|
require_paths:
|