## 2.8.0 / August 3 2011 A short release, after the last. Announcing Rails 3.1 asset pipeline support. The asset pipeline support requires an additiona `load` in your `Capfile`. You can see information pertaining to the pull request, including the inline comments here: https://github.com/capistrano/capistrano/pull/35 Documentation will be available soon in the wiki. * Drop-In Rails 3.1 asset pipeline support. (Chris Griego) ## 2.7.0 / August 3 2011 A fairly substantial release. There are fixes so that current_release works during dry-runs, (although, apparently still not with bundler.) The test-suite was also modified to work with Ruby 1.9.2, except in one case where Ruby 1.9.x calls `to_ary` and `to_a` on mocks, which still makes an error. 1.9.x has always been supported, but due to lack of maintenance on my part the tests didn't ever pass. The `start`, `stop` and `restart` tasks have been reduced to mere hooks into which extensions can define their own functionality. The `readme` was also slightly improved, simply tweaks to express how best to run the test suite. * Ensure dry-run works with `:current_release` variable (Carol Nichols) * Added a new variable `:git_submodules_recursive`, setting the value to false will ensure Git doesn't recursively initialize and checkout submodules. (Konstantin Kudryashov) * Added an additional task option, `:on_no_matching_servers`, setting the value to `:continue` will ensure tasks with no matched servers continue without error, instead of raising `Capistrano::NoMatchingServersError` as was the previous behaviour. (Chris Griego) A huge thanks to all contributors, as always! Remember: @capistranorb on twitter for news. ## 2.6.1 / June 25 2011 A short maintenance release, Some fixes to the verbose flag inside the Git SCM as well as another argument for the (internal) `variable()` command, offering a default. The Git SCM is now verbose by default, but can be disabled by setting `:scm_verbose` to false. There has been an additional method added to string, within the context of the test suite, I'm always sketchy about adding additional methods to core classes, but it's a short term fix until I make the time to patch the test suite not to compare strings literally. The method is `String#compact`, and is implemented simply as `self.gsub(/\s+/, ' ')`. Here's the run-down of changes, and their committers, as always - a huge thank you to the community that continues to drive Capistrano's development. * `deploy:setup` now respects `:group_writable` (Daniel Duvall) * Fixes to `:scm_verbose` for the Git module (defaults to On.) (Matthew Davies) * Will now copy hidden files in the project's root into the release directory (Mark Jaquith) * Now handles closing already-dead connections in a sane way (does not raise an exception) (Will Bryant) * Renamed `Capistrano::VERSION::TINY` to `Capistrano::VERSION::PATCH` (Lee Hambley) * Removed the `VERSION` file (Lee Hambley) ## 2.6.0 / May 3 2011 A rather large release, feature-version bump because of the new multiple-gateways feature as implemented by Ryan Duryea (way to go!) Please also note from this release that if you use Git submodules, the Git-version requirement for the new implementation is now >= 1.5.6, from previously un-documented. (1.5.6 is new-enough that I think this is acceptable) * Upgrade Net::SSH-gateway dependency to 1.1 (fixes a thread-deadlocking bug on MRI 1.9) * Respect "dry-run" on transfer methods (Florian Frank) * Add support for multiple gateways: (Ryan Duryea) set :gateway, { 'gate1.example.com' => 'server1.example.com', [ 'gate2.example.com', 'gate3.example.com' ] => [ 'server5.example.com', 'server6.example.com' ] } * Properly support nested Git submodules, moves Git requirement to >= 1.5.6 [if you rely upon submodules] (Ken Miller) * Fetch tags into the remote cache, allows deploying a tag when using Git, with the remote_cache strategy (Florian Frank) * Various fixes to path handling bugs in the copt strategy. (Philippe Rathé) ## 2.5.21 / April 6 2011 * Fixed to follow best-practice guidelines from Bundler (Ben Langfeld) * No longer force a gemset for Capistrano development. (Ben Langfeld) ## 2.5.20 / March 16 2011 * `deploy:migrations` will now always operate on the latest_release, not current_release (Mike Vincent) * Adds a check for the presence of `rsync` when using the copy strategy with `rsync`. (Chris Griego) * Do not try to look up the `:release_path` on servers which are defined `:no_release` (Chris Griego) * Tiny patch to the `CVS` SCM code to be Ruby 1.9 compatible (Martin Carpenter) * Changed the default `Git` submodule behaviour to use `--recursive`, Lighthouse Issue #176. (Lee Hambley) * `:public_children` can now be `set()`, the default is unchanged, thanks (Chris Griego) * Fixing the load path in the default `Capfile` to search vendored/unpacked Gems. Lighthouse Issue #174 (Mari Carmen/Rafael García) * Adds a `maintenance_basename` variable (default value is `maintenance`) to allow you to set the maintenance page name (Celestino Gomes) * Spelling fixes in inline-documentation (Tom Copeland) * Make `zip` and `tar` handle symlinks the same way (zip follows symlinks by default, tar needs the option `-h`) (Ross Cooperman) ## 2.5.19 / June 21, 2010 * Small bug fixes, no improvements for people who weren't experiencing problems anyway. ## 2.5.18 / March 14, 2010 Small fix for rolling back if a shell scripts exits non-zero; enabled a rollback if git (or other) externals fail during the deploy. * #151 check return code status of system command to create local copy and rollback if not 0 (David King) ## 2.5.17 / February 27, 2010 Various small bug fixes. ## 2.5.16 / February 14, 2010 Fixed a small regression in 2.5.15 ## 2.5.15 / 14 February 2010 Fixes a feature request not to overwrite roles when using the ROLES environmental variable. * #126 - The option to not overwriting the roles which are defined in the task definition. * Removed the `upgrade` file as it has been a couple of years since 1.x was in the wild. * Slight internal re-factor of the way we calculate the `version` ## 2.5.14 / 18 January 2010 Fixes a low-value bug, thanks to Chris G for the well submitted patch: * #139 - Improves consistency of variable lookup, scm variables with a local_ prefix will be honoured with priority locally (Chris Griego) ## 2.5.13 / 6 January 2010 * Small maintenance release: * #118 - Modified CLI test to not load user or system configuration file (Emily Price) * #88 - Re-fixed a problem here, massive apologies to all concerned. (Hangover from 2.5.12) ## 2.5.12 / 5 January 2010 * Tweak the directory version listing (caused a lot of problems, please upgrade immediately) ## 2.5.11 / December 2009 * Deprecations and other small changes ## 2.5.10 / 3 November 2009 * Fixes Darcs remote repository problem when using the copy strategy [Alex `regularfry` Young] * Documentation improvements for embedding Capistrano [Lee Hambley] * Fixes ticket #95 -formally deprecating the before_something and after_something methods [Lee Hambley] ## 2.5.9 / 1 August 2009 * Adds support for customizing which `tar` command to use. [Jeremy Wells] * Fixes a couple of documentation problems, typos and worse. [Lee Hambley] * #105 - Add skip_hostfilter option to find_servers() [Eric] * #103 - Using non-master branch fails with Ruby 1.9 [Suraj Kurapati] * #96 - Tweak for 1.9 Compatibility * #79 - Capistrano hangs on shell command for many computers * #77 - Copy command doesn't work on Solaris due to tar/gtar * #76 - Invalid Subversion URL * Improved web:disable task, now suggests a .htaccess block to use suggested by Rafael García * Includes more logger options (can now select stdout, stderr of a file) [Rafael García] ## 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 http://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 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 ] * 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