*SVN*

* Add experimental 'shell' task [Jamis Buck]

* Display file for external configurations, rather than inspected proc. [Jamis Buck]

* Connect to multiple servers in parallel, rather than serially. [Jamis Buck]

* Add SCM module for Mercurial (closes #4150) [Matthew Elder]

* Remove unused line in SCM::Base (closes #5619) [chris@seagul.co.uk]

* More efficient "svn log" usage (closes #5620) [Anatol Pomozov]

* Better support for key passphrases in the SVN module (closes #5920) [llasram@gmail.com]

* Fix missing default for :local in cvs.rb (closes #3645) [jeremy@hinegardner.org]

* Fix awkward spacing in gemspec file (closes #3888) [grant@antiflux.org]

* Add support for :sudo variable to specify path to sudo (closes #4578) [timothee.peignier@tryphon.org]

* Make previous_release return nil if there are no previous releases (closes #4959) [bdabney@cavoksolutions.com]

* Uncache releases list after update_code is called so that newly released dir is included (closes #3766) [Jamis Buck]

* Allow the subversion scm to accept HTTPS certificates (closes #4792) [Jamis Buck]

* Make sure rollbacks occur within the scope of the task that triggered them [Jamis Buck]

* Fixed the default recipe to work with setups that haven't yet gone pids [DHH]

* Symlink and setup for shared/pids to tmp/pids [DHH]

* Fix some incorrect usage text (closes #4507) [gerry_shaw@yahoo.com]

* Added Actor#stream method that makes it easy to create cross-server streams [DHH]. Example:

    desc "Run a tail on multiple log files at the same time"
    task :tail_fcgi, :roles => :app do
      stream "tail -f #{shared_path}/log/fastcgi.crash.log"
    end

* Make update_code and symlink a macro task under the name "update" for easy of deploy to servers that does not run fcgis [DHH]

* 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
