A new release of Capistrano is nearly upon us! Before I unleash it upon the world, though, I’d like to have a few brave souls put it through its paces, so I’m doing a brief run of it as a pre-release. You can grab it from the Rails beta gem server:
gem install -s http://gems.rubyonrails.com capistrano
There are a lot of changes in this release, most of them minor or cosmetic. However, there are some changes that may bite you, too.
The most significant change that may affect you has to do with the roles used for the setup, update_code, rollback_code, and symlink tasks. These tasks have changed such that they now deploy to all defined servers. That’s right, if you’ve got a server associated with any role, those tasks will deploy to that server. However, a server can explicitly opt out of being part of release deployment by setting :no_release => true
in its role definition:
role :file, "file-server.somewhere.example",
:no_release => true
Take note of that! If you have any servers using non-standard roles (any role besides web, app, or db), you need to explicitly add :no_release => true
in their role definitions, or your next deploy will target those servers, too.
Other significant changes that may or may not tickle you:
Various other changes have been made as well—you can look at the CHANGELOG for a complete list.