cocoapods 1.15.1 → 1.15.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +12 -0
- data/lib/cocoapods/downloader/cache.rb +13 -72
- data/lib/cocoapods/downloader.rb +1 -1
- data/lib/cocoapods/gem_version.rb +1 -1
- data/lib/cocoapods/sandbox/pod_dir_cleaner.rb +3 -3
- metadata +4 -4
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 221a0b485c1096a87cc3a7c4e45b7cc02afefa6a90a10619040419563b97c6c5
         | 
| 4 | 
            +
              data.tar.gz: aa9eb163a2f491b051543986def45a710f554542aa358d33e364e2a3af6fcf0f
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 699ac15dbe7aab4ab3642e31d667330c66d9fbe065b27c01c2f8887fd7bf53f44a9a317bfe6f5de48ba4be3d3d8c94c5c90b826edf361fdc4ad7e8e91d8f44fb
         | 
| 7 | 
            +
              data.tar.gz: b21ecd7b90d83e2d9938c316ca7738b13d18a53e06d996c67d3e75311c98447627d9c7a3d19af924ca06d5e485a2f28ca18d2c81357e31b865fa475e30ce0182
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -4,6 +4,18 @@ 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.15.2 (2024-02-06)
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            ##### Enhancements
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            * None.  
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            ##### Bug Fixes
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            * Revert #12154, #12165, and #12158 to fix regressions in 1.15.0 and 1.15.1.  
         | 
