*SVN* * Changed setup, update_code, rollback_code, and symlink to work on all servers instead of only those in the :app, :web, and :db roles. A server can opt out of being part of the release deployment by setting :no_release => true [DHH] * Added support for :except on task declarations as the opposite of :only [DHH]. Example: role :app, "192.168.0.2" role :file, "192.168.0.3", :no_release => true task :symlink, :except => { :no_release => true } do on_rollback { run "ln -nfs #{previous_release} #{current_path}" } run "ln -nfs #{current_release} #{current_path}" end cap symlink # will not run on 192.168.0.3 * Deprecate the -r/--recipe switch in favor of -f/--file (for more make/rake-like semantics) [Jamis Buck] * Fix gemspec to include a dependency on rake 0.7 [Jamis Buck] * Added respect for ENV["HOSTS"] that'll be used instead of the roles specified in the task definition [DHH]. Example: HOSTS=192.168.0.1 cap setup # one-off setup for that server, doesn't need to be prespecified in the recipes file * Added respect for ENV["ROLES"] that'll be used instead of the roles specified in the task definition [DHH]. Example: task :setup, :roles => [ :app, :web, :db ] # normally this would run every where end ROLES=app cap setup # this will only run for the app role, overwritting the default declaration * Added :hosts option to task definition that allows you to specify cross-cutting tasks [DHH]. Example: task :setup, :hosts => [ "06.example.com", "01.example.com" ] do # this task will happen on 06 and 01 regardless of which roles they belong to end * Fix operator precedence problem in script for touching the revisions.log #3223 [jason.garber@emu.edu] *1.1.0* (March 6th, 2006) * Simplify the generated capistrano.rake file, and make it easier to customize * Use rake-like command-line semantics ("cap deploy", in addition to "cap -a deploy") * Rename to capistrano * Make the generated capistrano.rake file use rake namespaces, and include all default tasks * Look for config/deploy.rb, capfile, and Capfile by default *1.0.1* (February 20th, 2006) * Fix broken switchtower_invoke function in switchtower.rake (missing require statement) *1.0.0* (Feburary 18th, 2006) * Make CVS module's :local value default to "." * Add "invoke" task for executing one-off commands * Make port selection smarter for gateway connections * Add extension mechanism for custom ST operations and third-party task libraries * Make ST rails rake tasks more configurable * Add Actor#current_task and simplify Task#servers * Add Actor#connect! method for working around lazy connection establishing * Make sure IO::TRUNC is specified for Net::SFTP uploads (#3510) * Add branch support to CVS [jeremy@hinegardner.org] (#3596) * Add bazaar-ng SCM module [Damien Merenne] * Add optional :svn_username and :svn_password variables * Allow Proc-valued variables to be set more conveniently (set(:foo) { "bar" }) * Add perforce SCM module [Richard McMahon] * Add bazaar (v1) SCM module [Edd Dumbill] (#3533) * Fix stftime format string used in CVS module to be Windows-compatible (fixes #3383) * Add an better error when a task is run and no servers match the required conditions * Add default spinner and cold_deploy tasks, and spinner_user variable * Changed restart_via variable to (boolean) use_sudo * Only chmod when the revisions.log file is first created * Make UPPERCASE variables work * Added rails_env variable (defaults to production) for use by tasks that employ the RAILS_ENV environment variable * Added Actor.default_io_proc * Set :actor key on SSH channel instances *0.10.0* (January 2nd, 2006) * Handle ssh password prompts like "someone's password:" * Make CLI#echo available as a class method. * Add CLI#with_echo. * Make the default password prompt available as a class method. # Add documentation for the CLI class. * Add a sanity check to make sure the correct versions of Net::SSH and Net::SFTP are installed. * Added a cleanup task to remove unused releases from the deployment directory * Allow password to be reentered on sudo if it was entered incorrectly * Use && as the command separator for the checkouts, so that errors are caught early. * Ping each SSH connection every 1s during command processing so that long-running commands don't cause the connection to timeout. * Add a 0.01s sleep during the command loop so that the CPU doesn't go ballistic while ST is doing its thing. * Add :restart_via variable for specifying whether restart ought to use :sudo (default, use sudo) * Use SFTP for file transfers (if available). * Add an "update_current" task that will do an svn up on the current release * Use the :checkout variable to determine what operation to use for svn checkouts (instead of co, like "export"). * The Rails rake tasks now load ST directly, instead of invoking it via system * Added ssh_options variable to configure the SSH connection parameters #2734 [jerrett@bravenet.com] * Require Net::SSH 1.0.5 *0.9.0* (October 18th, 2005) * Use process reaper instead of custom reap script for restarting * Use -S switch to set variables before reading recipe files #2242 * Have setup.rb create a switchtower.cmd file on Win32 platforms #2402 * Add diff_from_last_deploy to the rails switchtower rakefile template * Add diff_from_last_deploy task (currently only works with subversion) * Add deploy_with_migrations task. * Make the migrate task more customizable. * If no password is given with the -p switch, prompt for password immediately. * Do not install a switchtower stub in the script directory. Assume the switchtower executable is in the path. * Remove trailing newlines from commands to prevent trailing backslash #2141 * Default parameters work correctly with the generator #2218 [Scott Barron] * Attempt to require 'rubygems' explicitly when running the switchtower utility #2134 * Make default tasks work only on app/db/web roles, so that additional roles may be created for boxes with specific needs without needing to (for instance) deploy the app to those boxes * Default the application name to "Application" when using --apply-to * Show the help screen instead of an error when no arguments are given * Make SwitchTower easier to invoke programmatically via SwitchTower::CLI * Specify the revision to release via the :revision variable (defaults to latest revision) * Allow variables to be set via the cli using the -s switch * Log checkouts to a "revisions.log" file * Changed behavior of checkout to use the timestamp as the release name, instead of the revision number * Added CVS module (very very experimental!) * Works with public keys now, for passwordless deployment * Subversion module recognizes the password prompt for HTTP authentication * Preserve +x on scripts when using darcs #1929 [Scott Barron] * When executing multiline commands, use a backslash to escape the newline