fastlane 2.70.2 → 2.70.3

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
  SHA1:
3
- metadata.gz: 83ac3d5b30435c890c6c68faeb4a41bfe3acb424
4
- data.tar.gz: 39c65833f75f48ef0131faf206683adcacd9127c
3
+ metadata.gz: db2a79f0ea8502192be084f553b7611f25f83314
4
+ data.tar.gz: 99effa647bdaaab8564baded99feaa20306d10f9
5
5
  SHA512:
6
- metadata.gz: 12b67636cf96d5debabd98bf4b2d53fce327af50830c504b80fda8aeb798c88fd6f69c242eabc200db9176eddeeb67cc789bcf062a65a0e95f74fd92b330753a
7
- data.tar.gz: aadae44146f183fd6913c07b3b65f748768fee1e11756df9727c0681eb8f9e3e089261e23c58b20ed0a0e6f743fd5fab446b678fc51e0d3ebc071b84c2fb4f98
6
+ metadata.gz: e55c92ffa57592da478a44ebcb77cebdcfd7e9e32324daf6e59d4014e5c5e0da4a4659038404d0980b97d74fafc17df87d581c9ac71f229ee09c41060ada72c1
7
+ data.tar.gz: 9ea6bc9cde31f71aad51cfc0fe2af49fa6caccf818c053d1f1fa8619571a7f76257ddb1c87e0687a20ced19912727f0f4c57fed9538c7a6f8f0a44bca7b19835
@@ -5,6 +5,7 @@ module Fastlane
5
5
  end
6
6
 
7
7
  class DownloadDsymsAction < Action
8
+ # rubocop:disable Metrics/PerceivedComplexity
8
9
  def self.run(params)
9
10
  require 'spaceship'
10
11
  require 'net/http'
@@ -29,8 +30,12 @@ module Fastlane
29
30
  # Set version if it is latest
30
31
  if version == 'latest'
31
32
  # Try to grab the edit version first, else fallback to live version
33
+ UI.message("Looking for latest version...")
32
34
  latest_version = app.edit_version(platform: platform) || app.live_version(platform: platform)
33
- version = nil
35
+
36
+ UI.user_error!("Could not find latest version for your app, please try setting a specific version") if latest_version.version.nil?
37
+
38
+ version = latest_version.version
34
39
  build_number = latest_version.build_version
35
40
  end
36
41
 
@@ -82,6 +87,7 @@ module Fastlane
82
87
  UI.error("No dSYM files found on iTunes Connect - this usually happens when no recompling happened yet")
83
88
  end
84
89
  end
90
+ # rubocop:enable Metrics/PerceivedComplexity
85
91
 
86
92
  def self.write_dsym(data, bundle_id, train_number, build_number, output_directory)
87
93
  file_name = "#{bundle_id}-#{train_number}-#{build_number}.dSYM.zip"
@@ -34,7 +34,7 @@ module Fastlane
34
34
  default_value: 'fastlane/Fastfile',
35
35
  optional: true),
36
36
  FastlaneCore::ConfigItem.new(key: :version,
37
- description: "The version to checkout on the respository. Optimistic operator can be used to select the latest version within constraints",
37
+ description: "The version to checkout on the respository. Optimistic match operator or multiple conditions can be used to select the latest version within constraints",
38
38
  default_value: nil,
39
39
  optional: true)
40
40
  ]
@@ -54,7 +54,13 @@ module Fastlane
54
54
  url: "git@github.com:fastlane/fastlane.git", # The URL of the repository to import the Fastfile from.
55
55
  branch: "HEAD", # The branch to checkout on the repository. Defaults to `HEAD`.
56
56
  path: "fastlane/Fastfile" # The path of the Fastfile in the repository. Defaults to `fastlane/Fastfile`.
57
- version: "~> 1.0.0" #The version to checkout on the respository. Optimistic operator can be used to select the latest version within constraints.
57
+ version: "~> 1.0.0" # The version to checkout on the repository. Optimistic match operator can be used to select the latest version within constraints.
58
+ )',
59
+ 'import_from_git(
60
+ url: "git@github.com:fastlane/fastlane.git", # The URL of the repository to import the Fastfile from.
61
+ branch: "HEAD", # The branch to checkout on the repository. Defaults to `HEAD`.
62
+ path: "fastlane/Fastfile" # The path of the Fastfile in the repository. Defaults to `fastlane/Fastfile`.
63
+ version: [">= 1.1.0", "< 2.0.0"] # The version to checkout on the repository. Multiple conditions can be used to select the latest version within constraints.
58
64
  )'
