cocoapods 1.10.0 → 1.11.0.beta.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +237 -5
  3. data/README.md +11 -11
  4. data/lib/cocoapods/command/outdated.rb +12 -1
  5. data/lib/cocoapods/command/repo/push.rb +17 -0
  6. data/lib/cocoapods/command/spec.rb +18 -9
  7. data/lib/cocoapods/command/spec/cat.rb +3 -1
  8. data/lib/cocoapods/command/spec/lint.rb +1 -1
  9. data/lib/cocoapods/command/spec/which.rb +3 -1
  10. data/lib/cocoapods/config.rb +1 -1
  11. data/lib/cocoapods/downloader.rb +4 -2
  12. data/lib/cocoapods/downloader/cache.rb +95 -6
  13. data/lib/cocoapods/external_sources/podspec_source.rb +1 -1
  14. data/lib/cocoapods/gem_version.rb +1 -1
  15. data/lib/cocoapods/generator/acknowledgements.rb +1 -1
  16. data/lib/cocoapods/generator/app_target_helper.rb +7 -3
  17. data/lib/cocoapods/generator/copy_dsyms_script.rb +4 -4
  18. data/lib/cocoapods/generator/copy_xcframework_script.rb +2 -18
  19. data/lib/cocoapods/generator/embed_frameworks_script.rb +2 -1
  20. data/lib/cocoapods/generator/script_phase_constants.rb +1 -0
  21. data/lib/cocoapods/installer.rb +52 -4
  22. data/lib/cocoapods/installer/analyzer.rb +12 -8
  23. data/lib/cocoapods/installer/analyzer/sandbox_analyzer.rb +31 -4
  24. data/lib/cocoapods/installer/podfile_validator.rb +2 -2
  25. data/lib/cocoapods/installer/pre_integrate_hooks_context.rb +9 -0
  26. data/lib/cocoapods/installer/project_cache/project_cache_analyzer.rb +9 -2
  27. data/lib/cocoapods/installer/project_cache/project_installation_cache.rb +15 -2
  28. data/lib/cocoapods/installer/project_cache/target_cache_key.rb +7 -4
  29. data/lib/cocoapods/installer/user_project_integrator/target_integrator.rb +149 -9
  30. data/lib/cocoapods/installer/xcode/pods_project_generator.rb +1 -1
  31. data/lib/cocoapods/installer/xcode/pods_project_generator/app_host_installer.rb +10 -3
  32. data/lib/cocoapods/installer/xcode/pods_project_generator/file_references_installer.rb +25 -6
  33. data/lib/cocoapods/installer/xcode/pods_project_generator/pod_target_dependency_installer.rb +6 -19
  34. data/lib/cocoapods/installer/xcode/pods_project_generator/pod_target_installer.rb +70 -58
  35. data/lib/cocoapods/installer/xcode/pods_project_generator/pod_target_integrator.rb +48 -6
  36. data/lib/cocoapods/installer/xcode/pods_project_generator/target_installation_result.rb +2 -2
  37. data/lib/cocoapods/installer/xcode/pods_project_generator/target_installer.rb +2 -5
  38. data/lib/cocoapods/resolver.rb +4 -4
  39. data/lib/cocoapods/sandbox/file_accessor.rb +57 -10
  40. data/lib/cocoapods/sandbox/headers_store.rb +3 -1
  41. data/lib/cocoapods/sandbox/path_list.rb +1 -1
  42. data/lib/cocoapods/sandbox/pod_dir_cleaner.rb +1 -1
  43. data/lib/cocoapods/sources_manager.rb +14 -8
  44. data/lib/cocoapods/target.rb +1 -1
  45. data/lib/cocoapods/target/aggregate_target.rb +23 -1
  46. data/lib/cocoapods/target/build_settings.rb +45 -20
  47. data/lib/cocoapods/target/pod_target.rb +47 -22
  48. data/lib/cocoapods/user_interface.rb +4 -0
  49. data/lib/cocoapods/validator.rb +25 -5
  50. data/lib/cocoapods/version_metadata.rb +1 -1
  51. data/lib/cocoapods/xcode/xcframework.rb +8 -3
  52. data/lib/cocoapods/xcode/xcframework/xcframework_slice.rb +10 -1
  53. metadata +28 -21
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 18029602b0c6762ae9758040ac419c6f06d349a572369fa9bf0345cf765d08a1
4
- data.tar.gz: c7eb15f452ae34c5478ddb4e64a75bd3e61d2b0a607503dc9cafafd4e563d915
3
+ metadata.gz: cb329667c5428edaa84a9f21d4545285f7946264581b884c1d1f6387fd0cb570
4
+ data.tar.gz: 2d0887f1665eda88c26ba2e2350b58623f381123e0487da7f120854cfbd053dd
5
5
  SHA512:
