cocoapods 1.10.0 → 1.11.0.beta.2

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.
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