59
65
  ]
60
66
  end
@@ -1,3 +1,5 @@
1
+ require "rubygems/requirement"
2
+
1
3
  module Fastlane
2
4
  class FastFile
3
5
  # Stores all relevant information from the currently running process
@@ -229,7 +231,7 @@ module Fastlane
229
231
  # @param url [String] The git URL to clone the repository from
230
232
  # @param branch [String] The branch to checkout in the repository
231
233
  # @param path [String] The path to the Fastfile
232
- # @param verion [String] Version of the required Fastlane version
234
+ # @param version [String, Array] Version requirement for repo tags
233
235
  def import_from_git(url: nil, branch: 'HEAD', path: 'fastlane/Fastfile', version: nil)
234
236
  UI.user_error!("Please pass a path to the `import_from_git` action") if url.to_s.length == 0
235
237
 
@@ -251,13 +253,10 @@ module Fastlane
251
253
  Actions.sh("GIT_TERMINAL_PROMPT=0 git clone '#{url}' '#{clone_folder}' --depth 1 -n #{branch_option}")
252
254
 
253
255
  unless version.nil?
254
- git_tags = fetch_remote_tags(folder: clone_folder)
255
-
256
- # Separate version from optimistic operator
257
- version_number = version(version_string: version)
258
- operator = operator(version_string: version)
259
-
260
- checkout_param = checkout_param_for_operator(operator: operator, version: version_number, git_tags: git_tags)
256
+ req = Gem::Requirement.new(version)
257
+ all_tags = fetch_remote_tags(folder: clone_folder)
258
+ checkout_param = all_tags.select { |t| req =~ FastlaneCore::TagVersion.new(t) }.last
259
+ UI.user_error! "No tag found matching #{version.inspect}" if checkout_param.nil?
261
260
  end
262
261
 
263
262
  Actions.sh("cd '#{clone_folder}' && git checkout #{checkout_param} '#{path}'")
@@ -293,75 +292,10 @@ module Fastlane
293
292
  git_tags_string = Actions.sh("cd '#{folder}' && git tag -l")
294
293
  git_tags = git_tags_string.split("\n")
295
294
 
296
- # Delete tags that are not a real version number
297
- git_tags.delete_if { |tag| Gem::Version.correct?(tag) != 0 }
298
-
299
295
  # Sort tags based on their version number
300
- git_tags.sort_by { |tag| Gem::Version.new(tag) }
301
-
302
296
  return git_tags
303
- end
304
-
305
- def checkout_param_for_operator(operator: nil, version: nil, git_tags: nil)
306
- # ~> should select the latest version withing constraints.
307
- # -> should select a specific version without fallback.
308
- if operator == "~>"
309
- return checkout_param_twiddle_wakka(version: version, git_tags: git_tags)
310
-
311
- elsif operator == "->" || operator.nil?
312
- return checkout_param_specific_version(version: version, git_tags: git_tags)
313
-
314
- else
315
- UI.user_error!("The specified operator \"#{operator}\" in \"#{version}\" is unknown. Please use one of these '~> ->'")
316
- end
317
- end
318
-
319
- def checkout_param_specific_version(version: nil, git_tags: nil)
320
- # Search matching version in array
321
- matching_git_tags = git_tags.select do |tag|
322
- tag == version
323
- end
324
-
325
- UI.user_error!("The specified version \"#{version}\" doesn't exist") if matching_git_tags.count == 0
326
- return matching_git_tags.last
327
- end
328
-
329
- def checkout_param_twiddle_wakka(version: nil, git_tags: nil)
330
- # Drop last specified digit in version
331
- last_dot_index = version.rindex('.')
332
- version_range = version[0..last_dot_index - 1]
333
-
334
- # Search matching version in array
335
- matching_git_tags = git_tags.select do |tag|
336
- tag.start_with?(version_range)
337
- end
338
-
339
- UI.user_error!("No version found within the \"#{version_range}.*\" range") if matching_git_tags.count == 0
340
-
341
- return matching_git_tags.last
342
- end
343
-
344
- def operator(version_string: nil)
345
- version_info = version_range_info(version_string: version_string)
346
-
347
- # version_info will have 2 elements if an optimistic operator is specified.
348
- if version_info.count > 1
349
-
350
- # Optimistic operator is always the first part. e.g.: ["~>", "2.0.0"]
351
- return version_info.first
352
- end
353
-
354
- return nil
355
- end
356
-
357
- def version(version_string: nil)
358
- version_info = version_range_info(version_string: version_string)
359
- return version_info.last
360
- end
361
-
362
- def version_range_info(version_string: nil)
363
- # Separate version from optimistic operator
364
- return version_string.split(" ")
297
+ .select { |tag| FastlaneCore::TagVersion.correct?(tag) }
298
+ .sort_by { |tag| FastlaneCore::TagVersion.new(tag) }
365
299
  end
