Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

This repo needs updating.

For most contributions you can just fork instead. Don't attempt rake bootstrap. You could run into all sorts of ruby and rake versioning issues.

CocoaPods Rainforest

Build Status

To effectively farm CocoaPods, trees are needed (the gems), and those trees need a special and unique habitat to flourish: the Rainforest.

This repository allows you to automate the tasks necessary to develop CocoaPods. In detail, the following tasks can be performed from a centralised location:

  • Clone all repositories containing gems.
  • Centralise bootstrapping of all the repositories.
  • Switch to SSH URLs.
  • Set up Bundler's Local Git Repos feature.
  • Pull of all the repositories.
  • Check the status of each repository, scanning for dirty working copies or gems which should be released.


To get started, simply run:

$ git clone
$ cd Rainforest
$ rake bootstrap

To check that the setup process worked, you can run the following command:

$ cd Rainforest
$ CocoaPods/bin/pod --help

The above means that you can use the checked out version of CocoaPods for development and that you can experiment with your changes directly. If you would like CocoaPods to pick up the changes of the other checked out dependencies, you can use the local git repos features of Bundler:

$ rake local_dependencies_set

Finally, to see all the available tasks, run:

$ rake -T

Useful tasks

  • rake pull: Pulls all the repos and updates the submodules.
  • rake cleanup: Performs safe cleanup operations, like deleting merged branches.
  • rake status: Prints the repositories with unmerged branches or a dirty. working copy and lists the gems with commits after the last release.
  • rake issues: Gets the count of the open issues.

Tasks for the Core team

  • rake clone_all: Clones all the CocoaPods repositories.
  • rake switch_to_ssh: If SSH is your fancy.
  • rake issues: Prints the count of the open issues for each gem.
  • rake release[gem_dir]: Releases the gem with the given name.
  • update_rubocop_configuration[gem_dir]: Update the shared CocoaPods RuboCop configuration for the given repo or for all the repos.

Release Configuration



All CocoaPods development happens on GitHub; there is a repository for CocoaPods and one for the CocoaPods specs. Contributing patches or Pods is really easy and gratifying.

Follow @CocoaPods to get up to date information about what's going on in the CocoaPods world.


This gem and CocoaPods are available under the MIT license.


Automate the tasks necessary to develop on CocoaPods






No releases published


No packages published