fastlane_core 0.43.5 → 0.44.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
  SHA1:
3
- metadata.gz: d2cd4f07e96bad3ee1da04c0e795fd56096f11c6
4
- data.tar.gz: 6361ce6d0c84c064053eadca611d8ee03283d65c
3
+ metadata.gz: 6b3c9145a7514244cbfa62bb7e5bd0e847cad507
4
+ data.tar.gz: e3ae44d5d71b41e1b5a22fbaf7c89314e3b96e8d
5
5
  SHA512:
6
- metadata.gz: 4d982e332e6ab720791ad26a9c84bac4d103949b30620e5aaa83f0d880380fb88e07214ee2a006debcc73639f0c1f89d337c9c34c267383bf7998e0b1203041f
7
- data.tar.gz: 9f5f0f5a43cd5710200fdd79ff61aa9ac7f76cf87407caaf851ce8ae6a6f11fbff9c6c7bd7e31954f2d468ee0d114dfc4afad237c75aacdc775e3481f36da552
6
+ metadata.gz: f504183fcc913e355b1677b5c62503d4418a92ccf5d763e9abee082f491cd4c9ac8acd56447f8b6c49d5b9e99b1c18ef5d7dc897915a87bd586c7d7964876cde
7
+ data.tar.gz: 2c13bc156f3872ae92ed8c998009f09cd7fc437e2d93654ceb260b487435d56711fcd60928ccae3fc243dc0fbebd5a7d1a784c0ad0567f9c9e85de49fd3680b4
data/lib/fastlane_core.rb CHANGED
@@ -21,7 +21,6 @@ require 'fastlane_core/ipa_upload_package_builder'
21
21
  require 'fastlane_core/print_table'
22
22
  require 'fastlane_core/project'
23
23
  require 'fastlane_core/device_manager'
24
- require 'fastlane_core/crash_reporting/crash_reporting'
25
24
  require 'fastlane_core/ui/ui'
26
25
  require 'fastlane_core/tool_collector'
27
26
 
@@ -49,7 +49,7 @@ module FastlaneCore
49
49
  def self.wwdr_certificate_installed?
50
50
  certificate_name = "Apple Worldwide Developer Relations Certification Authority"
51
51
  keychain = wwdr_keychain
52
- response = Helper.backticks("security find-certificate -c '#{certificate_name}' #{keychain}", print: $verbose)
52
+ response = Helper.backticks("security find-certificate -c '#{certificate_name}' #{keychain.shellescape}", print: $verbose)
53
53
  return response.include?("attributes:")
54
54
  end
55
55
 
@@ -59,7 +59,7 @@ module FastlaneCore
59
59
  filename = File.basename(url)
60
60
  keychain = wwdr_keychain
61
61
  keychain.prepend("-k ") unless keychain.empty?
62
- `curl -O #{url} && security import #{filename} #{keychain}`
62
+ Helper.backticks("curl -O #{url} && security import #{filename} #{keychain.shellescape}", print: $verbose)
63
63
  UI.user_error!("Could not install WWDR certificate") unless $?.success?
64
64
  end
65
65
  end
@@ -13,10 +13,10 @@ module FastlaneCore
13
13
 
14
14
  # From https://github.com/orta/danger/blob/master/lib/danger/Dangerfile.rb
