danger-spm_version_updates 0.0.2 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 067f3b06cb1a331d6f12dca4e9f8be0b02f8a4888547aa6b235b8f1b87f26197
4
- data.tar.gz: 07ab0f2b6b729fe4e2bb7b3956ed67ee63ba2c59f4db9f435b3e0237a47fdeb0
3
+ metadata.gz: ef2e5e335b687cb26aefd6de7ba0163df2d1241d544e88d59acf3a7e26ba8bb5
4
+ data.tar.gz: 9ea013ec7d7cd8abed37a5db7f58060efc3af6045c21422b499e960396a427a2
5
5
  SHA512:
6
- metadata.gz: 164e7eb99a8fc9f1ba227be7683236995047adb066c4e21da3c70827917d800ab84d6508001a0d06e995610e12760e73930626638cce019dfd19a2ea92ed676a
7
- data.tar.gz: 043e6a93d677bdc70e94563594f6703feeca2f9790823f1a63327100e99ca20c19dc5e111a0d7545658bfc626086d61cf8c66c446f58d4bd950ef9b1c5e7b963
6
+ metadata.gz: 32c0dced84c03b383c7c2ba05c282789d6bff6ad9dbe270b42fabd0852ea22d023dc3837345825644866a0f139af71aa07fee73c8af504afe3d6e375ffbdbf76
7
+ data.tar.gz: 92dce851350eb57e2b7ef319945ed038e9568e89a43fd3d58271af6ed75e7fc4f2279765daade7db3840d4b313cdae4f4867a9e8ca82f15ac78e07c628fc8d30
data/Gemfile.lock CHANGED
@@ -1,9 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- danger-spm_version_updates (0.0.1)
4
+ danger-spm_version_updates (0.0.4)
5
5
  danger-plugin-api (~> 1.0)
6
6
  semantic (~> 1.6)
7
+ xcodeproj (~> 1.23)
7
8
 
8
9
  GEM
9
10
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -23,11 +23,10 @@ gem "danger-spm_version_updates"
23
23
 
24
24
  ## Usage
25
25
 
26
- Just add this to your Dangerfile! Note that it is required to configure the path to your Xcode project.
26
+ Just add this to your Dangerfile! Note that it is required to pass the path to your Xcode project.
27
27
 
28
28
  ```ruby
29
- spm_version_updates.xcodeproj_path = ".../Example.xcodeproj"
30
- spm_version_updates.check_for_updates
29
+ spm_version_updates.check_for_updates("Example.xcodeproj")
31
30
  ```
32
31
 
33
32
  You can also configure custom behaviors:
@@ -13,6 +13,7 @@ Gem::Specification.new do |spec|
13
13
  spec.summary = "A Danger plugin to detect if there are any updates to your Swift Package Manager dependencies."
14
14
  spec.homepage = "https://github.com/hbmartin/danger-spm_version_updates"
15
15
  spec.license = "MIT"
16
+ spec.required_ruby_version = ">= 2.7"
16
17
 
17
18
  spec.files = `git ls-files`.split($/)
18
19
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
@@ -21,6 +22,7 @@ Gem::Specification.new do |spec|
21
22
 
22
23
  spec.add_runtime_dependency("danger-plugin-api", "~> 1.0")
23
24
  spec.add_runtime_dependency("semantic", "~> 1.6")
25
+ spec.add_runtime_dependency("xcodeproj", "~> 1.23")
24
26
 
25
27
  # General ruby development
26
28
  spec.add_development_dependency("bundler", "~> 2.0")
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SpmVersionUpdates
4
- VERSION = "0.0.2"
4
+ VERSION = "0.0.4"
5
5
  end
@@ -4,46 +4,50 @@ require "semantic"
4
4
  require "xcodeproj"
5
5
 
6
6
  module Danger
7
+ # A plugin for checking if there are versions upgrades available for SPM packages
8
+ #
7
9
  # @example Ensure people are well warned about merging on Mondays
8
10
  #
9
- # my_plugin.warn_on_mondays
11
+ # spm_version_updates.check_for_updates("MyApp.xcodeproj")
10
12
  #
11
13
  # @see Harold Martin/danger-spm_version_updates
12
14
  # @tags swift, spm, swift package manager, xcode, xcodeproj, version, updates
13
15
  #
14
16
  class DangerSpmVersionUpdates < Plugin