| 16 | 
            +
              [Paul Beusterien](https://github.com/paulb777)
         | 
| 17 | 
            +
              [#12226](https://github.com/CocoaPods/CocoaPods/issues/12226)
         | 
| 18 | 
            +
             | 
| 7 19 | 
             
            ## 1.15.1 (2024-02-06)
         | 
| 8 20 |  | 
| 9 21 | 
             
            ##### Enhancements
         | 
| @@ -235,38 +235,13 @@ module Pod | |
| 235 235 | 
             
                  #         was not found in the download cache.
         | 
| 236 236 | 
             
                  #
         | 
| 237 237 | 
             
                  def uncached_pod(request)
         | 
| 238 | 
            -
                    in_tmpdir do | | 
| 239 | 
            -
                      result, podspecs = download(request,  | 
| 238 | 
            +
                    in_tmpdir do |target|
         | 
| 239 | 
            +
                      result, podspecs = download(request, target)
         | 
| 240 240 | 
             
                      result.location = nil
         | 
| 241 241 |  | 
| 242 | 
            -
                       | 
| 243 | 
            -
                      no_prep_cmd_specs, prep_cmd_specs = podspecs.partition { |_, spec| spec.prepare_command.nil? }.map(&:to_h)
         | 
| 244 | 
            -
             | 
| 245 | 
            -
                      # Pods with a prepare command currently copy the entire repo, run the prepare command against the whole
         | 
| 246 | 
            -
                      # repo and then clean it up. We configure those first to ensure the repo is pristine.
         | 
| 247 | 
            -
                      prep_cmd_specs.each do |name, spec|
         | 
| 242 | 
            +
                      podspecs.each do |name, spec|
         | 
| 248 243 | 
             
                        destination = path_for_pod(request, :name => name, :params => result.checkout_options)
         | 
| 249 | 
            -
                         | 
| 250 | 
            -
                        write_spec(spec, path_for_spec(request, :name => name, :params => result.checkout_options))
         | 
| 251 | 
            -
                        if request.name == name
         | 
| 252 | 
            -
                          result.location = destination
         | 
| 253 | 
            -
                        end
         | 
| 254 | 
            -
                      end
         | 
| 255 | 
            -
             | 
| 256 | 
            -
                      specs_by_platform = group_subspecs_by_platform(no_prep_cmd_specs.values)
         | 
| 257 | 
            -
             | 
| 258 | 
            -
                      # Remaining pods without a prepare command can be optimized by cleaning the repo first
         | 
| 259 | 
            -
                      # and then copying only the files needed.
         | 
| 260 | 
            -
                      pod_dir_cleaner = Sandbox::PodDirCleaner.new(tmp_dir, specs_by_platform)
         | 
| 261 | 
            -
                      Cache.write_lock(tmp_dir) do
         | 
| 262 | 
            -
                        pod_dir_cleaner.clean!
         | 
| 263 | 
            -
                      end
         | 
| 264 | 
            -
             | 
| 265 | 
            -
                      no_prep_cmd_specs.each do |name, spec|
         | 
| 266 | 
            -
                        destination = path_for_pod(request, :name => name, :params => result.checkout_options)
         | 
| 267 | 
            -
                        file_accessors = pod_dir_cleaner.file_accessors.select { |fa| fa.spec.root.name == spec.name }
         | 
| 268 | 
            -
                        files = Pod::Sandbox::FileAccessor.all_files(file_accessors).map(&:to_s)
         | 
| 269 | 
            -
                        copy_files(files, tmp_dir, destination)
         | 
| 244 | 
            +
                        copy_and_clean(target, destination, spec)
         | 
| 270 245 | 
             
                        write_spec(spec, path_for_spec(request, :name => name, :params => result.checkout_options))
         | 
| 271 246 | 
             
                        if request.name == name
         | 
| 272 247 | 
             
                          result.location = destination
         | 
| @@ -304,57 +279,23 @@ module Pod | |
| 304 279 | 
             
                  #
         | 
| 305 280 | 
             
                  # @return [Void]
         | 
| 306 281 | 
             
                  #
         | 
| 307 | 
            -
                  def  | 
| 308 | 
            -
                    specs_by_platform = group_subspecs_by_platform( | 
| 282 | 
            +
                  def copy_and_clean(source, destination, spec)
         | 
| 283 | 
            +
                    specs_by_platform = group_subspecs_by_platform(spec)
         | 
| 309 284 | 
             
                    destination.parent.mkpath
         | 
| 310 285 | 
             
                    Cache.write_lock(destination) do
         | 
| 311 | 
            -
                       | 
| 286 | 
            +
                      FileUtils.rm_rf(destination)
         | 
| 287 | 
            +
                      FileUtils.cp_r(source, destination)
         | 
| 312 288 | 
             
                      Pod::Installer::PodSourcePreparer.new(spec, destination).prepare!
         | 
| 313 289 | 
             
                      Sandbox::PodDirCleaner.new(destination, specs_by_platform).clean!
         | 
| 314 290 | 
             
                    end
         | 
| 315 291 | 
             
                  end
         | 
| 316 292 |  | 
| 317 | 
            -
                   | 
| 318 | 
            -
                  # `destination` directory of any files unused by `spec`. This is a faster version used when
         | 
| 319 | 
            -
                  # installing pods without a prepare command which has already happened prior.
         | 
| 320 | 
            -
                  #
         | 
| 321 | 
            -
                  # @param  [Array<Pathname>] files
         | 
| 322 | 
            -
                  #
         | 
| 323 | 
            -
                  # @param  [Pathname] source
         | 
| 324 | 
            -
                  #
         | 
| 325 | 
            -
                  # @param  [Pathname] destination
         | 
| 326 | 
            -
                  #
         | 
| 327 | 
            -
                  # @return [Void]
         | 
| 328 | 
            -
                  #
         | 
| 329 | 
            -
                  def copy_files(files, source, destination)
         | 
| 330 | 
            -
                    files = files.
         | 
| 331 | 
            -
                            map { |f| Pathname(f) }.
         | 
| 332 | 
            -
                            select { |p| p.exist? && p.file? }
         | 
| 333 | 
            -
                    destination.parent.mkpath
         | 
| 334 | 
            -
                    Cache.write_lock(destination) do
         | 
| 335 | 
            -
                      FileUtils.rm_rf(destination)
         | 
| 336 | 
            -
                      destination.mkpath
         | 
| 337 | 
            -
                      files_by_dir = files.group_by do |file|
         | 
| 338 | 
            -
                        relative_path = file.relative_path_from(source)
         | 
| 339 | 
            -
                        destination_path = File.join(destination, relative_path)
         | 
| 340 | 
            -
                        File.dirname(destination_path)
         | 
| 341 | 
            -
                      end
         | 
| 342 | 
            -
             | 
| 343 | 
            -
                      files_by_dir.each do |dir, files_to_copy|
         | 
| 344 | 
            -
                        FileUtils.mkdir_p(dir)
         | 
| 345 | 
            -
                        FileUtils.cp_r(files_to_copy, dir)
         | 
| 346 | 
            -
                      end
         | 
| 347 | 
            -
                    end
         | 
| 348 | 
            -
                  end
         | 
| 349 | 
            -
             | 
| 350 | 
            -
                  def group_subspecs_by_platform(specs)
         | 
| 293 | 
            +
                  def group_subspecs_by_platform(spec)
         | 
| 351 294 | 
             
                    specs_by_platform = {}
         | 
| 352 | 
            -
                     | 
| 353 | 
            -
                       | 
| 354 | 
            -
                         | 
| 355 | 
            -
             | 
| 356 | 
            -
                          specs_by_platform[platform] << ss
         | 
| 357 | 
            -
                        end
         | 
| 295 | 
            +
                    [spec, *spec.recursive_subspecs].each do |ss|
         | 
| 296 | 
            +
                      ss.available_platforms.each do |platform|
         | 
| 297 | 
            +
                        specs_by_platform[platform] ||= []
         | 
| 298 | 
            +
                        specs_by_platform[platform] << ss
         | 
| 358 299 | 
             
                      end
         | 
| 359 300 | 
             
                    end
         | 
| 360 301 | 
             
                    specs_by_platform
         | 
    
        data/lib/cocoapods/downloader.rb
    CHANGED
    
    | @@ -51,7 +51,7 @@ module Pod | |
| 51 51 | 
             
                  if target && result.location && target != result.location
         | 
| 52 52 | 
             
                    UI.message "Copying #{request.name} from `#{result.location}` to #{UI.path target}", '> ' do
         | 
| 53 53 | 
             
                      Cache.read_lock(result.location) do
         | 
| 54 | 
            -
                        FileUtils.rm_rf | 
| 54 | 
            +
                        FileUtils.rm_rf target
         | 
| 55 55 | 
             
                        FileUtils.cp_r(result.location, target)
         | 
| 56 56 | 
             
                      end
         | 
| 57 57 | 
             
                    end
         | 
| @@ -15,9 +15,11 @@ module Pod | |
| 15 15 | 
             
                  # @return [void]
         | 
| 16 16 | 
             
                  #
         | 
| 17 17 | 
             
                  def clean!
         | 
| 18 | 
            -
                    FileUtils.rm_rf( | 
| 18 | 
            +
                    clean_paths.each { |path| FileUtils.rm_rf(path) } if root.exist?
         | 
| 19 19 | 
             
                  end
         | 
| 20 20 |  | 
| 21 | 
            +
                  private
         | 
| 22 | 
            +
             | 
| 21 23 | 
             
                  # @return [Array<Sandbox::FileAccessor>] the file accessors for all the
         | 
| 22 24 | 
             
                  #         specifications on their respective platform.
         | 
| 23 25 | 
             
                  #
         | 
| @@ -27,8 +29,6 @@ module Pod | |
| 27 29 | 
             
                    end
         | 
| 28 30 | 
             
                  end
         | 
| 29 31 |  | 
| 30 | 
            -
                  private
         | 
| 31 | 
            -
             | 
| 32 32 | 
             
                  # @return [Sandbox::PathList] The path list for this Pod.
         | 
| 33 33 | 
             
                  #
         | 
| 34 34 | 
             
                  def path_list
         | 
    
        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.15. | 
| 4 | 
            +
              version: 1.15.2
         | 
| 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: 2024-02- | 
| 14 | 
            +
            date: 2024-02-06 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.15. | 
| 22 | 
            +
                    version: 1.15.2
         | 
| 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.15. | 
| 29 | 
            +
                    version: 1.15.2
         | 
| 30 30 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 31 31 | 
             
              name: claide
         | 
| 32 32 | 
             
              requirement: !ruby/object:Gem::Requirement
         |