2.5.8 / July 2009
- Fixes a problem in 2.5.7 where deploy:finalize_update had been badly
merged.
2.5.6 & 2.5.7 / July 2009
- 2.5.7 masks a broken 2.5.6 release that was accidentally mirrored via
Rubyforge.
- Clean the cached git repository [Graeme Mathieson]
- Fixes perforce issues reported at bit.ly/wt0es [Scott Johnson]
- Improved back-tick handling code in relation to the above.
- Fixes a Git issue when submodules update upstream. (via mailing list)
[sneakin]
- Capify now creates the config directory in directories without one.
2.5.5 / 24 Feb 2009
- Make sure role(:foo) actually declares an (empty) role for :foo, even
without server arguments [Jamis Buck]
2.5.4 / 4 Feb 2009
- When using rsync with the remote_cache strategy include -t switch to
preserve file times [Kevin McCarthy]
- Bump Net::SSH dependency to version 2.0.10 [Jamis Buck]
- Use ‘user’ from .ssh/config appropriately [Jamis Buck]
- Allow respond_to?() method to accept optional second parameter
(include_priv) [Matthias Marschall]
- Make sure sudo prompts are retried correctly even if "try again"
and the prompt appear in the same text chunk from the server [Jamis Buck]
- Add supported environment variables to -H output [François Beausoleil]
2.5.3 / December 6, 2008
- Make previous_release return nil if there is no previous release [Mathias
Meyer]
- Play nice with rubies that don‘t inspect terminals well (ie. JRuby)
by defaulting screen columns to 80 [Bob McWhirter]
- Rollback of deploy:symlink would explode if there was no previous revision
to rollback to [Jamis Buck]
- Fix bug in transfer.rb that caused get/put/upload/download to ignore blocks
passed to them [arika]
- Fix issue with git SCM that caused "Unable to resolve revision"
errors when there was trailing whitespace in git‘s output [Mark
Zuneska, Daniel Berlinger and Evan Closson]
2.5.2 / November 13, 2008
- Fix issue with git SCM that caused "Unable to resolve revision for
‘HEAD’" errors on deploy [Jamis Buck]
2.5.1 / November 7, 2008
- Add -t (—tools) switch for better task lists for external tools
[Jamis Buck]
- Make the RemoteDependency#try method use invoke_command instead of run, for
sudo-ability [Matthias Marschall]
- Make locally executed commands in Windows more Windows-friendly
[esad@esse.at]
- Added :scm_arguments variable for custom SCM arguments (subversion-only,
currently) [David Abdemoulaie]
- Don‘t emit -p for sudo when :sudo_prompt is blank [Matthias
Marschall]
- Copy symlinks when using rsync [Paul Paradise]
- Make sure git query-revision matches on exact branch name
[grant@nightriot.com]
- Use -T <arg> to filter listed tasks by a pattern [Mathias Meyer,
Geoffrey Grosenbach]
- Expose the scm method on SCM::Base for building custom scm commands
[Mathias Meyer]
- Start logging some locally executed commands [springyweb]
- Added HOSTFILTER environment variable for constraining tasks so they run
only on hosts matching the given list of servers [Walter Smith]
- Make sure the glob matching for copy excludes does not delete parent
directories [Fabio Akita]
- Ruby 1.9 compatibility [Jamis Buck]
2.5.0 / August 28, 2008
- Allow :gateway to be set to an array, in which case a chain of tunnels is
created [Kerry Buckley]
- Allow HOSTS spec to override even non-existent roles [Mike Bailey]
- Sort releases via "ls -xt" instead of "ls -x" to allow
for custom release names [Yan Pritzker]
- Convert arguments to -s and -S into integers, booleans, etc. based on
whether the arguments appear to be those types [Jamis Buck]
- Add descriptions of -n and -d to the verbose help text [Jamis Buck]
- Make rollbacks work with processes that need the current directory to be
valid in order to restart properly (e.g. mongrel_rails) [Jamis Buck]
- Rename deploy:rollback_code to deploy:rollback:code [Jamis Buck]
- Added parallel() helper for executing multiple different commands in
parallel [Jamis Buck]
- Make sure a task only uses the last on_rollback block, once, on rollback
[Jamis Buck]
- Add :shared_children variable to customize which subdirectories are created
by deploy:setup [Jonathan Share]
- Allow filename globbing in copy_exclude setting for the copy strategy
[Jonathan Share]
- Allow remote_cache strategy to use copy_exclude settings (requires rsync)
[Lewis Mackenzie]
- Make None SCM module work in Windows [Carlos Kozuszko]
- Recognize mingw as a Windows platform [Carlos Kozuszko]
- Fixed failing tests in Windows [Carlos Kozuszko]
- Made :scm_auth_cache control whether password option is emitted in
subversion module [Brendan Schwartz]
- Fixed timestamp bug in CVS module [Jørgen Fjeld]
- Added -n/—dry-run switch, to display but not execute remote tasks
[Paul Gross]
2.4.3 / June 28, 2008
- Fix gem dependencies so gem actually understands them [Jamis Buck]
2.4.2 / June 27, 2008
- Specify gem dependencies in rakefile [Jamis Buck]
2.4.1 / June 27, 2008
- Use Echoe to manage the Rakefile [Jamis Buck]
- Let Net::SSH manage the default SSH port selection [Ben Lavender]
- Changed capture() helper to not raise an exception on error, but to warn
instead [Jeff Forcier]
2.4.0 / June 13, 2008
- Added :normalize_asset_timestamps option to deployment, defaulting to true,
which allows asset timestamping to be disabled [John Trupiano]
2.4.0 Preview Release 1 (2.3.101) / June 5, 2008
- Only make deploy:start, deploy:stop, and deploy:restart try sudo as
:runner. The other sudo-enabled tasks (deploy:setup, deploy:cleanup, etc.)
will now use the :admin_runner user (which by default is unset). [Jamis
Buck]
- Make sure triggers defined as a block inherit the scope of the task they
are attached to, instead of the task they were called from [Jamis Buck]
- Make deploy:upload use the upload() helper for more efficient directory
processing [Jamis Buck]
- Make deploy:upload accept globs [Mark Imbriaco]
- Make sure the host is reported with the output from scm_run [Jamis Buck]
- Make git SCM honor the :scm_verbose option [Jamis Buck]
- Don‘t follow symlinks when using :copy_cache [Jamis Buck]
- If :mode is given to upload() helper, do a chmod after to set the mode
[Jamis Buck]
- Fix load_from_file method for windows users [Neil Wilson]
- Display a deprecation error if a remote git branch is specified [Tim
Harper]
- Fix deployment recipes to use the updated sudo helper [Jamis Buck]
- Enhance the sudo helper so it can be used to return the command, instead of
executing it [Jamis Buck]
- Revert "make sudo helper play nicely with complex command
chains", since it broke stuff [Jamis Buck]
- Make set(:default_shell, false) work for not using a shell on a per-command
basis [Ryan McGeary]
- Improved test coverage [Ryan McGeary]
- Fixed "coverage" take task [Ryan McGeary]
- Use upload() instead of put() with the copy strategy [Jamis Buck]
- Revert the "git fetch —tags" change, since it didn‘t
work as expected [Jamis Buck]
- Fix deploy:pending when using git SCM [Ryan McGeary]
- Make sure deploy:check works with :none scm (which has no default command)
[Jamis Buck]
- Add debug switch for enabling conditional execution of commands [Mark
Imbriaco]
2.3.0 / May 2, 2008
- Make deploy:setup obey the :use_sudo and :runner directives, and generalize
the :use_sudo and :runner options into a try_sudo() helper method [Jamis
Buck]
- Make sudo helper play nicely with complex command chains [Jamis Buck]
- Expand file-transfer options with new upload() and download() helpers.
[Jamis Buck]
- Allow SCP transfers in addition to SFTP. [Jamis Buck]
- Use Net::SSH v2 and Net::SSH::Gateway. [Jamis Buck]
- Added export method for git SCM [Phillip Goldenburg]
- For query_revision, git SCM used git-rev-parse on the repo hosting the
Capfile, which may NOT be the same tree as the actual source reposistory.
Use git-ls-remote instead to resolve the revision for checkout. [Robin H.
Johnson]
- Allow :ssh_options hash to be specified per server [Jesse Newland]
- Added support for depend :remote, :file to test for existence of a specific
file [Andrew Carter]
- Ensure that the default run options are mixed into the command options when
executing a command from the cap shell [Ken Collins]
- Added :none SCM module for deploying a specific directory‘s contents
[Jamis Buck]
- Improved "copy" strategy supports local caching and pattern
exclusion (via :copy_cache and :copy_exclude variables) [Jamis Buck]
2.2.0 / February 27, 2008
- Fix git submodule support to init on sync [halorgium]
- Add alternative server-centric role definition method [James Duncan
Davidson]
- Add support for password prompts from the Mercurial SCM [ches]
- Add support for :max_hosts option in task definition or run() [Rob Holland
<rob@inversepath.com>]
- Distributed git support for better operability with remote_cache strategy
[voidlock]
- Use a default line length in help text if line length is otherwise too
small [Jamis Buck]
- Fix incorrect reference to the ‘setup’ task in task
documentation [rajeshduggal]
- Don‘t try to kill the spawner process on deploy:stop if no spawner
process exists [Jamis Buck]
- Dynamic roles (e.g. role(:app) { "host.name" }) [dmasover]
- Implement Bzr#next_revision so that pending changes can be reported
correctly [casret]
- Use a proper export command for bzr SCM [drudru]
- Use checkout instead of merge for git SCM [nuttycom]
- Fix typo in Subversion SCM module, encountered when an update fails
[kemiller]
- Fix documentation typo in upload.rb [evolving_jerk]
- Added test case to show that the :scm_command is honored by the git SCM
module [grempe]
- Fail gracefully when double-colons are used to delimit namespaces [richie]
- Add support for :git_enable_submodules variable, to enable submodules with
the git SCM [halorgium]
- If subversion asks for a password, prompt as a last resort [Jamis Buck]
- Use checkout —lightweight for bzr checkout, instead of branch
[michiels]
- Make sure bzr SCM works when revision is head (or unspecified) [michiels]
- Support p4sync_flags and p4client_root variables for Perforce [gseidman]
- Prepare for Net::SSH v2 by making sure Capistrano only tries to load
Net::SSH versions less than 1.99.0 [Jamis Buck]
2.1.0 / October 14, 2007
- Default to 0664 instead of 0660 on upload [Jamis Buck]
- Fix deploy:pending to query SCM for the subsequent revision so that it does
not include the last deployed change [Jamis Buck]
- Prefer ‘Last Changed Rev’ over ‘Revision’ when
querying latest revision via Subversion [Jamis Buck]
- Explicitly require ‘stringio’ in copy_test [mislav]
- When Subversion#query_revision fails, give a more sane error [Jamis Buck]
- Don‘t run the upgrade:revisions task on non-release servers [Jamis
Buck]
- Fix cap shell to properly recognize sudo prompt [Mark Imbriaco, barnaby,
Jamis Buck]
- Git SCM module [Garry Dolley, Geoffrey Grosenbach, Scott Chacon]
- Use the —password switch for subversion by default, but add
:scm_prefer_prompt variable (defaults to false) [Jamis Buck]
2.0.100 (2.1 Preview 1) / September 1, 2007
- capify-generated Capfile will autoload all recipes from
vendor/plugins/*/recipes/*.rb [Graeme Mathieson]
- Use sudo -p switch to set sudo password prompt to something predictable
[Mike Bailey]
- Allow independent configurations to require the same recipe file [Jamis
Buck]
- Set :shell to false to run a command without wrapping it in "sh
-c" [Jamis Buck]
- Don‘t request a pty by default [Jamis Buck]
- Add a "match" remote dependency method [Adam Greene]
- Allow auth-caching of subversion credentials to be enabled via
:scm_auth_cache [tsmith]
- Don‘t let a task trigger itself when used as the source for an
"on" hook [Jamis Buck]
- Avoid using the —password switch with subversion for security
purposes [sentinel]
- Add version_dir, current_dir, and shared_dir variables for naming the
directories used in deployment [drinkingbird]
- Use Windows-safe binary reads for reading file contents [Ladislav
Martincik]
- Add Accurev SCM support [Doug Barth]
- Use the :runner variable to determine who to sudo as for deploy:restart
[Graham Ashton]
- Add Namespaces#top to always return a reference to the topmost namespace
[Jamis Buck]
- Change the "-h" output so that it does not say that
"-q" is the default [Jamis Buck]
2.0.0 / July 21, 2007
- Make the "no matching servers" error more sane [halorgium]
- Make sure the invoke task gives a sane error when the COMMAND value is
omitted [halorgium]
- Make sure variables are conditionally set in the deploy recipes, so as not
to clobber values set elsewhere [Jamis Buck]
- Fix "input stream is empty" errors from HighLine on prompt [Jamis
Buck]
- Added "synchronous_connect" setting to try and work around SFTP
hangs for certain users [Jamis Buck]
- Auto-require the SSH shell service, to avoid race conditions [Jamis Buck]
- Add a millisecond sleep in upload to reduce CPU impact [Jamis Buck]
- Allow the logger to be set via Configuration#logger= [Jamis Buck]
- Allow $CAPISTRANO:HOST$ to be used in filenames to the put command [Jamis
Buck]
- Allow execute_on_servers to be called without a current task again [Jamis
Buck]
- Put $stdout in sync mode, so that Net::SSH prompts are displayed [Jamis
Buck]
- Make sure deploy:check aborts if it fails [Jamis Buck]
- Spelling corrections in docs [Tim Carey-Smith, Giles Bowkett]
1.99.3 (2.0 Preview 4) / June 28, 2007
- Don‘t break task descriptions on a period that appears in the middle
of a sentence [Jamis Buck]
- Added support for :on_error => :continue in task definitions, allowing
tasks to effectively ignore connection and execution errors that occur as
they run [Rob Holland]
- Use correct parameters for Logger constructor in the SCM and Strategy base
initializers [Jamis Buck]
- Set LC_ALL=C before querying the revision, to make sure the output is in a
predictable locale and can be parsed predictably [via Leandro Nunes dos
Santos]
- Add :copy_remote_dir variable for the :copy strategy, to indicate where the
archive should be copied to on the remote servers [Jamis Buck]
- Make the awk use in the dependencies code work with POSIX awk [mcornick]
- Make variable accesses thread safe [via Adrian Danieli]
- Make user input for yes/no prompts work correctly in the Mercurial module
[Matthew Elder]
- Use single quotes to escape semicolon in find command, instead of a
backslash [via michael.italia@gmail.com]
- Better quoting of reserved characters in commands [Jamis Buck]
- Make sure Net::SSH versions prior to 1.1.0 still work [Jamis Buck]
- Allow the :hosts and :roles keys to accept lambdas, which will be evaluated
lazily to allow runtime selection of hosts and roles in tasks [Jamis Buck]
- Use `which’ to test whether a command exists in the remote path,
instead of `test -p’ [Jamis Buck]
- Make sure the connection factory is established synchronously, to avoid
multiple gateway instances being spawned [Jamis Buck]
- Make sure symlink and finalize_update tasks reference the most recent
release when called by themselves [Jamis Buck]
1.99.2 (2.0 Preview 3) / June 15, 2007
- CVS SCM module [Brian Phillips]
- Fix typo in Perforce SCM module [Chris Bailey]
- ssh_options < server options when connecting [Jamis Buck]
- Logger defaults to $stderr instead of STDERR [lhartley]
- Use cp -RPp instead of -a in the remote cache strategy
- Make the UploadError exception include an array of the hosts that failed
[rob@inversepath.com]
- Allow "empty" roles to be declared [Jamis Buck]
- Mercurial SCM module [Tobias Luetke, Matthew Elder]
- Invoke all commands via sh (customizable via :default_shell) [Jamis Buck]
- Make sure all directories exist on each deploy which are necessary for
subsequent commands to succeed, since some SCM‘s won‘t save
empty directories [Matthew Elder]
- Add :default_environment variable, which is applied to every command
1.99.1 (2.0 Preview 2) / May 10, 2007
- Fix some documentation typos [eventualbuddha]
- Don‘t retry failed connections if an explicit auth_methods list is
given [Chris Farms]
- Added support for load and exit callbacks, which get invoked when all
recipes have been loaded and when all requested tasks have been executed
[Jamis Buck]
- Added support for start and finish callbacks, which get invoked when any
task is called via the command-line [Jamis Buck]
- Make `capify’ understand simple command-line switches [Jamis Buck]
- Make the server definition itself available to SSH channels, rather than
just the host name [Jamis Buck]
- Identify servers by their complete credentials in logs, rather than simply
by hostname [Jamis Buck]
- Uniquely identify servers based on hostname, port, and username, instead of
merely on hostname [Jamis Buck]
- Allow (e.g.) scm_command and local_scm_command to be set in the event of
different paths to the scm command on local vs. remote hosts. [Jamis Buck]
- Kill the "deploy:app" namespace and move those tasks into deploy,
directly. [Jamis Buck]
- Make sure ‘desc’ applies to the next defined task, in any
namespace. [Jamis Buck]
- Fix shell so that servers for a task are correctly discovered. [Jamis Buck]
- Added before(), after(), and on() callback creation methods. [Jamis Buck]
- Fix broken check! method for some deployment strategies. [Jamis Buck]
- deploy:cold should also run migrations before starting the app [Jamis Buck]
- Make the copy strategy check out to a temporary directory [Jamis Buck]
1.99.0 (2.0 Preview 1) / April 24, 2007
- Add `capify’ script to make it easier to prepare a project for
deployment using cap [Jamis Buck]
- Make sure the sudo helper understands the SuSE dialect of the sudo password
prompt [Steven Wisener]
- Fix synchronization issue with Gateway initialization [Doug Barth]
- Added opt-in "compat" and "upgrade" recipes for tasks
to aid in the upgrade process to Capistrano 2 [Jamis Buck]
- The deployment recipes are now opt-in. Just do ‘load
"deploy"’ in your recipe script. [Jamis Buck]
- Added $CAPISTRANO:HOST$ placeholder in commands, which will be replaced
with the name of the host on which the command is executing [Jamis Buck]
- Added -e switch to explain specific task. Added -X to extend -x. Made -h
much briefer. Added -T to list known tasks. [Jamis Buck]
- Added namespaces for tasks [Jamis Buck]
- Merged the Configuration and Actor classes, performed various other massive
refactorings of the code [Jamis Buck]
1.4.1 / February 24, 2007
- Use the no-auth-cache option with subversion so that username/password
tokens do not get cached by capistrano usage [jonathan]
- Deprecated upper-cased variables [Jamis Buck]
- Make sure Actor#get does not close the SFTP channel (so subsequent SFTP
operations work) [Dov Murik]
- Add :env option to ‘run’ (and friends) so that you can specify
environment variables to be injected into the new process’
environment [Mathieu Lajugie]
1.4.0 / February 3, 2007
- Use the auth info for subversion more consistently [Jamis Buck]
- Add a "capture" helper, for capturing the stdout of a remote
command and returning it as a string [Jamis Buck]
- Add a "get" helper, to pull a file from a remote server to the
localhost [bmihelac]
- Fix gateway to actually increment local_port if a port is in use, so that
multiple capistrano instances can run at the same time [Mark Imbriaco]
- Refactor the permissions tweaking in update_code to a separate task so that
people on shared hosts can override it as necessary [jaw6]
- Set umask during the setup task, so that intermediate directories are
created with the proper permissions [NeilW]
- Removed -c/—caprc switch, since the new load order renders it
meaningless (just use -f now) [Mike Bailey]
- Make sure the standard recipe loads first, so that .caprc and friends can
override what it defines. [Mike Bailey]
- Add support for a system-wide capistrano config file [Mike Bailey]
- Make cold_deploy call update instead of deploy (to avoid invoking the
restart task).
- Make the touch command run by update_code set the TZ to UTC, for consistent
setting of asset timestamps. [NeilW]
- Fix off-by-one bug in show_tasks width-computation [NeilW]
1.3.1 / January 5, 2007
- Fix connection problems when using gateways [Ezra Zygmuntowicz]
1.3.0 / December 23, 2006
- Deprecate rake integration in favor of invoking `cap’ directly [Jamis
Buck]
- Make sure the CVS module references the repository explicitly in cvs_log
[weyus@att.net]
- Remove trace messages when loading a file [Jamis Buck]
- Cleaner error messages for authentication failures and command errors
[Jamis Buck]
- Added support for ~/.caprc, also -x and -c switches. [Jamis Buck]
- Updated migrate action to use db:migrate task in Rails instead of the
deprecated migrate task [DHH]
- Allow SSH user and port to be encoded in the hostname strings [Ezra
Zygmuntowicz]
- Fixed that new checkouts were not group-writable [DHH, Jamis Buck]
- Fixed that cap setup would use 755 on the deploy_to and shared directory
roots instead of 775 [DHH]
- Don‘t run the cleanup task on servers marked no_release [Jamis Buck]
- Fix typo in default_io_proc so it correctly checks the stream parameter to
see if it is the error stream [Stephen Haberman]
- Make sure assets in images, javascripts, and stylesheets are touched after
updating the code, to ensure the asset timestamping feature of rails works
correctly [Jamis Buck]
- Added warning if password is prompted for and termios is not installed
[John Labovitz]
- Added :as option to sudo, so you can specify who the command is executed as
[Mark Imbriaco]
1.2.0 / September 14, 2006
- 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