366
300
 
367
301
  #####################################################
@@ -174,7 +174,8 @@ module Fastlane
174
174
  return_value = ""
175
175
  end
176
176
 
177
- return JSON.generate(return_value.to_s)
177
+ # quirks_mode because sometimes the built-in library is used for some folks and that needs quirks_mode: true
178
+ return JSON.generate(return_value.to_s, quirks_mode: true)
178
179
  end
179
180
 
180
181
  def process_value_as_array_of_strings(return_value: nil)
@@ -182,6 +183,7 @@ module Fastlane
182
183
  return_value = []
183
184
  end
184
185
 
186
+ # quirks_mode shouldn't be required for real objects
185
187
  return JSON.generate(return_value)
186
188
  end
187
189
 
@@ -190,6 +192,7 @@ module Fastlane
190
192
  return_value = {}
191
193
  end
192
194
 
195
+ # quirks_mode shouldn't be required for real objects
193
196
  return JSON.generate(return_value)
194
197
  end
195
198
 
@@ -198,7 +201,8 @@ module Fastlane
198
201
  return_value = false
199
202
  end
200
203
 
201
- return JSON.generate(return_value)
204
+ # quirks_mode because sometimes the built-in library is used for some folks and that needs quirks_mode: true
205
+ return JSON.generate(return_value.to_s, quirks_mode: true)
202
206
  end
203
207
 
204
208
  def process_value_as_int(return_value: nil)
@@ -206,7 +210,8 @@ module Fastlane
206
210
  return_value = 0
207
211
  end
208
212
 
209
- return JSON.generate(return_value)
213
+ # quirks_mode because sometimes the built-in library is used for some folks and that needs quirks_mode: true
214
+ return JSON.generate(return_value.to_s, quirks_mode: true)
210
215
  end
211
216
  end
212
217
  end
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.70.2'.freeze
2
+ VERSION = '2.70.3'.freeze
3
3
  DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
4
4
  MINIMUM_XCODE_RELEASE = "7.0".freeze
5
5
  RUBOCOP_REQUIREMENT = '0.49.1'.freeze
