cocoapods 1.3.0.rc.1 → 1.3.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 +20 -0
- data/lib/cocoapods/command/repo/push.rb +3 -0
- data/lib/cocoapods/gem_version.rb +1 -1
- data/lib/cocoapods/generator/xcconfig/pod_xcconfig.rb +3 -3
- data/lib/cocoapods/installer/analyzer.rb +26 -9
- data/lib/cocoapods/installer/pods_project_integrator/pod_target_integrator.rb +2 -2
- data/lib/cocoapods/installer/xcode/pods_project_generator.rb +1 -1
- data/lib/cocoapods/installer/xcode/pods_project_generator/pod_target_installer.rb +2 -2
- data/lib/cocoapods/target/pod_target.rb +31 -5
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5f6244748bfc3f969fcc793ec3334896af97bd5d
|
4
|
+
data.tar.gz: 3ae66b4c08893dc13fa0acad1fc5c4ec67719d4b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: caae7644d08c46b119981dd8579666934e185728e5da12614f6c57188a8f2e9b33dbba64c49ec977be9fed9a8a1f181165c48ad78decb412e97b415c288372e9
|
7
|
+
data.tar.gz: 0d29a3ed010d12a8550cbe9f0f7c04da1c92aacdd7c75996cc2a7203b6969f38566fdcd8ed7f5a523fc8d1ede01a34a5e62795b2fa40f6ba0e6ce96c92738803
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,26 @@ To install or update CocoaPods see this [guide](http://docs.cocoapods.org/guides
|
|
4
4
|
|
5
5
|
To install release candidates run `[sudo] gem install cocoapods --pre`
|
6
6
|
|
7
|
+
## 1.3.0 (2017-08-02)
|
8
|
+
|
9
|
+
##### Enhancements
|
10
|
+
|
11
|
+
* None.
|
12
|
+
|
13
|
+
##### Bug Fixes
|
14
|
+
|
15
|
+
* Ensure transitive dependencies are linked to test targets
|
16
|
+
[Dimitris Koutsogiorgas](https://github.com/dnkoutso)
|
17
|
+
[#6917](https://github.com/CocoaPods/CocoaPods/pull/6917)
|
18
|
+
|
19
|
+
* Properly install pod targets with test specs within subspecs
|
20
|
+
[Dimitris Koutsogiorgas](https://github.com/dnkoutso)
|
21
|
+
[#6915](https://github.com/CocoaPods/CocoaPods/pull/6915)
|
22
|
+
|
23
|
+
* Add `--skip-tests` support `push` to push command
|
24
|
+
[Dimitris Koutsogiorgas](https://github.com/dnkoutso)
|
25
|
+
[#6893](https://github.com/CocoaPods/CocoaPods/pull/6893)
|
26
|
+
|
7
27
|
## 1.3.0.rc.1 (2017-07-27)
|
8
28
|
|
9
29
|
##### Enhancements
|
@@ -30,6 +30,7 @@ module Pod
|
|
30
30
|
['--local-only', 'Does not perform the step of pushing REPO to its remote'],
|
31
31
|
['--no-private', 'Lint includes checks that apply only to public repos'],
|
32
32
|
['--skip-import-validation', 'Lint skips validating that the pod can be imported'],
|
33
|
+
['--skip-tests', 'Lint skips building and running tests during validation'],
|
33
34
|
['--commit-message="Fix bug in pod"', 'Add custom commit message. ' \
|
34
35
|
'Opens default editor if no commit message is specified.'],
|
35
36
|
['--use-json', 'Push JSON spec to repo'],
|
@@ -52,6 +53,7 @@ module Pod
|
|
52
53
|
@use_json = argv.flag?('use-json')
|
53
54
|
@swift_version = argv.option('swift-version', nil)
|
54
55
|
@skip_import_validation = argv.flag?('skip-import-validation', false)
|
56
|
+
@skip_tests = argv.flag?('skip-tests', false)
|
55
57
|
super
|
56
58
|
end
|
57
59
|
|
@@ -130,6 +132,7 @@ module Pod
|
|
130
132
|
validator.ignore_public_only_results = @private
|
131
133
|
validator.swift_version = @swift_version
|
132
134
|
validator.skip_import_validation = @skip_import_validation
|
135
|
+
validator.skip_tests = @skip_tests
|
133
136
|
begin
|
134
137
|
validator.validate
|
135
138
|
rescue => e
|
@@ -72,10 +72,10 @@ module Pod
|
|
72
72
|
recursive_dependent_targets = target.recursive_dependent_targets
|
73
73
|
@xcconfig.merge! XCConfigHelper.settings_for_dependent_targets(target, recursive_dependent_targets, @test_xcconfig)
|
74
74
|
if @test_xcconfig
|
75
|
-
test_dependent_targets = [target, *target.
|
75
|
+
test_dependent_targets = [target, *target.recursive_test_dependent_targets].uniq
|
76
76
|
@xcconfig.merge! XCConfigHelper.settings_for_dependent_targets(target, test_dependent_targets - recursive_dependent_targets, @test_xcconfig)
|
77
|
-
XCConfigHelper.generate_vendored_build_settings(nil,
|
78
|
-
XCConfigHelper.generate_other_ld_flags(nil,
|
77
|
+
XCConfigHelper.generate_vendored_build_settings(nil, target.all_test_dependent_targets, @xcconfig)
|
78
|
+
XCConfigHelper.generate_other_ld_flags(nil, target.all_test_dependent_targets, @xcconfig)
|
79
79
|
XCConfigHelper.generate_ld_runpath_search_paths(target, false, true, @xcconfig)
|
80
80
|
end
|
81
81
|
@xcconfig
|
@@ -429,17 +429,28 @@ module Pod
|
|
429
429
|
end
|
430
430
|
end
|
431
431
|
|
432
|
-
target.pod_targets = pod_targets
|
433
|
-
target_definition_included = pod_target.target_definitions.include?(target_definition)
|
434
|
-
explicitly_defined_in_target_definition = target_definition.non_inherited_dependencies.map(&:name).include?(pod_target.name)
|
435
|
-
next false unless target_definition_included
|
436
|
-
next true if explicitly_defined_in_target_definition
|
437
|
-
!pod_target_test_only?(pod_target, pod_targets)
|
438
|
-
end
|
432
|
+
target.pod_targets = filter_pod_targets_for_target_definition(pod_targets, target_definition)
|
439
433
|
|
440
434
|
target
|
441
435
|
end
|
442
436
|
|
437
|
+
# Returns a filtered list of pod targets that should or should not be part of the target definition. Pod targets
|
438
|
+
# used by tests only are filtered.
|
439
|
+
#
|
440
|
+
# @param [Array<PodTarget>] pod_targets
|
441
|
+
# the array of pod targets to check against
|
442
|
+
#
|
443
|
+
# @param [TargetDefinition] target_definition
|
444
|
+
# the target definition to use as the base for filtering
|
445
|
+
#
|
446
|
+
# @return [Array<PodTarget>] the filtered list of pod targets.
|
447
|
+
#
|
448
|
+
def filter_pod_targets_for_target_definition(pod_targets, target_definition)
|
449
|
+
pod_targets.select do |pod_target|
|
450
|
+
pod_target.target_definitions.include?(target_definition) && !pod_target_test_only?(pod_target, pod_targets)
|
451
|
+
end
|
452
|
+
end
|
453
|
+
|
443
454
|
# Returns true if a pod target is only used by other pod targets as a test dependency and therefore should
|
444
455
|
# not be included as part of the aggregate target.
|
445
456
|
#
|
@@ -457,8 +468,12 @@ module Pod
|
|
457
468
|
if @test_pod_target_analyzer_cache.key?(key)
|
458
469
|
return @test_pod_target_analyzer_cache[key]
|
459
470
|
end
|
460
|
-
source = pod_targets.any?
|
461
|
-
|
471
|
+
source = pod_targets.any? do |pt|
|
472
|
+
pt.dependent_targets.map(&:name).include?(name)
|
473
|
+
end
|
474
|
+
test = pod_targets.any? do |pt|
|
475
|
+
pt.test_dependent_targets.reject { |dpt| dpt.name == pt.name }.map(&:name).include?(name)
|
476
|
+
end
|
462
477
|
@test_pod_target_analyzer_cache[key] = !source && test
|
463
478
|
end
|
464
479
|
|
@@ -498,6 +513,7 @@ module Pod
|
|
498
513
|
pod_targets.each do |target|
|
499
514
|
dependencies = transitive_dependencies_for_specs(target.specs.reject(&:test_specification?), target.platform, all_specs).group_by(&:root)
|
500
515
|
test_dependencies = transitive_dependencies_for_specs(target.specs.select(&:test_specification?), target.platform, all_specs).group_by(&:root)
|
516
|
+
test_dependencies.delete_if { |k| dependencies.key? k }
|
501
517
|
target.dependent_targets = filter_dependencies(dependencies, pod_targets_by_name, target)
|
502
518
|
target.test_dependent_targets = filter_dependencies(test_dependencies, pod_targets_by_name, target)
|
503
519
|
end
|
@@ -512,6 +528,7 @@ module Pod
|
|
512
528
|
pod_targets.each do |target|
|
513
529
|
dependencies = transitive_dependencies_for_specs(target.specs, target.platform, specs).group_by(&:root)
|
514
530
|
test_dependencies = transitive_dependencies_for_specs(target.specs.select(&:test_specification?), target.platform, all_specs).group_by(&:root)
|
531
|
+
test_dependencies.delete_if { |k| dependencies.key? k }
|
515
532
|
target.dependent_targets = pod_targets.reject { |t| dependencies[t.root_spec].nil? }
|
516
533
|
target.test_dependent_targets = pod_targets.reject { |t| test_dependencies[t.root_spec].nil? }
|
517
534
|
end
|
@@ -47,7 +47,7 @@ module Pod
|
|
47
47
|
def add_copy_resources_script_phase(native_target)
|
48
48
|
test_type = target.test_type_for_product_type(native_target.symbol_type)
|
49
49
|
script_path = "${PODS_ROOT}/#{target.copy_resources_script_path_for_test_type(test_type).relative_path_from(target.sandbox.root)}"
|
50
|
-
resource_paths =
|
50
|
+
resource_paths = target.all_test_dependent_targets.flat_map(&:resource_paths)
|
51
51
|
input_paths = []
|
52
52
|
output_paths = []
|
53
53
|
unless resource_paths.empty?
|
@@ -64,7 +64,7 @@ module Pod
|
|
64
64
|
def add_embed_frameworks_script_phase(native_target)
|
65
65
|
test_type = target.test_type_for_product_type(native_target.symbol_type)
|
66
66
|
script_path = "${PODS_ROOT}/#{target.embed_frameworks_script_path_for_test_type(test_type).relative_path_from(target.sandbox.root)}"
|
67
|
-
framework_paths =
|
67
|
+
framework_paths = target.all_test_dependent_targets.flat_map(&:framework_paths)
|
68
68
|
input_paths = []
|
69
69
|
output_paths = []
|
70
70
|
unless framework_paths.empty?
|
@@ -266,7 +266,7 @@ module Pod
|
|
266
266
|
private
|
267
267
|
|
268
268
|
def add_pod_target_test_dependencies(pod_target, frameworks_group)
|
269
|
-
test_dependent_targets =
|
269
|
+
test_dependent_targets = pod_target.all_test_dependent_targets
|
270
270
|
pod_target.test_native_targets.each do |test_native_target|
|
271
271
|
test_dependent_targets.reject(&:should_build?).each do |test_dependent_target|
|
272
272
|
add_resource_bundles_to_native_target(test_dependent_target, test_native_target)
|
@@ -333,7 +333,7 @@ module Pod
|
|
333
333
|
#
|
334
334
|
def create_test_target_copy_resources_script(test_type)
|
335
335
|
path = target.copy_resources_script_path_for_test_type(test_type)
|
336
|
-
pod_targets =
|
336
|
+
pod_targets = target.all_test_dependent_targets
|
337
337
|
resource_paths_by_config = { 'Debug' => pod_targets.flat_map(&:resource_paths) }
|
338
338
|
generator = Generator::CopyResourcesScript.new(resource_paths_by_config, target.platform)
|
339
339
|
update_changed_file(generator, path)
|
@@ -349,7 +349,7 @@ module Pod
|
|
349
349
|
#
|
350
350
|
def create_test_target_embed_frameworks_script(test_type)
|
351
351
|
path = target.embed_frameworks_script_path_for_test_type(test_type)
|
352
|
-
pod_targets =
|
352
|
+
pod_targets = target.all_test_dependent_targets
|
353
353
|
framework_paths_by_config = { 'Debug' => pod_targets.flat_map(&:framework_paths) }
|
354
354
|
generator = Generator::EmbedFrameworksScript.new(framework_paths_by_config)
|
355
355
|
update_changed_file(generator, path)
|
@@ -355,15 +355,41 @@ module Pod
|
|
355
355
|
# dependency upon.
|
356
356
|
#
|
357
357
|
def recursive_dependent_targets
|
358
|
-
|
358
|
+
@recursive_dependent_targets ||= begin
|
359
|
+
targets = dependent_targets.clone
|
359
360
|
|
360
|
-
|
361
|
-
|
362
|
-
|
361
|
+
targets.each do |target|
|
362
|
+
target.dependent_targets.each do |t|
|
363
|
+
targets.push(t) unless t == self || targets.include?(t)
|
364
|
+
end
|
363
365
|
end
|
366
|
+
|
367
|
+
targets
|
364
368
|
end
|
369
|
+
end
|
365
370
|
|
366
|
-
|
371
|
+
# @return [Array<PodTarget>] the recursive targets that this target has a
|
372
|
+
# test dependency upon.
|
373
|
+
#
|
374
|
+
def recursive_test_dependent_targets
|
375
|
+
@recursive_test_dependent_targets ||= begin
|
376
|
+
targets = test_dependent_targets.clone
|
377
|
+
|
378
|
+
targets.each do |target|
|
379
|
+
target.test_dependent_targets.each do |t|
|
380
|
+
targets.push(t) unless t == self || targets.include?(t)
|
381
|
+
end
|
382
|
+
end
|
383
|
+
|
384
|
+
targets
|
385
|
+
end
|
386
|
+
end
|
387
|
+
|
388
|
+
# @return [Array<PodTarget>] the canonical list of test dependent targets this target has a dependency upon.
|
389
|
+
# This includes the parent target as well as its transitive dependencies.
|
390
|
+
#
|
391
|
+
def all_test_dependent_targets
|
392
|
+
[self, *recursive_dependent_targets, *recursive_test_dependent_targets].uniq
|
367
393
|
end
|
368
394
|
|
369
395
|
# Checks if the target should be included in the build configuration with
|
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: 1.3.0
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eloy Duran
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2017-
|
14
|
+
date: 2017-08-02 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: cocoapods-core
|
@@ -19,14 +19,14 @@ dependencies:
|
|
19
19
|
requirements:
|
20
20
|
- - '='
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 1.3.0
|
22
|
+
version: 1.3.0
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - '='
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 1.3.0
|
29
|
+
version: 1.3.0
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: claide
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|