cocoapods 0.32.1 → 0.33.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +97 -1
- data/lib/cocoapods/command.rb +4 -10
- data/lib/cocoapods/command/help.rb +3 -1
- data/lib/cocoapods/command/init.rb +3 -1
- data/lib/cocoapods/command/inter_process_communication.rb +9 -5
- data/lib/cocoapods/command/lib.rb +4 -1
- data/lib/cocoapods/command/outdated.rb +64 -15
- data/lib/cocoapods/command/project.rb +9 -7
- data/lib/cocoapods/command/push.rb +5 -160
- data/lib/cocoapods/command/repo.rb +15 -4
- data/lib/cocoapods/command/repo/push.rb +199 -0
- data/lib/cocoapods/command/search.rb +3 -1
- data/lib/cocoapods/command/spec.rb +16 -6
- data/lib/cocoapods/executable.rb +1 -1
- data/lib/cocoapods/gem_version.rb +1 -1
- data/lib/cocoapods/installer.rb +31 -65
- data/lib/cocoapods/installer/user_project_integrator.rb +7 -6
- data/lib/cocoapods/sources_manager.rb +28 -5
- data/lib/cocoapods/user_interface.rb +2 -2
- data/lib/cocoapods/user_interface/error_report.rb +15 -1
- data/lib/cocoapods/validator.rb +24 -27
- metadata +85 -16
@@ -81,21 +81,22 @@ module Pod
|
|
81
81
|
#
|
82
82
|
def create_workspace
|
83
83
|
all_projects = user_project_paths.sort.push(sandbox.project_path).uniq
|
84
|
-
|
85
|
-
path.relative_path_from(workspace_path.dirname).to_s
|
84
|
+
file_references = all_projects.map do |path|
|
85
|
+
relative_path = path.relative_path_from(workspace_path.dirname).to_s
|
86
|
+
Xcodeproj::Workspace::FileReference.new(relative_path, 'group')
|
86
87
|
end
|
87
88
|
|
88
89
|
if workspace_path.exist?
|
89
90
|
workspace = Xcodeproj::Workspace.new_from_xcworkspace(workspace_path)
|
90
|
-
|
91
|
-
unless
|
92
|
-
workspace.
|
91
|
+
new_file_references = file_references - workspace.file_references
|
92
|
+
unless new_file_references.empty?
|
93
|
+
workspace.file_references.concat(new_file_references)
|
93
94
|
workspace.save_as(workspace_path)
|
94
95
|
end
|
95
96
|
|
96
97
|
else
|
97
98
|
UI.notice "From now on use `#{workspace_path.basename}`."
|
98
|
-
workspace = Xcodeproj::Workspace.new(*
|
99
|
+
workspace = Xcodeproj::Workspace.new(*file_references)
|
99
100
|
workspace.save_as(workspace_path)
|
100
101
|
end
|
101
102
|
end
|
@@ -152,8 +152,13 @@ module Pod
|
|
152
152
|
sources.each do |source|
|
153
153
|
UI.section "Updating spec repo `#{source.name}`" do
|
154
154
|
Dir.chdir(source.data_provider.repo) do
|
155
|
-
|
156
|
-
|
155
|
+
begin
|
156
|
+
output = git!("pull --ff-only")
|
157
|
+
UI.puts output if show_output && !config.verbose?
|
158
|
+
rescue Informative => e
|
159
|
+
raise Informative, 'An error occurred while performing ' \
|
160
|
+
"`git pull` on repo `#{source.name}`.\n" + e.message
|
161
|
+
end
|
157
162
|
end
|
158
163
|
check_version_information(source.data_provider.repo)
|
159
164
|
end
|
@@ -201,13 +206,16 @@ module Pod
|
|
201
206
|
min, max = versions['min'], versions['max']
|
202
207
|
version_msg = ( min == max ) ? min : "#{min} - #{max}"
|
203
208
|
raise Informative, "The `#{dir.basename}` repo requires " \
|
204
|
-
"CocoaPods #{version_msg}\n".red +
|
209
|
+
"CocoaPods #{version_msg} (currently using #{Pod::VERSION})\n".red +
|
205
210
|
"Update CocoaPods, or checkout the appropriate tag in the repo."
|
206
211
|
end
|
207
212
|
|
213
|
+
needs_sudo = path_writable?(__FILE__)
|
214
|
+
|
208
215
|
if config.new_version_message? && cocoapods_update?(versions)
|
209
216
|
UI.puts "\nCocoaPods #{versions['last']} is available.\n" \
|
210
|
-
"To update use:
|
217
|
+
"To update use: #{needs_sudo ? 'sudo ' : ''}" \
|
218
|
+
'gem install cocoapods\n'.green
|
211
219
|
end
|
212
220
|
end
|
213
221
|
|
@@ -259,7 +267,16 @@ module Pod
|
|
259
267
|
def version_information(dir)
|
260
268
|
require 'yaml'
|
261
269
|
yaml_file = dir + 'CocoaPods-version.yml'
|
262
|
-
yaml_file.exist?
|
270
|
+
return {} unless yaml_file.exist?
|
271
|
+
begin
|
272
|
+
yaml = Pathname.new(yaml_file).read
|
273
|
+
YAMLHelper.load(yaml)
|
274
|
+
rescue Informative => e
|
275
|
+
raise Informative, "There was an error reading '#{yaml_file}'.\n" \
|
276
|
+
'Please consult http://blog.cocoapods.org/' \
|
277
|
+
'Repairing-Our-Broken-Specs-Repository/ ' \
|
278
|
+
'for more information.'
|
279
|
+
end
|
263
280
|
end
|
264
281
|
|
265
282
|
public
|
@@ -284,6 +301,12 @@ module Pod
|
|
284
301
|
|
285
302
|
#-----------------------------------------------------------------------#
|
286
303
|
|
304
|
+
private
|
305
|
+
|
306
|
+
def path_writable?(path)
|
307
|
+
Pathname(path).dirname.writable?
|
308
|
+
end
|
309
|
+
|
287
310
|
end
|
288
311
|
end
|
289
312
|
end
|
@@ -184,10 +184,10 @@ module Pod
|
|
184
184
|
|
185
185
|
# Prints a message with a label.
|
186
186
|
#
|
187
|
-
def labeled(label, value)
|
187
|
+
def labeled(label, value, justification = 16)
|
188
188
|
if value
|
189
189
|
''.tap do |t|
|
190
|
-
t << " - #{label}:".ljust(
|
190
|
+
t << " - #{label}:".ljust(justification)
|
191
191
|
if value.is_a?(Array)
|
192
192
|
separator = "\n - "
|
193
193
|
puts_indented t << separator << value.join(separator)
|
@@ -45,7 +45,7 @@ Repositories : #{repo_information.join("\n ")}
|
|
45
45
|
#{'[!] Oh no, an error occurred.'.red}
|
46
46
|
#{error_from_podfile(exception)}
|
47
47
|
#{'Search for existing github issues similar to yours:'.yellow}
|
48
|
-
#{
|
48
|
+
#{issues_url(exception)}
|
49
49
|
|
50
50
|
#{'If none exists, create a ticket, with the template displayed above, on:'.yellow}
|
51
51
|
https://github.com/CocoaPods/CocoaPods/issues/new
|
@@ -57,6 +57,10 @@ EOS
|
|
57
57
|
|
58
58
|
private
|
59
59
|
|
60
|
+
def pathless_exception_message(message)
|
61
|
+
message.gsub(/- \(.*\):/, '-')
|
62
|
+
end
|
63
|
+
|
60
64
|
def markdown_podfile
|
61
65
|
return '' unless Config.instance.podfile_path && Config.instance.podfile_path.exist?
|
62
66
|
<<-EOS
|
@@ -75,6 +79,16 @@ EOS
|
|
75
79
|
end
|
76
80
|
end
|
77
81
|
|
82
|
+
def remove_color(string)
|
83
|
+
string.gsub(/\e\[(\d+)m/, '')
|
84
|
+
end
|
85
|
+
|
86
|
+
def issues_url(exception)
|
87
|
+
message = remove_color(pathless_exception_message(exception.message))
|
88
|
+
'https://github.com/CocoaPods/CocoaPods/search?q=' \
|
89
|
+
"#{CGI.escape(message)}&type=Issues"
|
90
|
+
end
|
91
|
+
|
78
92
|
def host_information
|
79
93
|
product, version, build =`sw_vers`.strip.split("\n").map { |line| line.split(":").last.strip }
|
80
94
|
"#{product} #{version} (#{build})"
|
data/lib/cocoapods/validator.rb
CHANGED
@@ -198,6 +198,9 @@ module Pod
|
|
198
198
|
def perform_extensive_analysis(spec)
|
199
199
|
validate_homepage(spec)
|
200
200
|
validate_screenshots(spec)
|
201
|
+
validate_social_media_url(spec)
|
202
|
+
validate_documentation_url(spec)
|
203
|
+
validate_docset_url(spec)
|
201
204
|
|
202
205
|
spec.available_platforms.each do |platform|
|
203
206
|
UI.message "\n\n#{spec} - Analyzing on #{platform} platform.".green.reversed
|
@@ -223,38 +226,14 @@ module Pod
|
|
223
226
|
attr_accessor :consumer
|
224
227
|
attr_accessor :subspec_name
|
225
228
|
|
226
|
-
MAX_HTTP_REDIRECTS = 3
|
227
|
-
|
228
229
|
# Performs validation of a URL
|
229
230
|
#
|
230
231
|
def validate_url(url)
|
231
|
-
|
232
|
-
|
233
|
-
begin
|
234
|
-
redirects = 0
|
235
|
-
resp = nil
|
236
|
-
loop do
|
237
|
-
resp = ::REST.head(url)
|
232
|
+
resp = Pod::HTTP::validate_url(url)
|
238
233
|
|
239
|
-
|
240
|
-
resp = ::REST.get(url)
|
241
|
-
end
|
242
|
-
|
243
|
-
if [301, 302, 303, 307, 308].include? resp.status_code
|
244
|
-
url = resp.headers['location'].first
|
245
|
-
redirects += 1
|
246
|
-
else
|
247
|
-
break
|
248
|
-
end
|
249
|
-
|
250
|
-
break unless redirects < MAX_HTTP_REDIRECTS
|
251
|
-
end
|
252
|
-
rescue
|
234
|
+
if !resp
|
253
235
|
warning "There was a problem validating the URL #{url}."
|
254
|
-
|
255
|
-
end
|
256
|
-
|
257
|
-
if resp && !resp.success?
|
236
|
+
elsif !resp.success?
|
258
237
|
warning "The URL (#{url}) is not reachable."
|
259
238
|
end
|
260
239
|
|
@@ -280,6 +259,24 @@ module Pod
|
|
280
259
|
end
|
281
260
|
end
|
282
261
|
|
262
|
+
# Performs validations related to the `social_media_url` attribute.
|
263
|
+
#
|
264
|
+
def validate_social_media_url(spec)
|
265
|
+
validate_url(spec.social_media_url) if spec.social_media_url
|
266
|
+
end
|
267
|
+
|
268
|
+
# Performs validations related to the `documentation_url` attribute.
|
269
|
+
#
|
270
|
+
def validate_documentation_url(spec)
|
271
|
+
validate_url(spec.documentation_url) if spec.documentation_url
|
272
|
+
end
|
273
|
+
|
274
|
+
# Performs validations related to the `docset_url` attribute.
|
275
|
+
#
|
276
|
+
def validate_docset_url(spec)
|
277
|
+
validate_url(spec.docset_url) if spec.docset_url
|
278
|
+
end
|
279
|
+
|
283
280
|
def setup_validation_environment
|
284
281
|
validation_dir.rmtree if validation_dir.exist?
|
285
282
|
validation_dir.mkpath
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cocoapods
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.33.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eloy Duran
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-05-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: cocoapods-core
|
@@ -17,58 +17,58 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - '='
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: 0.
|
20
|
+
version: 0.33.0
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - '='
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: 0.
|
27
|
+
version: 0.33.0
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: claide
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
32
|
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: 0.
|
34
|
+
version: 0.6.0
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
39
|
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: 0.
|
41
|
+
version: 0.6.0
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
|
-
name:
|
43
|
+
name: xcodeproj
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
46
|
- - "~>"
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version: 0.
|
48
|
+
version: 0.17.0
|
49
49
|
type: :runtime
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
53
|
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version: 0.
|
55
|
+
version: 0.17.0
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
|
-
name:
|
57
|
+
name: cocoapods-downloader
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
60
|
- - "~>"
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: 0.
|
62
|
+
version: 0.6.0
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
67
|
- - "~>"
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: 0.
|
69
|
+
version: 0.6.0
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
|
-
name: cocoapods-
|
71
|
+
name: cocoapods-plugins
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
74
|
- - "~>"
|
@@ -81,6 +81,34 @@ dependencies:
|
|
81
81
|
- - "~>"
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: 0.2.0
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: cocoapods-try
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - "~>"
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: 0.3.0
|
91
|
+
type: :runtime
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - "~>"
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: 0.3.0
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: cocoapods-trunk
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - "~>"
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: 0.1.0
|
105
|
+
type: :runtime
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - "~>"
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: 0.1.0
|
84
112
|
- !ruby/object:Gem::Dependency
|
85
113
|
name: colored
|
86
114
|
requirement: !ruby/object:Gem::Requirement
|
@@ -216,6 +244,7 @@ files:
|
|
216
244
|
- lib/cocoapods/command/project.rb
|
217
245
|
- lib/cocoapods/command/push.rb
|
218
246
|
- lib/cocoapods/command/repo.rb
|
247
|
+
- lib/cocoapods/command/repo/push.rb
|
219
248
|
- lib/cocoapods/command/search.rb
|
220
249
|
- lib/cocoapods/command/setup.rb
|
221
250
|
- lib/cocoapods/command/spec.rb
|
@@ -272,9 +301,49 @@ homepage: https://github.com/CocoaPods/CocoaPods
|
|
272
301
|
licenses:
|
273
302
|
- MIT
|
274
303
|
metadata: {}
|
275
|
-
post_install_message: "\nCHANGELOG:\n\n## 0.
|
276
|
-
|
277
|
-
\ [#
|
304
|
+
post_install_message: "\nCHANGELOG:\n\n## 0.33.0\n\n##### Breaking\n\n* The deprecated
|
305
|
+
`pre_install` and the `pod_install` hooks of the specification\n class have been
|
306
|
+
removed. \n [Fabio Pelosin][irrationalfab]\n [#2151](https://github.com/CocoaPods/CocoaPods/issues/2151)\n
|
307
|
+
\ [#2153](https://github.com/CocoaPods/CocoaPods/pull/2153)\n\n##### Enhancements\n\n*
|
308
|
+
Added the `cocoapods-trunk` plugin which introduces the `trunk` subcommand. \n
|
309
|
+
\ [Fabio Pelosin][irrationalfab]\n [#2151](https://github.com/CocoaPods/CocoaPods/issues/2151)\n
|
310
|
+
\ [#2153](https://github.com/CocoaPods/CocoaPods/pull/2153)\n\n* The `pod push`
|
311
|
+
sub-command has been moved to the `pod repo push` sub-command.\n Moreover pushing
|
312
|
+
to the master repo from it has been disabled. \n [Fabio Pelosin][irrationalfab]\n
|
313
|
+
\ [#2151](https://github.com/CocoaPods/CocoaPods/issues/2151)\n [#2153](https://github.com/CocoaPods/CocoaPods/pull/2153)\n\n*
|
314
|
+
Overhauled command line interface. Add support for auto-completion script\n (d).
|
315
|
+
If auto-completion is enabled for your shell you can configure it for\n CocoaPods
|
316
|
+
with the following command:\n\n rm -f /usr/local/share/zsh/site-functions/_pod\n
|
317
|
+
\ dpod --completion-script > /usr/local/share/zsh/site-functions/_pod\n exec
|
318
|
+
zsh\n\n Currently only the Z shell is supported. \n [Fabio Pelosin][irrationalfab]\n
|
319
|
+
\ [CLAide#25](https://github.com/CocoaPods/CLAide/issues/25)\n [CLAide#20](https://github.com/CocoaPods/CLAide/issues/20)\n
|
320
|
+
\ [CLAide#19](https://github.com/CocoaPods/CLAide/issues/19)\n [CLAide#17](https://github.com/CocoaPods/CLAide/issues/17)\n
|
321
|
+
\ [CLAide#12](https://github.com/CocoaPods/CLAide/issues/12)\n\n* The `--version`
|
322
|
+
flag is now only supported for the root `pod` command. If\n used in conjunction
|
323
|
+
with the `--verbose` flag the version of the detected\n plugins will be printed
|
324
|
+
as well. \n [Fabio Pelosin][irrationalfab]\n [CLAide#13](https://github.com/CocoaPods/CLAide/issues/13)\n
|
325
|
+
\ [CLAide#14](https://github.com/CocoaPods/CLAide/issues/14)\n\n* The extremely
|
326
|
+
meta `cocoaPods-plugins` is now installed by default providing\n information about
|
327
|
+
the available and the installed plug-ins. \n [David Grandinetti](https://github.com/dbgrandi)\n
|
328
|
+
\ [Olivier Halligon](https://github.com/AliSoftware)\n [Fabio Pelosin][irrationalfab]\n
|
329
|
+
\ [#2092](https://github.com/CocoaPods/CocoaPods/issues/2092)\n\n* Validate the
|
330
|
+
reachability of `social_media_url`, `documentation_url` and\n `docset_url` in podspecs
|
331
|
+
we while linting a specification. \n [Kyle Fuller](https://github.com/kylef)\n
|
332
|
+
\ [#2025](https://github.com/CocoaPods/CocoaPods/issues/2025)\n\n* Print the current
|
333
|
+
version when the repo/lockfile requires a higher version. \n [Samuel E. Giddins](https://github.com/segiddins)\n
|
334
|
+
\ [#2049](https://github.com/CocoaPods/CocoaPods/issues/2049)\n\n* Show `help` when
|
335
|
+
running the `pod` command instead of defaulting to `pod\n install`. \n [Kyle
|
336
|
+
Fuller](https://github.com/kylef)\n [#1771](https://github.com/CocoaPods/CocoaPods/issues/1771)\n\n#####
|
337
|
+
Bug Fixes\n\n* Show the actual executable when external commands fail. \n [Boris
|
338
|
+
Bügling][neonichu]\n [#2102](https://github.com/CocoaPods/CocoaPods/issues/2102)\n\n*
|
339
|
+
Fixed support for file references in the workspace generated by CocoaPods. \n [Kyle
|
340
|
+
Fuller][kylef]\n [Fabio Pelosin][irrationalfab]\n [Xcodeproj#105](https://github.com/CocoaPods/Xcodeproj/pull/150)\n\n*
|
341
|
+
Show a helpful error message when reading version information with merge\n conflict.
|
342
|
+
\ \n [Samuel E. Giddins][segiddins]\n [#1853](https://github.com/CocoaPods/CocoaPods/issues/1853)\n\n*
|
343
|
+
Show deprecated specs when invoking `pod outdated`. \n [Samuel E. Giddins](https://github.com/segiddins)\n
|
344
|
+
\ [#2003](https://github.com/CocoaPods/CocoaPods/issues/2003)\n\n* Fixes an issue
|
345
|
+
where `pod repo update` may start an un-committed merge. \n [Kyle Fuller][kylef]\n
|
346
|
+
\ [#2024](https://github.com/CocoaPods/CocoaPods/issues/2024)\n\n"
|
278
347
|
rdoc_options: []
|
279
348
|
require_paths:
|
280
349
|
- lib
|