6
- metadata.gz: 7be0a083dac27cc3267cd3d671b83dad1a897c6ef0cdb09bfa61cdfb6f791ac6ea5de13bbf674df3781221901b63fe2c97f1bbd6b8d378fad594c083eeec83a5
7
- data.tar.gz: 859cb8e68cf8918c7d99066aa49589a3b3bcfc47944b3154876328724dc5b854e5accc518092275a0b130996d1428c09d9f12b4e29a22b7f9628d4c11a0c315e
6
+ metadata.gz: 821686e3f37164465545f59f337f90e28bee70c4002dab29ee85a072bff82ee1c3e57cf580638ac6b8f20d628f209940818a8adc2c397fd221bdaeac67a3f4d1
7
+ data.tar.gz: e39c20a0f708ec54aa4bc0f92610e7dda998628ae660e6a09d5c1bed072ecde3b5a8a5a696191083d62136b00fc11c42cb85c99b7aadb2811a314a70fcca4753
data/CHANGELOG.md CHANGED
@@ -4,6 +4,239 @@ To install or update CocoaPods see this [guide](https://guides.cocoapods.org/usi
4
4
 
5
5
  To install release candidates run `[sudo] gem install cocoapods --pre`
6
6
 
7
+ ## 1.11.0.beta.2 (2021-08-11)
8
+
9
+ ##### Enhancements
10
+
11
+ * Integrate ODR categories into projects.
12
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
13
+ [#10855](https://github.com/CocoaPods/CocoaPods/pull/10855)
14
+
15
+ ##### Bug Fixes
16
+
17
+ * Pass correct paths for `select_slice` method.
18
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
19
+ [#10430](https://github.com/CocoaPods/CocoaPods/issues/10430)
20
+
21
+
22
+ ## 1.11.0.beta.1 (2021-08-09)
23
+
24
+ ##### Enhancements
25
+
26
+ * Add support for integrating on demand resources.
27
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
28
+ [JunyiXie](https://github.com/JunyiXie)
29
+ [#9606](https://github.com/CocoaPods/CocoaPods/issues/9606)
30
+ [#10845](https://github.com/CocoaPods/CocoaPods/pull/10845)
31
+
32
+ * Integrate `project_header_files` specified by specs.
33
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
34
+ [#9820](https://github.com/CocoaPods/CocoaPods/issues/9820)
35
+
36
+ * Mark RealityComposer-projects (`.rcproject`) files defined in resources for compilation.
37
+ [Hendrik von Prince](https://github.com/parallaxe)
38
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
39
+ [#10793](https://github.com/CocoaPods/CocoaPods/pull/10793)
40
+
41
+ * Integrate test specs and app specs of pre-built pods.
42
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
43
+ [#10795](https://github.com/CocoaPods/CocoaPods/pull/10795)
44
+
45
+ * Add support for `before_headers` and `after_headers` script phase DSL.
46
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
47
+ [#10770](https://github.com/CocoaPods/CocoaPods/issues/10770)
48
+
49
+ * Fix touch on a missing directory for dSYM copy phase script.
50
+ [alvarollmenezes](https://github.com/alvarollmenezes)
51
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
52
+ [#10488](https://github.com/CocoaPods/CocoaPods/issues/10488)
53
+
54
+ * Check the podfile sources and plugin sources when printing warnings without explicitly using the master source.
55
+ [gonghonglou](https://github.com/gonghonglou)
56
+ [#10764](https://github.com/CocoaPods/CocoaPods/pull/10764)
57
+
58
+ * Use relative paths in copy dsyms script.
59
+ [Mickey Knox](https://github.com/knox)
60
+ [#10583](https://github.com/CocoaPods/CocoaPods/pull/10583)
61
+
62
+ * Use `OpenURI.open_uri` instead.
63
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
64
+ [#10597](https://github.com/CocoaPods/CocoaPods/issues/10597)
65
+
66
+ * Set minimum supported Ruby version to 2.6.
67
+ [Igor Makarov](https://github.com/igor-makarov)
68
+ [#10412](https://github.com/CocoaPods/CocoaPods/pull/10412)
69
+
70
+ * Improve compatibility with ActiveSupport 6
71
+ [Jun Jiang](https://github.com/jasl)
72
+ [#10364](https://github.com/CocoaPods/CocoaPods/pull/10364)
73
+
74
+ * Add a `pre_integrate_hook` API
75
+ [dcvz](https://github.com/dcvz)
76
+ [#9935](https://github.com/CocoaPods/CocoaPods/pull/9935)
77
+
78
+ * Rewrite the only place dependent on `typhoeus`.
79
+ [Jun Jiang](https://github.com/jasl), [Igor Makarov](https://github.com/igor-makarov)
80
+ [#10346](https://github.com/CocoaPods/CocoaPods/pull/10346)
81
+
82
+ * Add a `--update-sources` option to `pod repo push` so one can ensure sources are up-to-date.
83
+ [Elton Gao](https://github.com/gyfelton)
84
+ [Justin Martin](https://github.com/justinseanmartin)
85
+
86
+ * Installing a local (`:path`) pod that defines script phases will no longer
87
+ produce warnings.
88
+ [Samuel Giddins](https://github.com/segiddins)
89
+
90
+ * Allow building app & test spec targets that depend on a library that uses
91
+ Swift without requiring an empty Swift file be present.
92
+ [Samuel Giddins](https://github.com/segiddins)
93
+
94
+ * Add flag to ignore prerelease versions when reporting latest version for outdated pods.
95
+ [cltnschlosser](https://github.com/cltnschlosser)
96
+ [#9916](https://github.com/CocoaPods/CocoaPods/pull/9916)
97
+
98
+ * Add possibility to skip modulemap generation
99
+ [till0xff](https://github.com/till0xff)
100
+ [#10235](https://github.com/CocoaPods/CocoaPods/issues/10235)
101
+
102
+ * Add a `--version` option to `pod spec cat` and `pod spec which` for listing the podspec of a specific version
103
+ [pietbrauer](https://github.com/pietbrauer)
104
+ [#10609](https://github.com/CocoaPods/CocoaPods/pull/10609)
105
+
106
+ ##### Bug Fixes
107
+
108
+ * Fix resource variant groups in static frameworks
109
+ [Igor Makarov](https://github.com/igor-makarov)
110
+ [#10834](https://github.com/CocoaPods/CocoaPods/pull/10834)
111
+ [#10605](https://github.com/CocoaPods/CocoaPods/issues/10605)
112
+
113
+ * Fix adding embed frameworks script phase to unit test targets if xcframeworks are present.
114
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
115
+ [#10652](https://github.com/CocoaPods/CocoaPods/issues/10652)
116
+
117
+ * Remove unused `install_xcframework_library` code.
118
+ [Gio Lodi](https://github.com/mokagio)
119
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
120
+ [#10831](https://github.com/CocoaPods/CocoaPods/pull/10831)
121
+
122
+ * Validate vendored library names after they have been expanded.
123
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
124
+ [#10832](https://github.com/CocoaPods/CocoaPods/pull/10832)
125
+
126
+ * Place frameworks from xcframeworks into a unique folder name to avoid duplicate outputs.
127
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
128
+ [#10106](https://github.com/CocoaPods/CocoaPods/issues/10106)
129
+
130
+ * Update pod in Pods folder when changing the pod from branch to version in Podfie.
131
+ [gonghonglou](https://github.com/gonghonglou)
132
+ [#10825](https://github.com/CocoaPods/CocoaPods/pull/10825)
133
+
134
+ * Bump addressable dependency to 2.8.
135
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
136
+ [#10802](https://github.com/CocoaPods/CocoaPods/issues/10802)
137
+
138
+ * Dedup bcsymbolmap paths found from multiple vendored frameworks.
139
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
140
+ [#10373](https://github.com/CocoaPods/CocoaPods/issues/10373)
141
+
142
+ * Correctly filter dependencies for pod variants across different platforms.
143
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
144
+ [#10777](https://github.com/CocoaPods/CocoaPods/issues/10777)
145
+
146
+ * Generate default `Info.plist` for consumer app during validation.
147
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
148
+ [#8570](https://github.com/CocoaPods/CocoaPods/issues/8570)
149
+
150
+ * Fix lint subspec error when the name of subspec start with the pod name.
151
+ [XianpuMeng](https://github.com/XianpuMeng)
152
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
153
+ [#9906](https://github.com/CocoaPods/CocoaPods/issues/9906)
154
+
155
+ * Update `ruby-macho` gem version to support 1.x and 2.x.
156
+ [Eric Chamberlain](https://github.com/PeqNP)
157
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
158
+ [#10390](https://github.com/CocoaPods/CocoaPods/issues/10390)
159
+
160
+ * Respect `--configuration` option when analyzing via `pod lib lint --analyze`.
161
+ [Jenn Magder](https://github.com/jmagman)
162
+ [#10476](https://github.com/CocoaPods/CocoaPods/issues/10476)
163
+
164
+ * Do not add dependencies to 'Link Binary With Libraries' phase.
165
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
166
+ [#10133](https://github.com/CocoaPods/CocoaPods/pull/10133)
167
+
168
+ * Ensure cache integrity on concurrent installations.
169
+ [Erik Blomqvist](https://github.com/codiophile)
170
+ [#10013](https://github.com/CocoaPods/CocoaPods/issues/10013)
171
+
172
+ * Force a clean install if installation options change.
173
+ [Sebastian Shanus](https://github.com/sebastianv1)
174
+ [#10016](https://github.com/CocoaPods/CocoaPods/pull/10016)
175
+
176
+ * Correctly detect that a prebuilt pod uses Swift.
177
+ [Elton Gao](https://github.com/gyfelton)
178
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
179
+ [#8649](https://github.com/CocoaPods/CocoaPods/issues/8649)
180
+
181
+ * fix: ensure cached spec path uniq
182
+ [SolaWing](https://github.com/SolaWing)
183
+ [#10231](https://github.com/CocoaPods/CocoaPods/issues/10231)
184
+
185
+ * Set `knownRegions` on generated projects with localized resources to prevent Xcode from re-saving projects to disk.
186
+ [Eric Amorde](https://github.com/amorde)
187
+ [#10290](https://github.com/CocoaPods/CocoaPods/pull/10290)
188
+
189
+ * Serialize schemes that do not need to be rewritten by Xcode.
190
+ [Samuel Giddins](https://github.com/segiddins)
191
+
192
+
193
+ ## 1.10.2 (2021-07-28)
194
+
195
+ ##### Enhancements
196
+
197
+ * None.
198
+
199
+ ##### Bug Fixes
200
+
201
+ * Fix errors when archiving a Catalyst app which depends on a pod which uses `header_mappings_dir`.
202
+ [Thomas Goyne](https://github.com/tgoyne)
203
+ [#10224](https://github.com/CocoaPods/CocoaPods/pull/10224)
204
+
205
+ * Fix missing `-ObjC` for static XCFrameworks - take 2
206
+ [Paul Beusterien](https://github.com/paulb777)
207
+ [#10459](https://github.com/CocoaPods/CocoaPods/issuess/10459)
208
+
209
+ * Change URL validation failure to a note
210
+ [Paul Beusterien](https://github.com/paulb777)
211
+ [#10291](https://github.com/CocoaPods/CocoaPods/issues/10291)
212
+
213
+
214
+ ## 1.10.1 (2021-01-07)
215
+
216
+ ##### Enhancements
217
+
218
+ * None.
219
+
220
+ ##### Bug Fixes
221
+
222
+ * Fix library name in LD `-l` flags for XCFrameworks containing libraries
223
+ [Wes Campaigne](https://github.com/Westacular)
224
+ [#10165](https://github.com/CocoaPods/CocoaPods/issues/10165)
225
+
226
+ * Fix file extension replacement for resource paths when using static frameworks.
227
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
228
+ [#10206](https://github.com/CocoaPods/CocoaPods/issues/10206)
229
+
230
+ * Fix processing of xcassets resources when pod target is static framework
231
+ [Federico Trimboli](https://github.com/fedetrim)
232
+ [#10175](https://github.com/CocoaPods/CocoaPods/pull/10175)
233
+ [#10170](https://github.com/CocoaPods/CocoaPods/issues/10170)
234
+
235
+ * Fix missing `-ObjC` for static XCFrameworks
236
+ [Paul Beusterien](https://github.com/paulb777)
237
+ [#10234](https://github.com/CocoaPods/CocoaPods/pull/10234)
238
+
239
+
7
240
  ## 1.10.0 (2020-10-20)
8
241
 
9
242
  ##### Enhancements
@@ -16,7 +249,7 @@ To install release candidates run `[sudo] gem install cocoapods --pre`
16
249
  [Wes Campaigne](https://github.com/Westacular)
17
250
  [#10071](https://github.com/CocoaPods/CocoaPods/issues/10071)
18
251
 
19
- * Add support for automatically embeddeding XCFramework debug symbols for XCFrameworks generated with Xcode 12
252
+ * Add support for automatically embedding XCFramework debug symbols for XCFrameworks generated with Xcode 12
20
253
  [johntmcintosh](https://github.com/johntmcintosh)
21
254
  [#10111](https://github.com/CocoaPods/CocoaPods/issues/10111)
22
255
 
@@ -91,12 +324,11 @@ To install release candidates run `[sudo] gem install cocoapods --pre`
91
324
  [Gereon Steffens](https://github.com/gereons)
92
325
  [#9686](https://github.com/CocoaPods/CocoaPods/issues/9686)
93
326
 
94
- * Add a post_integrate_hook API
327
+ * Add a `post_integrate_hook` API
95
328
  [lucasmpaim](https://github.com/lucasmpaim)
96
329
  [#7432](https://github.com/CocoaPods/CocoaPods/issues/7432)
97
330
 
98
- * Set the `BUILD_LIBRARY_FOR_DISTRIBUTION` build setting if integrating with
99
- a target that has the setting set to `YES` (directly or in an .xcconfig).
331
+ * Set the `BUILD_LIBRARY_FOR_DISTRIBUTION` build setting if integrating with a target that has the setting set to `YES`.
100
332
  [Juanjo López](https://github.com/juanjonol)
101
333
  [#9232](https://github.com/CocoaPods/CocoaPods/issues/9232)
102
334
 
@@ -104,7 +336,7 @@ To install release candidates run `[sudo] gem install cocoapods --pre`
104
336
  [Paul Beusterien](https://github.com/paulb777)
105
337
  [#9392](https://github.com/CocoaPods/CocoaPods/pull/9392)
106
338
 
107
- * Add --use-static-frameworks lint option
339
+ * Add `--use-static-frameworks` lint option
108
340
  [Paul Beusterien](https://github.com/paulb777)
109
341
  [#9632](https://github.com/CocoaPods/CocoaPods/pull/9632)
110
342
 
data/README.md CHANGED
@@ -2,8 +2,8 @@
2
2
 
3
3
  ### CocoaPods: The Cocoa dependency manager
4
4
 
5
- [![Build Status](http://img.shields.io/travis/CocoaPods/CocoaPods/master.svg?style=flat)](https://travis-ci.org/CocoaPods/CocoaPods)
6
- [![Gem Version](http://img.shields.io/gem/v/cocoapods.svg?style=flat)](http://badge.fury.io/rb/cocoapods)
5
+ [![Build Status](https://img.shields.io/github/workflow/status/CocoaPods/CocoaPods/Specs)](https://github.com/CocoaPods/CocoaPods/actions)
6
+ [![Gem Version](https://img.shields.io/gem/v/cocoapods)](https://rubygems.org/gems/cocoapods)
7
7
  [![Maintainability](https://api.codeclimate.com/v1/badges/8f0fe544baf2ae1acc2b/maintainability)](https://codeclimate.com/github/CocoaPods/CocoaPods/maintainability)
8
8
  [![Test Coverage](https://api.codeclimate.com/v1/badges/8f0fe544baf2ae1acc2b/test_coverage)](https://codeclimate.com/github/CocoaPods/CocoaPods/test_coverage)
9
9
 
@@ -70,13 +70,13 @@ contributor [code of conduct](CODE_OF_CONDUCT.md).
70
70
 
71
71
  CocoaPods is composed of the following projects:
72
72
 
73
- | Status | Project | Description | Info |
74
- | :----- | :------ | :--- | :--- |
75
- | [![Build Status](http://img.shields.io/travis/CocoaPods/CocoaPods/master.svg?style=flat)](https://travis-ci.org/CocoaPods/CocoaPods) | [CocoaPods](https://github.com/CocoaPods/CocoaPods) | The CocoaPods command line tool. | [guides](https://guides.cocoapods.org)
76
- | [![Build Status](http://img.shields.io/travis/CocoaPods/Core/master.svg?style=flat)](https://travis-ci.org/CocoaPods/Core) | [CocoaPods Core](https://github.com/CocoaPods/Core) | Support for working with specifications and podfiles. | [docs](https://guides.cocoapods.org/contributing/components.html)
77
- | [![Build Status](http://img.shields.io/travis/CocoaPods/cocoapods-downloader/master.svg?style=flat)](https://travis-ci.org/CocoaPods/cocoapods-downloader) |[CocoaPods Downloader](https://github.com/CocoaPods/cocoapods-downloader) | Downloaders for various source types. | [docs](https://www.rubydoc.info/gems/cocoapods-downloader)
78
- | [![Build Status](http://img.shields.io/travis/CocoaPods/Xcodeproj/master.svg?style=flat)](https://travis-ci.org/CocoaPods/Xcodeproj) | [Xcodeproj](https://github.com/CocoaPods/Xcodeproj) | Create and modify Xcode projects from Ruby. | [docs](https://www.rubydoc.info/gems/xcodeproj)
79
- | [![Build Status](http://img.shields.io/travis/CocoaPods/CLAide/master.svg?style=flat)](https://travis-ci.org/CocoaPods/CLAide) | [CLAide](https://github.com/CocoaPods/CLAide) | A small command-line interface framework. | [docs](https://www.rubydoc.info/gems/claide)
80
- | [![Build Status](http://img.shields.io/travis/CocoaPods/Molinillo/master.svg?style=flat)](https://travis-ci.org/CocoaPods/Molinillo) | [Molinillo](https://github.com/CocoaPods/Molinillo) | A powerful generic dependency resolver. | [docs](https://www.rubydoc.info/gems/molinillo)
81
- | [![Build Status](http://img.shields.io/travis/CocoaPods/CocoaPods-app/master.svg?style=flat)](https://travis-ci.org/CocoaPods/CocoaPods-app) | [CocoaPods.app](https://github.com/CocoaPods/CocoaPods-app) | A full-featured and standalone installation of CocoaPods. | [info](https://cocoapods.org/app)
73
+ | Status | Project | Description | Info |
74
+ | :-------- | :------ | :--- | :--- |
75
+ | [![Build Status](https://img.shields.io/github/workflow/status/CocoaPods/CocoaPods/Specs)](https://github.com/CocoaPods/CocoaPods/actions) | [CocoaPods](https://github.com/CocoaPods/CocoaPods) | The CocoaPods command line tool. | [guides](https://guides.cocoapods.org)
76
+ | [![Build Status](https://img.shields.io/github/workflow/status/CocoaPods/Core/Specs)](https://github.com/CocoaPods/Core/actions) | [CocoaPods Core](https://github.com/CocoaPods/Core) | Support for working with specifications and podfiles. | [docs](https://guides.cocoapods.org/contributing/components.html)
77
+ | [![Build Status](https://img.shields.io/travis/CocoaPods/cocoapods-downloader/master.svg?style=flat)](https://travis-ci.org/CocoaPods/cocoapods-downloader) |[CocoaPods Downloader](https://github.com/CocoaPods/cocoapods-downloader) | Downloaders for various source types. | [docs](https://www.rubydoc.info/gems/cocoapods-downloader)
78
+ | [![Build Status](https://img.shields.io/travis/CocoaPods/Xcodeproj/master.svg?style=flat)](https://travis-ci.org/CocoaPods/Xcodeproj) | [Xcodeproj](https://github.com/CocoaPods/Xcodeproj) | Create and modify Xcode projects from Ruby. | [docs](https://www.rubydoc.info/gems/xcodeproj)
79
+ | [![Build Status](https://img.shields.io/travis/CocoaPods/CLAide/master.svg?style=flat)](https://travis-ci.org/CocoaPods/CLAide) | [CLAide](https://github.com/CocoaPods/CLAide) | A small command-line interface framework. | [docs](https://www.rubydoc.info/gems/claide)
80
+ | [![Build Status](https://img.shields.io/travis/CocoaPods/Molinillo/master.svg?style=flat)](https://travis-ci.org/CocoaPods/Molinillo) | [Molinillo](https://github.com/CocoaPods/Molinillo) | A powerful generic dependency resolver. | [docs](https://www.rubydoc.info/gems/molinillo)
81
+ | [![Build Status](https://img.shields.io/travis/CocoaPods/CocoaPods-app/master.svg?style=flat)](https://travis-ci.org/CocoaPods/CocoaPods-app) | [CocoaPods.app](https://github.com/CocoaPods/CocoaPods-app) | A full-featured and standalone installation of CocoaPods. | [info](https://cocoapods.org/app)
82
82
  | | [Master Repo ](https://github.com/CocoaPods/Specs) | Master repository of specifications. | [guides](https://guides.cocoapods.org/making/specs-and-specs-repo.html)
@@ -11,6 +11,17 @@ module Pod
11
11
  spec repos, not those from local/external sources.
12
12
  DESC
13
13
 
14
+ def self.options
15
+ [
16
+ ['--ignore-prerelease', "Don't consider prerelease versions to be updates"],
17
+ ].concat(super)
18
+ end
19
+
20
+ def initialize(argv)
21
+ @ignore_prerelease = argv.flag?('ignore-prerelease')
22
+ super
23
+ end
24
+
14
25
  # Run the command
15
26
  #
16
27
  def run
@@ -67,7 +78,7 @@ module Pod
67
78
  ensure_external_podspecs_present!
68
79
  spec_sets.map do |set|
69
80
  spec = set.specification
70
- source_version = set.versions.first
81
+ source_version = set.versions.find { |version| !@ignore_prerelease || !version.prerelease? }
71
82
  pod_name = spec.root.name
72
83
  lockfile_version = lockfile.version(pod_name)
73
84
  if source_version > lockfile_version
@@ -37,6 +37,7 @@ module Pod
37
37
  ['--swift-version=VERSION', 'The `SWIFT_VERSION` that should be used when linting the spec. ' \
38
38
  'This takes precedence over the Swift versions specified by the spec or a `.swift-version` file'],
39
39
  ['--no-overwrite', 'Disallow pushing that would overwrite an existing spec'],
40
+ ['--update-sources', 'Make sure sources are up-to-date before a push'],
40
41
  ].concat(super)
41
42
  end
42
43
 
@@ -46,6 +47,7 @@ module Pod
46
47
  @repo = argv.shift_argument
47
48
  @source = source_for_repo
48
49
  @source_urls = argv.option('sources', config.sources_manager.all.map(&:url).append(Pod::TrunkSource::TRUNK_REPO_URL).uniq.join(',')).split(',')
50
+ @update_sources = argv.flag?('update-sources')
49
51
  @podspec = argv.shift_argument
50
52
  @use_frameworks = !argv.flag?('use-libraries')
51
53
  @use_modular_headers = argv.flag?('use-modular-headers', false)
@@ -73,6 +75,7 @@ module Pod
73
75
  def run
74
76
  open_editor if @commit_message && @message.nil?
75
77
  check_if_push_allowed
78
+ update_sources if @update_sources
76
79
  validate_podspec_files
77
80
  check_repo_status
78
81
  update_repo
@@ -177,6 +180,20 @@ module Pod
177
180
  git!(%W(-C #{repo_dir} pull))
178
181
  end
179
182
 
183
+ # Update sources if present
184
+ #
185
+ # @return [void]
186
+ #
187
+ def update_sources
188
+ return if @source_urls.nil?
189
+ @source_urls.each do |source_url|
190
+ source = config.sources_manager.source_with_name_or_url(source_url)
191
+ dir = source.specs_dir
192
+ UI.puts "Updating a source at #{dir} for #{source}"
193
+ git!(%W(-C #{dir} pull))
194
+ end
195
+ end
196
+
180
197
  # Commits the podspecs to the source, which should be a git repo.
181
198
  #
182
199
  # @note The pre commit hook of the repo is skipped as the podspecs have
@@ -33,13 +33,14 @@ module Pod
33
33
  # @param [String] spec
34
34
  # The name of the specification.
35
35
  #
36
- # @param [Bool] show_all
37
- # Whether the paths for all the versions should be returned or
38
- # only the one for the last version.
36
+ # @param [Bool,String] version_filter
37
+ # - If set to false, will return only the spec path for the latest version (the default).
38
+ # - If set to true, will return a list of all paths of all the versions of that spec.
39
+ # - If set to a String, will return only the spec path for the version specified by that string.
39
40
  #
40
41
  # @return [Pathname] the absolute path or paths of the given podspec
41
42
  #
42
- def get_path_of_spec(spec, show_all = false)
43
+ def get_path_of_spec(spec, version_filter = false)
43
44
  sets = config.sources_manager.search_by_name(spec)
44
45
 
45
46
  if sets.count == 1
@@ -51,12 +52,14 @@ module Pod
51
52
  raise Informative, "More than one spec found for '#{spec}':\n#{names}"
52
53
  end
53
54
 
54
- unless show_all
55
+ if version_filter.is_a? String
56
+ all_paths_from_set(set, version_filter).split(/\n/).first
57
+ elsif version_filter == true
58
+ all_paths_from_set(set)
59
+ else
55
60
  best_spec, spec_source = spec_and_source_from_set(set)
56
- return pathname_from_spec(best_spec, spec_source)
61
+ pathname_from_spec(best_spec, spec_source)
57
62
  end
58
-
59
- all_paths_from_set(set)
60
63
  end
61
64
 
62
65
  # @return [Pathname] the absolute path of the given spec and source
@@ -67,7 +70,7 @@ module Pod
67
70
 
68
71
  # @return [String] of spec paths one on each line
69
72
  #
70
- def all_paths_from_set(set)
73
+ def all_paths_from_set(set, specific_version = nil)
71
74
  paths = ''
72
75
 
73
76
  sources = set.sources
@@ -75,12 +78,18 @@ module Pod
75
78
  sources.each do |source|
76
79
  versions = source.versions(set.name)
77
80
 
81
+ if specific_version
82
+ versions = versions.select { |v| v.version == specific_version }
83
+ end
84
+
78
85
  versions.each do |version|
79
86
  spec = source.specification(set.name, version)
80
87
  paths += "#{pathname_from_spec(spec, source)}\n"
81
88
  end
82
89
  end
83
90
 
91
+ raise Informative, "Can't find spec for #{set.name}." if paths.empty?
92
+
84
93
  paths
85
94
  end
86
95