Jamis B. vient de publier une extension Capistrano pour gÃ©rer
les dÃ©pendances externes de son appli.
Bon il explique Ã§a mieux que moi dans le README, extrait :
"This Capistrano extension provides yet another way to manage
your application’s external dependencies.
External dependencies are a necessary evil. If you’re doing
Rails development, you’ll automatically be dependent on the
Rails framework itself, at the very least, and you probably
have a handful or two of plugins that you’re using as well.
Traditionally, the solution to these has been to either install
those dependencies globally (which breaks down when you
have multiple apps that need different versions of Rails or
the plugins), or to bundle them into your application directly
via freeze:gems or the like (which tends to bloat your repository).
Now, bloating a repository is, in itself, not a big deal. However,
when it comes time to deploy your application, more data in the
repository means more data to check out, resulting in longer
deploy times. Some deployment strategies (like remote_cache)
can help, but you’re still going to be copying all of that data
every time you deploy your application.
One solution is to use a deployment strategy like FastRemoteCache
(GitHub - basecamp/fast_remote_cache: A faster version of Capistrano's remote_cache deployment strategy), which employs
hard-links instead of copying files. But your deploys will go even
faster if you didn’t have to worry about moving or linking all the
files in your external dependencies.
That’s where this Cached Externals plugin comes in. It capitalizes
on one key concept: your external dependencies are unlikely to
change frequently. Because they don’t change frequently, it makes
more sense to just check them out once, and simply refer to that
checkout via symlinks.
This means your deploys only have to add a single symbolic link
for each external dependency, which can mean orders of magnitude
less work for a deploy to do."