15
- # The path to the xcodeproj file
16
- # @return [String]
17
- attr_accessor :xcodeproj_path
18
-
19
17
  # Whether to check when dependencies are exact versions or commits, default false
20
18
  # @return [Boolean]
21
19
  attr_accessor :check_when_exact
22
20
 
23
- # Whether to ignore version above the maximum version range, default true
21
+ # Whether to ignore versions above the maximum version range, default true
24
22
  # @return [Boolean]
25
23
  attr_accessor :quiet_above_maximum
26
24
 
25
+ # Whether to report pre-release versions, default false
26
+ # @return [Boolean]
27
+ attr_accessor :report_pre_releases
28
+
27
29
  # A list of repositories to ignore entirely, must exactly match the URL as configured in the Xcode project
28
30
  # @return [Array<String>]
29
31
  attr_accessor :ignore_repos
30
32
 
31
33
  # A method that you can call from your Dangerfile
32
- # @return [Array<String>]
33
- def check_for_updates
34
+ # @param [String] xcodeproj_path
35
+ # The path to your Xcode project
36
+ # @return [void]
37
+ def check_for_updates(xcodeproj_path)
34
38
  raise(XcodeprojPathMustBeSet) if xcodeproj_path.nil?
35
39
 
36
40
  project = Xcodeproj::Project.open(xcodeproj_path)
37
41
  remote_packages = filter_remote_packages(project)
38
42
 
39
- resolved_path = find_packages_resolved
43
+ resolved_path = find_packages_resolved(xcodeproj_path)
40
44
  raise(CouldNotFindResolvedFile) unless File.exist?(resolved_path)
41
45
 
42
46
  resolved_versions = JSON.load_file!(resolved_path)["pins"]
43
47
  .to_h { |pin| [pin["location"], pin["state"]["version"] || pin["state"]["revision"]] }
44
48
 
45
49
  remote_packages.each { |repository_url, requirement|
46
- next if ignore_repos != nil && ignore_repos.include?(repository_url)
50
+ next if ignore_repos&.include?(repository_url)
47
51
 
48
52
  name = repo_name(repository_url)
49
53
  resolved_version = resolved_versions[repository_url]
@@ -61,11 +65,14 @@ module Danger
61
65
  next if available_versions.first.to_s == resolved_version
62
66
 
63
67
  if kind == "exactVersion" && @check_when_exact
68
+ newestVersion = available_versions.find { |version|
69
+ report_pre_releases ? true : version.pre.nil?
70
+ }
64
71
  warn(
65
72
  <<-TEXT
66
- Newer version of #{name}: #{available_versions.first} (but this package is set to exact version #{resolved_version})
73
+ Newer version of #{name}: #{newestVersion} (but this package is set to exact version #{resolved_version})
67
74
  TEXT
68
- )
75
+ ) unless newestVersion.to_s == resolved_version
69
76
  elsif kind == "upToNextMajorVersion"
70
77
  warn_for_new_versions(:major, available_versions, name, resolved_version)
71
78
  elsif kind == "upToNextMinorVersion"
@@ -76,6 +83,8 @@ Newer version of #{name}: #{available_versions.first} (but this package is set t
76
83
  }
77
84
  end
78
85
 
86
+ # Extract a readable name for the repo given the url, generally org/repo
87
+ # @return [String]
79
88
  def repo_name(repo_url)
80
89
  match = repo_url.match(%r{([\w-]+/[\w-]+)(.git)?$})
81
90
 
@@ -86,6 +95,8 @@ Newer version of #{name}: #{available_versions.first} (but this package is set t
86
95
  end
87
96
  end
88
97
 
98
+ # Find the configured SPM dependencies in the xcodeproj
99
+ # @return [Hash<String, Hash>]
89
100
  def filter_remote_packages(project)
