21 May 2014
Follow @fabiopelosinTL;DR: CocoaPods 0.33 has been released. It is shiny and brings a huge change for our community… the support for CocoaPods Trunk.
New command line UI
The help banners of the command line have been tuned:
- Each element now is consistently identified by a single colour. The highlighting is also performed in the descriptions of the commands to make them more readable.
- The alignment of the various elements and of their description has been carefully crafted.
- The descriptions and other bodies of text now are consistently wrapped to the width of the terminal (or to a maximum value to preserve readability for full screen windows).
There is still some debate about how to handle light backgrounds. So if you have a well-construed argument share your view on CocoaPods#2159.
Another interesting enhancement is the inclusion of a suggestion for unrecognised arguments, which makes typos much easier to catch.
Finally, a galore of minor tweaks have been implemented:
- The naked
pod
command doesn’t default topod install
anymore because it presented an error if the Podfile was not found. This context dependant behaviour was not the experience we are looking for our new users. - The
--version
option is not available anymore in sub-commands and gained the ability of presenting the versions of the installed plugins if coupled with the--verbose
option.
Command line completion
The --completion-script
option has been implemented for the pod
command.
It prints a completion script for the current shell (currently only the Z shell
is supported). The result is: faster than ever CocoaPoding:
We choose to generate a script because this approach is much faster than
invoking the pod
command line tool to provide the completions. Unfortunately
this approach will not pick changes relate to the installation (or the removal)
of plugins or changes due to CocoaPods updates.
If you are using a properly configured Z shell, you can install or update the completion script with the following commands:
$ rm -f /usr/local/share/zsh/site-functions/_pod
$ pod --completion-script > /usr/local/share/zsh/site-functions/_pod
$ exec zsh
cocoapods-trunk
CocoaPods trunk is the new way to share specs via the CocoaPods Master repo. If
you haven’t heard about it yet, you can read the details about it in the
dedicated blog post. For CocoaPods users it is relevant to
know that the pod push
command has been moved to pod repo push
(a temporary
alias has been provided) because since this version it is intended to be used
for private repos. Moreover, to prevent users sharing accidentally private
specs with world, the pod repo push
command will abort if there is an
attempt to push to a repo where the master repo as the remote.
During the development of trunk we discovered that some users are not properly leveraging private repos:
- If you are using the master repo to add your own private specs, don’t do this.
- If you are using the name ‘master’ for you own private spec-repo, don’t do this.
Things will break.
cocoapods-plugins
David Grandinetti and Olivier
Halligon have been hard at work to tame the
proliferation of plugins. The result is the extremely meta cocoapods-plugins
plugin which can list, search and check the available versions of the most
useful CocoaPods plugins. Moreover, Boris
Bügling created a template (pod plugins create
)
so getting started has never been easier.
A great example of a new CocoaPods plugin is podroulette.
Updating
To install the last release of CocoaPods you can run:
$ [sudo] gem install cocoapods
Until version 1.0 we strongly encourage you to keep CocoaPods up-to-date.
For all the details, don’t miss the Changelog.