@@ -11,4 +11,4 @@ class Deliverfile: DeliverfileProtocol {
11
11
 
12
12
 
13
13
 
14
- // Generated with fastlane 2.70.1
14
+ // Generated with fastlane 2.70.2
@@ -11,4 +11,4 @@ class Gymfile: GymfileProtocol {
11
11
 
12
12
 
13
13
 
14
- // Generated with fastlane 2.70.1
14
+ // Generated with fastlane 2.70.2
@@ -11,4 +11,4 @@ class Matchfile: MatchfileProtocol {
11
11
 
12
12
 
13
13
 
14
- // Generated with fastlane 2.70.1
14
+ // Generated with fastlane 2.70.2
@@ -11,4 +11,4 @@ class Precheckfile: PrecheckfileProtocol {
11
11
 
12
12
 
13
13
 
14
- // Generated with fastlane 2.70.1
14
+ // Generated with fastlane 2.70.2
@@ -11,4 +11,4 @@ class Scanfile: ScanfileProtocol {
11
11
 
12
12
 
13
13
 
14
- // Generated with fastlane 2.70.1
14
+ // Generated with fastlane 2.70.2
@@ -11,4 +11,4 @@ class Screengrabfile: ScreengrabfileProtocol {
11
11
 
12
12
 
13
13
 
14
- // Generated with fastlane 2.70.1
14
+ // Generated with fastlane 2.70.2
@@ -11,4 +11,4 @@ class Snapshotfile: SnapshotfileProtocol {
11
11
 
12
12
 
13
13
 
14
- // Generated with fastlane 2.70.1
14
+ // Generated with fastlane 2.70.2
@@ -46,6 +46,7 @@ require 'fastlane_core/analytics/action_launch_context'
46
46
  require 'fastlane_core/analytics/analytics_event_builder'
47
47
  require 'fastlane_core/analytics/analytics_ingester_client'
48
48
  require 'fastlane_core/analytics/analytics_session'
49
+ require 'fastlane_core/tag_version'
49
50
 
50
51
  # Third Party code
51
52
  require 'colored'
@@ -23,6 +23,9 @@ module FastlaneCore
23
23
  # [Boolean] is false by default. If set to true, also string values will not be asked to the user
24
24
  attr_accessor :optional
25
25
 
26
+ # [Boolean] is false by default. If set to true, type of the parameter will not be validated.
27
+ attr_accessor :skip_type_validation
28
+
26
29
  # [Array] array of conflicting option keys(@param key). This allows to resolve conflicts intelligently
27
30
  attr_accessor :conflicting_options
28
31
 
@@ -53,6 +56,7 @@ module FastlaneCore
53
56
  # You have to raise a specific exception if something goes wrong. Append .red after the string
54
57
  # @param is_string *DEPRECATED: Use `type` instead* (Boolean) is that parameter a string? Defaults to true. If it's true, the type string will be verified.
55
58
  # @param type (Class) the data type of this config item. Takes precedence over `is_string`. Use `:shell_string` to allow types `String`, `Hash` and `Array` that will be converted to shell-escaped strings
59
+ # @param skip_type_validation (Boolean) is false by default. If set to true, type of the parameter will not be validated.
56
60
  # @param optional (Boolean) is false by default. If set to true, also string values will not be asked to the user
57
61
  # @param conflicting_options ([]) array of conflicting option keys(@param key). This allows to resolve conflicts intelligently
58
62
  # @param conflict_block an optional block which is called when options conflict happens
@@ -0,0 +1,24 @@
1
+ require "rubygems/version"
2
+
3
+ module FastlaneCore
4
+ # Utility class to construct a Gem::Version from a tag.
5
+ # Accepts vX.Y.Z and X.Y.Z.
6
+ class TagVersion < Gem::Version
7
+ class << self
8
+ def correct?(tag)
9
+ superclass.correct?(version_number_from_tag(tag))
10
+ end
11
+
12
+ # Gem::Version.new barfs on things like "v0.1.0", which is the style
13
+ # generated by the rake release task. Just strip off any initial v
14
+ # to generate a Gem::Version from a tag.
15
+ def version_number_from_tag(tag)
16
+ tag.sub(/^v/, "")
17
+ end
18
+ end
19
+
20
+ def initialize(tag)
21
+ super(self.class.version_number_from_tag(tag))
22
+ end
23
+ end
24
+ end
@@ -44,7 +44,7 @@ module Supply
44
44
  IMAGES_TYPES.each do |image_type|
45
45
  if ['featureGraphic'].include?(image_type)
46
46
  # we don't get all files in full resolution :(
47
- UI.message("Due to a limitation of the Google Play API, there is no way for `supply` to download your existing feature graphic. Please copy your feature graphic to `metadata/android/en-US/images/featureGraphic.png`")
47
+ UI.message("Due to a limitation of the Google Play API, there is no way for `supply` to download your existing feature graphic. Please copy your feature graphic to `metadata/android/#{listing.language}/images/featureGraphic.png`")
48
48
  next
49
49
  end
50
50
 
@@ -71,7 +71,7 @@ module Supply
71
71
  FileUtils.mkdir_p(File.join(containing, IMAGES_FOLDER_NAME, screenshot_type))
72
72
  end
73
73
 
74
- UI.message("Due to a limitation of the Google Play API, there is no way for `supply` to download your existing screenshots. Please copy your screenshots into `metadata/android/en-US/images/`")
74
+ UI.message("Due to a limitation of the Google Play API, there is no way for `supply` to download your existing screenshots. Please copy your screenshots into `metadata/android/#{listing.language}/images/`")
75
75
  end
76
76
 
77
77
  def store_apk_listing(apk_listing)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.70.2
4
+ version: 2.70.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felix Krause
@@ -15,7 +15,7 @@ authors:
15
15
  autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
- date: 2017-12-20 00:00:00.000000000 Z
18
+ date: 2017-12-21 00:00:00.000000000 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: slack-notifier
@@ -677,14 +677,14 @@ dependencies:
677
677
  requirements:
678
678
  - - "~>"
679
679
  - !ruby/object:Gem::Version
680
- version: 0.8.7.4
680
+ version: 0.9.11
681
681
  type: :development
682
682
  prerelease: false
683
683
  version_requirements: !ruby/object:Gem::Requirement
684
684
  requirements:
685
685
  - - "~>"
686
686
  - !ruby/object:Gem::Version
687
- version: 0.8.7.4
687
+ version: 0.9.11
688
688
  - !ruby/object:Gem::Dependency
689
689
  name: webmock
690
690
  requirement: !ruby/object:Gem::Requirement
@@ -829,7 +829,6 @@ files:
829
829
  - deliver/lib/deliver/upload_price_tier.rb
830
830
  - deliver/lib/deliver/upload_screenshots.rb
831
831
  - fastlane/README.md
832
- - fastlane/lib/.DS_Store
833
832
  - fastlane/lib/assets/ActionDetails.md.erb
834
833
  - fastlane/lib/assets/Actions.md.erb
835
834
  - fastlane/lib/assets/AppfileTemplate
@@ -852,7 +851,6 @@ files:
852
851
  - fastlane/lib/fastlane/.DS_Store
853
852
  - fastlane/lib/fastlane/action.rb
854
853
  - fastlane/lib/fastlane/action_collector.rb
855
- - fastlane/lib/fastlane/actions/.DS_Store
856
854
  - fastlane/lib/fastlane/actions/README.md
857
855
  - fastlane/lib/fastlane/actions/actions_helper.rb
858
856
  - fastlane/lib/fastlane/actions/adb.rb
@@ -1088,7 +1086,6 @@ files:
1088
1086
  - fastlane/lib/fastlane/fast_file.rb
1089
1087
  - fastlane/lib/fastlane/fastlane_require.rb
1090
1088
  - fastlane/lib/fastlane/features.rb
1091
- - fastlane/lib/fastlane/helper/.DS_Store
1092
1089
  - fastlane/lib/fastlane/helper/README.md
1093
1090
  - fastlane/lib/fastlane/helper/adb_helper.rb
1094
1091
  - fastlane/lib/fastlane/helper/cocoapod_helper.rb
@@ -1165,6 +1162,7 @@ files:
1165
1162
  - fastlane/swift/Fastlane.swift
1166
1163
  - fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj
1167
1164
  - fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
1165
+ - fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcuserdata/liebowitz.xcuserdatad/UserInterfaceState.xcuserstate
1168
1166
  - fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/xcshareddata/xcschemes/FastlaneRunner.xcscheme
1169
1167
  - fastlane/swift/Gymfile.swift
1170
1168
  - fastlane/swift/GymfileProtocol.swift
@@ -1187,10 +1185,8 @@ files:
1187
1185
  - fastlane/swift/SocketResponse.swift
1188
1186
  - fastlane/swift/main.swift
1189
1187
  - fastlane_core/README.md
1190
- - fastlane_core/lib/.DS_Store
1191
1188
  - fastlane_core/lib/assets/XMLTemplate.xml.erb
1192
1189
  - fastlane_core/lib/fastlane_core.rb
1193
- - fastlane_core/lib/fastlane_core/.DS_Store
1194
1190
  - fastlane_core/lib/fastlane_core/analytics/action_completion_context.rb
1195
1191
  - fastlane_core/lib/fastlane_core/analytics/action_launch_context.rb
1196
1192
  - fastlane_core/lib/fastlane_core/analytics/analytics_event_builder.rb
@@ -1231,6 +1227,7 @@ files:
1231
1227
  - fastlane_core/lib/fastlane_core/provisioning_profile.rb
1232
1228
  - fastlane_core/lib/fastlane_core/string_filters.rb
1233
1229
  - fastlane_core/lib/fastlane_core/swag.rb
1230
+ - fastlane_core/lib/fastlane_core/tag_version.rb
1234
1231
  - fastlane_core/lib/fastlane_core/test_parser.rb
1235
1232
  - fastlane_core/lib/fastlane_core/tool_collector.rb
1236
1233
  - fastlane_core/lib/fastlane_core/ui/disable_colors.rb
@@ -1317,6 +1314,7 @@ files:
1317
1314
  - pilot/lib/pilot/tester_manager.rb
1318
1315
  - pilot/lib/pilot/tester_util.rb
1319
1316
  - precheck/README.md
1317
+ - precheck/lib/.DS_Store
1320
1318
  - precheck/lib/assets/PrecheckfileTemplate
1321
1319
  - precheck/lib/assets/PrecheckfileTemplate.swift
1322
1320
  - precheck/lib/precheck.rb
@@ -1562,10 +1560,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1562
1560
  version: '0'
1563
1561
  requirements: []
1564
1562
  rubyforge_project:
1565
- rubygems_version: 2.6.8
1563
+ rubygems_version: 2.2.5
1566
1564
  signing_key:
1567
1565
  specification_version: 4
1568
1566
  summary: The easiest way to automate beta deployments and releases for your iOS and
1569
1567
  Android apps
1570
1568
  test_files: []
1571
- has_rdoc:
Binary file
Binary file