90
101
  project.objects.select { |obj|
91
102
  obj.kind_of?(Xcodeproj::Project::Object::XCRemoteSwiftPackageReference) &&
@@ -94,7 +105,9 @@ Newer version of #{name}: #{available_versions.first} (but this package is set t
94
105
  .to_h { |package| [package.repositoryURL, package.requirement] }
95
106
  end
96
107
 
97
- def find_packages_resolved
108
+ # Find the Packages.resolved file
109
+ # @return [String]
110
+ def find_packages_resolved(xcodeproj_path)
98
111
  if Dir.exist?(xcodeproj_path.sub("xcodeproj", "xcworkspace"))
99
112
  File.join(xcodeproj_path.sub("xcodeproj", "xcworkspace"), "xcshareddata", "swiftpm", "Package.resolved")
100
113
  else
@@ -110,7 +123,7 @@ Newer version of #{name}: #{available_versions.first} (but this package is set t
110
123
  warn("Newer version of #{name}: #{available_versions.first}")
111
124
  else
112
125
  newest_meeting_reqs = available_versions.find { |version|
113
- version < max_version
126
+ version < max_version && report_pre_releases ? true : version.pre.nil?
114
127
  }
115
128
  warn("Newer version of #{name}: #{newest_meeting_reqs} ") unless newest_meeting_reqs.to_s == resolved_version
116
129
  warn(
@@ -127,7 +140,9 @@ Newest version of #{name}: #{available_versions.first} (but this package is conf
127
140
  warn("Newer version of #{name}: #{available_versions.first}")
128
141
  else
129
142
  newest_meeting_reqs = available_versions.find { |version|
130
- version.send(major_or_minor) == resolved_version.send(major_or_minor)
143
+ puts version
144
+ puts version.pre.nil?
145
+ version.send(major_or_minor) == resolved_version.send(major_or_minor) && report_pre_releases ? true : version.pre.nil?
131
146
  }
132
147
  warn("Newer version of #{name}: #{newest_meeting_reqs}") unless newest_meeting_reqs == resolved_version
133
148
  warn(
@@ -22,39 +22,62 @@ module Danger
22
22
  allow(@my_plugin.github).to receive(:pr_json).and_return(json)
23
23
  end
24
24
 
25
- it "raises error if xcodeproj_path is not set" do
26
- expect { @my_plugin.check_for_updates }
27
- .to raise_error(Danger::XcodeprojPathMustBeSet)
28
- end
29
-
30
25
  it "Reports none without exact version matching" do
31
- monday_date = Date.parse("2016-07-11")
32
- allow(Date).to receive(:today).and_return monday_date
26
+ allow(@my_plugin).to receive(:git_versions).and_return false
33
27
 
34
- @my_plugin.xcodeproj_path = "#{File.dirname(__FILE__)}/support/fixtures/Example.xcodeproj"
35
- @my_plugin.check_for_updates
28
+ @my_plugin.check_for_updates("#{File.dirname(__FILE__)}/support/fixtures/Example.xcodeproj")
36
29
 
37
30
  expect(@dangerfile.status_report[:warnings]).to eq([])
38
31
  end
39
32
 
40
33
  it "Reports some with exact version matching" do
41
34
  # TODO: mock git calls
42
- # allow(@my_plugin).to receive(:git_versions).and_return false
35
+ allow(@my_plugin).to receive(:git_versions).and_return false
43
36
 
44
- @my_plugin.xcodeproj_path = "#{File.dirname(__FILE__)}/support/fixtures/Example.xcodeproj"
45
37
  @my_plugin.check_when_exact = true
46
- @my_plugin.check_for_updates
38
+ @my_plugin.check_for_updates("#{File.dirname(__FILE__)}/support/fixtures/Example.xcodeproj")
47
39
 
48
40
  expect(@dangerfile.status_report[:warnings]).to eq(
49
41
  [
50
42
  "Newer version of pointfreeco/swift-snapshot-testing: 1.14.2 (but this package is set to exact version 1.13.0)\n",
51
43
  "Newer version of kean/Nuke: 12.2.0-beta.2 (but this package is set to exact version 12.1.6)\n",
52
44
  "Newer version of pointfreeco/swiftui-navigation: 1.0.3 (but this package is set to exact version 1.0.2)\n",
53
- "Newer version of getsentry/sentry-cocoa: 8.14.2 (but this package is set to exact version 8.12.0)\n",
45
+ "Newer version of getsentry/sentry-cocoa: 8.15.0 (but this package is set to exact version 8.12.0)\n",
54
46
  "Newer version of firebase/firebase-ios-sdk: 10.17.0 (but this package is set to exact version 10.15.0)\n",
55
47
  ]
56
48
  )
57
49
  end
50
+
51
+ it "Does not report pre-release versions by default" do
52
+ allow(@my_plugin).to receive(:git_versions).and_return [
53
+ Semantic::Version.new("12.0.0"),
54
+ Semantic::Version.new("12.0.0-beta.1"),
55
+ Semantic::Version.new("12.0.0-beta.2"),
56
+ Semantic::Version.new("12.0.0-beta.3"),
57
+ Semantic::Version.new("12.0.0-beta.4"),
58
+ Semantic::Version.new("12.0.0-beta.5"),
59
+ Semantic::Version.new("12.0.0-rc.1"),
60
+ Semantic::Version.new("12.1.0"),
61
+ Semantic::Version.new("12.1.1"),
62
+ Semantic::Version.new("12.1.2"),
63
+ Semantic::Version.new("12.1.3"),
64
+ Semantic::Version.new("12.1.4"),
65
+ Semantic::Version.new("12.1.5"),
66
+ Semantic::Version.new("12.1.6"),
67
+ Semantic::Version.new("12.2.0-beta.1"),
68
+ Semantic::Version.new("12.2.0-beta.2"),
69
+ ]
70
+ .sort
71
+ .reverse
72
+ @my_plugin.check_when_exact = true
73
+ @my_plugin.check_for_updates("#{File.dirname(__FILE__)}/support/fixtures/HasPreRelease.xcodeproj")
74
+
75
+ expect(@dangerfile.status_report[:warnings]).to eq(
76
+ [
77
+ "Newer version of kean/Nuke: 12.2.0-beta.2 (but this package is set to exact version 12.1.6)\n",
78
+ ]
79
+ )
80
+ end
58
81
  end
59
82
  end
60
83
  end
@@ -0,0 +1,80 @@
1
+ // !$*UTF8*$!
2
+ {
3
+ archiveVersion = 1;
4
+ classes = {
5
+ };
6
+ objectVersion = 54;
7
+ objects = {
8
+ /* Begin PBXGroup section */
9
+ F1465EF423AA94BF0055F7C3 = {
10
+ isa = PBXGroup;
11
+ children = (
12
+ F1465EFF23AA94BF0055F7C3 /* Demo */,
13
+ );
14
+ sourceTree = "<group>";
15
+ };
16
+ F1465EFF23AA94BF0055F7C3 /* Demo */ = {
17
+ isa = PBXGroup;
18
+ children = ();
19
+ path = Demo;
20
+ sourceTree = "<group>";
21
+ };
22
+ /* End PBXGroup section */
23
+
24
+ /* Begin PBXProject section */
25
+ F1465EF523AA94BF0055F7C3 /* Project object */ = {
26
+ isa = PBXProject;
27
+ attributes = {
28
+ BuildIndependentTargetsInParallel = YES;
29
+ LastSwiftUpdateCheck = 1420;
30
+ LastUpgradeCheck = 1420;
31
+ TargetAttributes = {
32
+ F1465EFC23AA94BF0055F7C3 = {
33
+ CreatedOnToolsVersion = 11.2.1;
34
+ };
35
+ };
36
+ };
37
+ buildConfigurationList = F1465EF823AA94BF0055F7C3 /* Build configuration list for PBXProject "Demo" */;
38
+ compatibilityVersion = "Xcode 9.3";
39
+ developmentRegion = en;
40
+ hasScannedForEncodings = 0;
41
+ knownRegions = (
42
+ en,
43
+ Base,
44
+ es,
45
+ "zh-Hans",
46
+ fr,
47
+ );
48
+ mainGroup = F1465EF423AA94BF0055F7C3;
49
+ packageReferences = (
50
+ 11BBD37629C1571400F7A968 /* XCRemoteSwiftPackageReference "Nuke" */,
51
+ );
52
+ productRefGroup = F1465EFE23AA94BF0055F7C3 /* Products */;
53
+ projectDirPath = "";
54
+ projectRoot = "";
55
+ targets = ();
56
+ };
57
+ /* End PBXProject section */
58
+
59
+ /* Begin XCConfigurationList section */
60
+ F1465EF823AA94BF0055F7C3 /* Build configuration list for PBXNativeTarget "Demo" */ = {
61
+ isa = XCConfigurationList;
62
+ buildConfigurations = ();
63
+ defaultConfigurationIsVisible = 0;
64
+ defaultConfigurationName = Release;
65
+ };
66
+ /* End XCConfigurationList section */
67
+
68
+ /* Begin XCRemoteSwiftPackageReference section */
69
+ 11BBD37629C1571400F7A968 /* XCRemoteSwiftPackageReference "Nuke" */ = {
70
+ isa = XCRemoteSwiftPackageReference;
71
+ repositoryURL = "https://github.com/kean/Nuke";
72
+ requirement = {
73
+ kind = exactVersion;
74
+ version = 12.1.6;
75
+ };
76
+ };
77
+ /* End XCRemoteSwiftPackageReference section */
78
+ };
79
+ rootObject = F1465EF523AA94BF0055F7C3 /* Project object */;
80
+ }
@@ -0,0 +1,265 @@
1
+ {
2
+ "pins" : [
3
+ {
4
+ "identity" : "abseil-cpp-binary",
5
+ "kind" : "remoteSourceControl",
6
+ "location" : "https://github.com/google/abseil-cpp-binary.git",
7
+ "state" : {
8
+ "revision" : "bfc0b6f81adc06ce5121eb23f628473638d67c5c",
9
+ "version" : "1.2022062300.0"
10
+ }
11
+ },
12
+ {
13
+ "identity" : "analytics-swift",
14
+ "kind" : "remoteSourceControl",
15
+ "location" : "git@github.com:hbmartin/analytics-swift.git",
16
+ "state" : {
17
+ "branch" : "main",
18
+ "revision" : "81ed4a83fc87ef074bb71b2b0bced199811dc3bb"
19
+ }
20
+ },
21
+ {
22
+ "identity" : "firebase-ios-sdk",
23
+ "kind" : "remoteSourceControl",
24
+ "location" : "https://github.com/firebase/firebase-ios-sdk",
25
+ "state" : {
26
+ "revision" : "8a8ec57a272e0d31480fb0893dda0cf4f769b57e",
27
+ "version" : "10.15.0"
28
+ }
29
+ },
30
+ {
31
+ "identity" : "googleappmeasurement",
32
+ "kind" : "remoteSourceControl",
33
+ "location" : "https://github.com/google/GoogleAppMeasurement.git",
34
+ "state" : {
35
+ "revision" : "03b9beee1a61f62d32c521e172e192a1663a5e8b",
36
+ "version" : "10.13.0"
37
+ }
38
+ },
39
+ {
40
+ "identity" : "googledatatransport",
41
+ "kind" : "remoteSourceControl",
42
+ "location" : "https://github.com/google/GoogleDataTransport.git",
43
+ "state" : {
44
+ "revision" : "aae45a320fd0d11811820335b1eabc8753902a40",
45
+ "version" : "9.2.5"
46
+ }
47
+ },
48
+ {
49
+ "identity" : "googleutilities",
50
+ "kind" : "remoteSourceControl",
51
+ "location" : "https://github.com/google/GoogleUtilities.git",
52
+ "state" : {
53
+ "revision" : "c38ce365d77b04a9a300c31061c5227589e5597b",
54
+ "version" : "7.11.5"
55
+ }
56
+ },
57
+ {
58
+ "identity" : "grpc-binary",
59
+ "kind" : "remoteSourceControl",
60
+ "location" : "https://github.com/google/grpc-binary.git",
61
+ "state" : {
62
+ "revision" : "f1b366129d1125be7db83247e003fc333104b569",
63
+ "version" : "1.50.2"
64
+ }
65
+ },
66
+ {
67
+ "identity" : "gtm-session-fetcher",
68
+ "kind" : "remoteSourceControl",
69
+ "location" : "https://github.com/google/gtm-session-fetcher.git",
70
+ "state" : {
71
+ "revision" : "d415594121c9e8a4f9d79cecee0965cf35e74dbd",
72
+ "version" : "3.1.1"
73
+ }
74
+ },
75
+ {
76
+ "identity" : "interop-ios-for-google-sdks",
77
+ "kind" : "remoteSourceControl",
78
+ "location" : "https://github.com/google/interop-ios-for-google-sdks.git",
79
+ "state" : {
80
+ "revision" : "2d12673670417654f08f5f90fdd62926dc3a2648",
81
+ "version" : "100.0.0"
82
+ }
83
+ },
84
+ {
85
+ "identity" : "leveldb",
86
+ "kind" : "remoteSourceControl",
87
+ "location" : "https://github.com/firebase/leveldb.git",
88
+ "state" : {
89
+ "revision" : "0706abcc6b0bd9cedfbb015ba840e4a780b5159b",
90
+ "version" : "1.22.2"
91
+ }
92
+ },
93
+ {
94
+ "identity" : "lookingglassui",
95
+ "kind" : "remoteSourceControl",
96
+ "location" : "https://github.com/ryanlintott/LookingGlassUI",
97
+ "state" : {
98
+ "revision" : "3257e1b5392a8b39e4620e09cfdb672d2be42855",
99
+ "version" : "0.3.1"
100
+ }
101
+ },
102
+ {
103
+ "identity" : "maplibre-gl-native-distribution",
104
+ "kind" : "remoteSourceControl",
105
+ "location" : "https://github.com/maplibre/maplibre-gl-native-distribution",
106
+ "state" : {
107
+ "revision" : "ffda61e298c1490d4860d5184e80d618aaadc089",
108
+ "version" : "5.13.0"
109
+ }
110
+ },
111
+ {
112
+ "identity" : "nanopb",
113
+ "kind" : "remoteSourceControl",
114
+ "location" : "https://github.com/firebase/nanopb.git",
115
+ "state" : {
116
+ "revision" : "819d0a2173aff699fb8c364b6fb906f7cdb1a692",
117
+ "version" : "2.30909.0"
118
+ }
119
+ },
120
+ {
121
+ "identity" : "nuke",
122
+ "kind" : "remoteSourceControl",
123
+ "location" : "https://github.com/kean/Nuke",
124
+ "state" : {
125
+ "revision" : "3f666f120b63ea7de57d42e9a7c9b47f8e7a290b",
126
+ "version" : "12.1.6"
127
+ }
128
+ },
129
+ {
130
+ "identity" : "phonenumberkit",
131
+ "kind" : "remoteSourceControl",
132
+ "location" : "https://github.com/marmelroy/PhoneNumberKit.git",
133
+ "state" : {
134
+ "revision" : "b456f2f9be10c1d183158220b831afd22697dd68",
135
+ "version" : "3.7.4"
136
+ }
137
+ },
138
+ {
139
+ "identity" : "promises",
140
+ "kind" : "remoteSourceControl",
141
+ "location" : "https://github.com/google/promises.git",
142
+ "state" : {
143
+ "revision" : "e70e889c0196c76d22759eb50d6a0270ca9f1d9e",
144
+ "version" : "2.3.1"
145
+ }
146
+ },
147
+ {
148
+ "identity" : "sentry-cocoa",
149
+ "kind" : "remoteSourceControl",
150
+ "location" : "https://github.com/getsentry/sentry-cocoa.git",
151
+ "state" : {
152
+ "revision" : "14aa6e47b03b820fd2b338728637570b9e969994",
153
+ "version" : "8.12.0"
154
+ }
155
+ },
156
+ {
157
+ "identity" : "sovran-swift",
158
+ "kind" : "remoteSourceControl",
159
+ "location" : "https://github.com/segmentio/Sovran-Swift.git",
160
+ "state" : {
161
+ "revision" : "64f3b5150c282a34af4578188dce2fd597e600e3",
162
+ "version" : "1.1.0"
163
+ }
164
+ },
165
+ {
166
+ "identity" : "swift-algorithms",
167
+ "kind" : "remoteSourceControl",
168
+ "location" : "https://github.com/apple/swift-algorithms.git",
169
+ "state" : {
170
+ "revision" : "bcd4f369ac962bc3e5244c9df778739f8f5bdbf1",
171
+ "version" : "1.1.0"
172
+ }
173
+ },
174
+ {
175
+ "identity" : "swift-argument-parser",
176
+ "kind" : "remoteSourceControl",
177
+ "location" : "https://github.com/apple/swift-argument-parser.git",
178
+ "state" : {
179
+ "revision" : "8f4d2753f0e4778c76d5f05ad16c74f707390531",
180
+ "version" : "1.2.3"
181
+ }
182
+ },
183
+ {
184
+ "identity" : "swift-asn1",
185
+ "kind" : "remoteSourceControl",
186
+ "location" : "https://github.com/apple/swift-asn1.git",
187
+ "state" : {
188
+ "revision" : "3664efa98bd302ec90e5b27ee1c0649fbcc365bc"
189
+ }
190
+ },
191
+ {
192
+ "identity" : "swift-case-paths",
193
+ "kind" : "remoteSourceControl",
194
+ "location" : "https://github.com/pointfreeco/swift-case-paths",
195
+ "state" : {
196
+ "revision" : "5da6989aae464f324eef5c5b52bdb7974725ab81",
197
+ "version" : "1.0.0"
198
+ }
199
+ },
200
+ {
201
+ "identity" : "swift-custom-dump",
202
+ "kind" : "remoteSourceControl",
203
+ "location" : "https://github.com/pointfreeco/swift-custom-dump",
204
+ "state" : {
205
+ "revision" : "3efbfba0e4e56c7187cc19137ee16b7c95346b79",
206
+ "version" : "1.1.0"
207
+ }
208
+ },
209
+ {
210
+ "identity" : "swift-numerics",
211
+ "kind" : "remoteSourceControl",
212
+ "location" : "https://github.com/apple/swift-numerics.git",
213
+ "state" : {
214
+ "revision" : "0a5bc04095a675662cf24757cc0640aa2204253b",
215
+ "version" : "1.0.2"
216
+ }
217
+ },
218
+ {
219
+ "identity" : "swift-protobuf",
220
+ "kind" : "remoteSourceControl",
221
+ "location" : "https://github.com/apple/swift-protobuf.git",
222
+ "state" : {
223
+ "revision" : "cf62cdaea48b77f1a631e5cb3aeda6047c2cba1d",
224
+ "version" : "1.23.0"
225
+ }
226
+ },
227
+ {
228
+ "identity" : "swift-snapshot-testing",
229
+ "kind" : "remoteSourceControl",
230
+ "location" : "https://github.com/pointfreeco/swift-snapshot-testing",
231
+ "state" : {
232
+ "revision" : "696b86a6d151578bca7c1a2a3ed419a5f834d40f",
233
+ "version" : "1.13.0"
234
+ }
235
+ },
236
+ {
237
+ "identity" : "swift-syntax",
238
+ "kind" : "remoteSourceControl",
239
+ "location" : "https://github.com/apple/swift-syntax.git",
240
+ "state" : {
241
+ "revision" : "74203046135342e4a4a627476dd6caf8b28fe11b",
242
+ "version" : "509.0.0"
243
+ }
244
+ },
245
+ {
246
+ "identity" : "swiftui-navigation",
247
+ "kind" : "remoteSourceControl",
248
+ "location" : "https://github.com/pointfreeco/swiftui-navigation",
249
+ "state" : {
250
+ "revision" : "6eb293c49505d86e9e24232cb6af6be7fff93bd5",
251
+ "version" : "1.0.2"
252
+ }
253
+ },
254
+ {
255
+ "identity" : "xctest-dynamic-overlay",
256
+ "kind" : "remoteSourceControl",
257
+ "location" : "https://github.com/pointfreeco/xctest-dynamic-overlay",
258
+ "state" : {
259
+ "revision" : "23cbf2294e350076ea4dbd7d5d047c1e76b03631",
260
+ "version" : "1.0.2"
261
+ }
262
+ }
263
+ ],
264
+ "version" : 2
265
+ }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: danger-spm_version_updates
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Harold Martin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-11-06 00:00:00.000000000 Z
11
+ date: 2023-11-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: danger-plugin-api
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.6'
41
+ - !ruby/object:Gem::Dependency
42
+ name: xcodeproj
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.23'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.23'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: bundler
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -234,6 +248,8 @@ files:
234
248
  - spec/spm_version_updates_spec.rb
235
249
  - spec/support/fixtures/Example.xcodeproj/project.pbxproj
236
250
  - spec/support/fixtures/Example.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
251
+ - spec/support/fixtures/HasPreRelease.xcodeproj/project.pbxproj
252
+ - spec/support/fixtures/HasPreRelease.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
237
253
  - spec/support/fixtures/github_pr.json
238
254
  homepage: https://github.com/hbmartin/danger-spm_version_updates
239
255
  licenses:
@@ -247,7 +263,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
247
263
  requirements:
248
264
  - - ">="
249
265
  - !ruby/object:Gem::Version
250
- version: '0'
266
+ version: '2.7'
251
267
  required_rubygems_version: !ruby/object:Gem::Requirement
252
268
  requirements:
253
269
  - - ">="
@@ -264,4 +280,6 @@ test_files:
264
280
  - spec/spm_version_updates_spec.rb
265
281
  - spec/support/fixtures/Example.xcodeproj/project.pbxproj
266
282
  - spec/support/fixtures/Example.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
283
+ - spec/support/fixtures/HasPreRelease.xcodeproj/project.pbxproj
284
+ - spec/support/fixtures/HasPreRelease.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
267
285
  - spec/support/fixtures/github_pr.json