I'm starting to read up on Capistrano after using Rake tasks to deploy apps for a long time. It's really striking how similar it is to Rake. A lot of parallel commands (like cap -T
) and a lot of identical concepts (namespaces, tasks).
Does anyone know the history behind that? Is Capistrano an extension of Rake, or built on top of it?
UPDATE: Capistrano v3 switched back to using a Rake DSL instead of rolling their own DSL.
Capistrano v1 and v2 had no dependencies on rake. It was written from scratch as a DSL for handling remote servers. It's evident that some aspects of capistrano were influenced by rake, but Jamis Buck felt it was necessary to make capistrano stand on its own. Capistrano tasks behave slightly differently than rake tasks and their hookable nature separates them from rake tasks.
Capistrano has received minor criticism for not building upon rake, but it is still the most popular deployment tool at least in the rails community. Other projects such as Vlad the Deployer counter capistrano's implementation by using rake and ssh directly.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With