15
15
  if content.tr!('“”‘’‛', %(""'''))
16
- Helper.log.error "Your #{File.basename(path)} has had smart quotes sanitised. " \
17
- 'To avoid issues in the future, you should not use ' \
18
- 'TextEdit for editing it. If you are not using TextEdit, ' \
19
- 'you should turn off smart quotes in your editor of choice.'.red
16
+ UI.error("Your #{File.basename(path)} has had smart quotes sanitised. " \
17
+ 'To avoid issues in the future, you should not use ' \
18
+ 'TextEdit for editing it. If you are not using TextEdit, ' \
19
+ 'you should turn off smart quotes in your editor of choice.')
20
20
  end
21
21
 
22
22
  begin
@@ -9,7 +9,7 @@ module FastlaneCore
9
9
  end
10
10
 
11
11
  def simulators(requested_os_type = "")
12
- UI.message("Fetching available simulator devices") if $verbose
12
+ UI.verbose("Fetching available simulator devices")
13
13
 
14
14
  @devices = []
15
15
  os_type = 'unknown'
@@ -42,7 +42,7 @@ module FastlaneCore
42
42
  end
43
43
 
44
44
  def connected_devices(requested_os_type)
45
- Helper.log.info "Fetching available connected devices" if $verbose
45
+ UI.verbose("Fetching available connected devices")
46
46
 
47
47
  device_types = if requested_os_type == "tvOS"
48
48
  ["AppleTV"]
@@ -84,7 +84,7 @@ module FastlaneCore
84
84
  match = instruments_device.match(/(.+) \(([0-9.]+)\) \[([0-9a-f]+)\]?/)
85
85
  if match && match[3] == device_uuid
86
86
  devices << Device.new(name: match[1], udid: match[3], os_version: match[2], state: "Booted", is_simulator: false)
87
- Helper.log.info "USB Device Found - \"" + match[1] + "\" (" + match[2] + ") UUID:" + match[3] if $verbose
87
+ UI.verbose("USB Device Found - \"" + match[1] + "\" (" + match[2] + ") UUID:" + match[3])
88
88
  end
89
89
  end
90
90
  end
@@ -95,7 +95,7 @@ module FastlaneCore
95
95
 
96
96
  # The code below works from Xcode 7 on
97
97
  # def all
98
- # UI.message("Fetching available devices") if $verbose
98
+ # UI.verbose("Fetching available devices")
99
99
 
100
100
  # @devices = []
101
101
  # output = ''
@@ -2,48 +2,7 @@ require 'logger'
2
2
  require 'colored'
3
3
 
4
4
  module FastlaneCore
5
- # rubocop:disable Metrics/ModuleLength
6
5
  module Helper
7
- # Logging happens using this method
8
- def self.log
9
- $stdout.sync = true
10
-
11
- if is_test?
12
- @log ||= Logger.new(nil) # don't show any logs when running tests
13
- else
14
- @log ||= Logger.new($stdout)
15
- end
16
-
17
- @log.formatter = proc do |severity, datetime, progname, msg|
18
- string = "#{severity} [#{datetime.strftime('%Y-%m-%d %H:%M:%S.%2N')}]: " if $verbose
19
- string = "[#{datetime.strftime('%H:%M:%S')}]: " unless $verbose
20
- second = "#{msg}\n"
21
-
22
- if severity == "DEBUG"
23
- string = string.magenta
24
- elsif severity == "INFO"
25
- string = string.white
26
- elsif severity == "WARN"
27
- string = string.yellow
28
- elsif severity == "ERROR"
29
- string = string.red
30
- elsif severity == "FATAL"
31
- string = string.red.bold
32
- end
33
-
34
- [string, second].join("")
35
- end
36
-
37
- @log
38
- end
39
-
40
- # This method can be used to add nice lines around the actual log
41
- # Use this to log more important things
42
- # The logs will be green automatically
43
- def self.log_alert(text)
44
- UI.header(text)
45
- end
46
-
47
6
  # Runs a given command using backticks (`)
48
7
  # and prints them out using the UI.command method
49
8
  def self.backticks(command, print: true)
@@ -178,5 +137,4 @@ module FastlaneCore
178
137
  end
179
138
  end
180
139
  end
181
- # rubocop:enable Metrics/ModuleLength
182
140
  end
@@ -25,34 +25,33 @@ module FastlaneCore
25
25
  end
26
26
 
27
27
  def did_launch_action(name)
28
- name = name.to_sym
28
+ name = name_to_track(name.to_sym)
29
+ return unless name
29
30
 
30
- if is_official?(name)
31
- launches[name] += 1
32
- versions[name] ||= determine_version(name)
33
- end
31
+ launches[name] += 1
32
+ versions[name] ||= determine_version(name)
34
33
  end
35
34
 
36
35
  # Call when the problem is a caught/controlled exception (e.g. via UI.user_error!)
37
36
  def did_raise_error(name)
38
- name = name.to_sym
39
- if is_official?(name)
40
- @error = name
41
- # Don't write to the @crash field so that we can distinguish this exception later
42
- # as being controlled
43
- end
37
+ name = name_to_track(name.to_sym)
38
+ return unless name
39
+
40
+ @error = name
41
+ # Don't write to the @crash field so that we can distinguish this exception later
42
+ # as being controlled
44
43
  end
45
44
 
46
45
  # Call when the problem is an uncaught/uncontrolled exception (e.g. via UI.crash!)
47
46
  def did_crash(name)
48
- name = name.to_sym
49
- if is_official?(name)
50
- # Write to the @error field to maintain the historical behavior of the field, so
51
- # that the server gets the same data in that field from old and new clients
52
- @error = name
53
- # Also specifically note that this exception was uncontrolled in the @crash field
54
- @crash = true
55
- end
47
+ name = name_to_track(name.to_sym)
48
+ return unless name
49
+
50
+ # Write to the @error field to maintain the historical behavior of the field, so
51
+ # that the server gets the same data in that field from old and new clients
52
+ @error = name
53
+ # Also specifically note that this exception was uncontrolled in the @crash field
54
+ @crash = true
56
55
  end
57
56
 
58
57
  def did_finish
@@ -113,10 +112,19 @@ module FastlaneCore
113
112
  @versions ||= {}
114
113
  end
115
114
 
115
+ # Override this in subclasses
116
116
  def is_official?(name)
117
117
  return true
118
118
  end
119
119
 
120
+ # Returns nil if we shouldn't track this action
121
+ # Returns a (maybe modified) name that should be sent to the enhancer web service
122
+ # Modificiation is used to prefix the action name with the name of the plugin
123
+ def name_to_track(name)
124
+ return nil unless is_official?(name)
125
+ name
126
+ end
127
+
120
128
  def did_show_message?
121
129
  path = File.join(File.expand_path('~'), '.did_show_opt_info')
122
130
  did_show = File.exist?(path)
@@ -61,7 +61,6 @@ module Commander
61
61
  error_info = error_info.join("\n\t") if error_info.kind_of?(Array)
62
62
  display_user_error!(e, error_info)
63
63
  else
64
- FastlaneCore::CrashReporting.handle_crash(e)
65
64
  # From https://stackoverflow.com/a/4789702/445598
66
65
  # We do this to make the actual error message red and therefore more visible
67
66
  reraise_formatted!(e, e.message)
@@ -1,3 +1,3 @@
1
1
  module FastlaneCore
2
- VERSION = "0.43.5".freeze
2
+ VERSION = "0.44.0".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.43.5
4
+ version: 0.44.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felix Krause
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-13 00:00:00.000000000 Z
11
+ date: 2016-05-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -150,20 +150,6 @@ dependencies:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
152
  version: 1.4.5
153
- - !ruby/object:Gem::Dependency
154
- name: sentry-raven
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - "~>"
158
- - !ruby/object:Gem::Version
159
- version: '0.15'
160
- type: :runtime
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - "~>"
165
- - !ruby/object:Gem::Version
166
- version: '0.15'
167
153
  - !ruby/object:Gem::Dependency
168
154
  name: credentials_manager
169
155
  requirement: !ruby/object:Gem::Requirement
@@ -356,8 +342,6 @@ files:
356
342
  - lib/fastlane_core/configuration/configuration.rb
357
343
  - lib/fastlane_core/configuration/configuration_file.rb
358
344
  - lib/fastlane_core/core_ext/string.rb
359
- - lib/fastlane_core/crash_reporting/clean_stack_trace.rb
360
- - lib/fastlane_core/crash_reporting/crash_reporting.rb
361
345
  - lib/fastlane_core/device_manager.rb
362
346
  - lib/fastlane_core/helper.rb
363
347
  - lib/fastlane_core/ipa_file_analyser.rb
@@ -401,7 +385,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
401
385
  version: '0'
402
386
  requirements: []
403
387
  rubyforge_project:
404
- rubygems_version: 2.6.2
388
+ rubygems_version: 2.4.0
405
389
  signing_key:
406
390
  specification_version: 4
407
391
  summary: Contains all shared code/dependencies of the fastlane.tools
@@ -1,18 +0,0 @@
1
- module Raven
2
- # This class gets rid of the user folder, as we don't want to share the username
3
- class Processor
4
- class CleanStackTrace < Processor
5
- def process(value)
6
- if value[:exception]
7
- value[:exception][:values].each do |single_exception|
8
- single_exception[:stacktrace][:frames].each do |current|
9
- current[:abs_path].gsub!(Dir.home, "~")
10
- end
11
- end
12
- end
13
-
14
- return value
15
- end
16
- end
17
- end
18
- end
@@ -1,85 +0,0 @@
1
- module FastlaneCore
2
- class CrashReporting
3
- URL = 'https://02c6a8be5bd4425389706655f3657f5c:de62aa2bffe643948ea6f81354adb8d6@app.getsentry.com/55281'
4
- class << self
5
- def file_path
6
- File.expand_path(File.join('~/.fastlane_crash_reporting'))
7
- end
8
-
9
- def enable
10
- File.write(file_path, "1")
11
- puts "Successfully enabled crash reporting.".green
12
- puts "This will only send a stack trace for installed gems to Sentry.".green
13
- puts "Thanks for improving fastlane!".green
14
- end
15
-
16
- def disable
17
- File.delete(file_path) if File.exist?(file_path)
18
- puts "Disabled crash reporting :("
19
- end
20
-
21
- def enabled?
22
- File.exist?(file_path)
23
- end
24
-
25
- def show_message
26
- puts "-------------------------------------------------------------------------------------------".yellow
27
- puts "😨 An error occured. Please enable crash reports using `fastlane enable_crash_reporting`.".yellow
28
- puts "👍 This makes resolving issues much easier and helps improve fastlane.".yellow
29
- puts "🔒 The reports will be stored securely on getsentry.com.".yellow
30
- puts "🙊 More information about privacy: https://github.com/fastlane/fastlane/releases/tag/1.33.3".yellow
31
- puts "-------------------------------------------------------------------------------------------".yellow
32
- end
33
-
34
- # Ask the user politely if they want to send crash reports
35
- def ask_during_setup
36
- return if enabled?
37
-
38
- puts "-------------------------------------------------------------------------------------------".yellow
39
- puts "😃 Enable crash reporting when fastlane experiences a problem?".yellow
40
- puts "👍 This makes resolving issues much easier and helps improve fastlane.".yellow
41
- puts "🔒 The reports will be stored securely on getsentry.com".yellow
42
- puts "🙊 More information about privacy: https://github.com/fastlane/fastlane/releases/tag/1.33.3".yellow
43
- puts "🌴 You can always disable crash reports at anytime `fastlane disable_crash_reporting`".yellow
44
- puts "-------------------------------------------------------------------------------------------".yellow
45
- if agree("Do you want to enable crash reporting? (y/n) ", true)
46
- enable
47
- end
48
- end
49
-
50
- def handle_crash(ex)
51
- unless enabled?
52
- show_message
53
- return
54
- end
55
-
56
- raise ex if Helper.test?
57
- send_crash(ex)
58
- end
59
-
60
- def send_crash(ex)
61
- # https://github.com/getsentry/raven-ruby/wiki/Advanced-Configuration
62
- require 'raven'
63
- require 'json'
64
- require 'fastlane_core/crash_reporting/clean_stack_trace'
65
-
66
- Raven.configure do |config|
67
- config.dsn = URL
68
- config.logger = Logger.new('/dev/null') # we couldn't care less
69
- config.sanitize_fields = %w(server_name)
70
- config.processors << Raven::Processor::CleanStackTrace
71
- end
72
-
73
- Raven::Context.clear! # we don't want to transfer things like the host name
74
- crash = Raven.capture_exception(ex)
75
- path = "/tmp/sentry_#{crash.id}.json"
76
- File.write(path, JSON.pretty_generate(crash.to_hash))
77
- puts "Successfully submitted a crash report. If this is a problem with one of the tools specifically,".yellow
78
- puts "please submit an issue on GitHub and attach the following number to it: '#{crash.id}'".yellow
79
- puts "The crash report has been stored locally '#{path}'".yellow
80
- rescue => e
81
- UI.verbose(e) # We don't want crash reporting to cause crash
82
- end
83
- end
84
- end
85
- end