Changelog:
## 2.9.0 / September 24 2011
A vairly heavy release, including some new features which most of you won't
need, but power users have contributed, this also marks the beginning of the
end of the 2.x series, more information will follow in due course, but with
the proliferation of Bundler, and better ways to do deployment, we will be
introducing heavier changes to Capistrano to keep the tool current.
**Please note, following some reported problems with the asset pipeline code
being not found, remember Capistrano needs to be in your Gemfile, and as such
needs to be run with Bundler, otherwise you risk loading a system-wide version
of Capistrano who's behaviour might be different from that specified in your
Gemfile. This is also good practice because much of the deploy logic resides
in the Gem, and you wouldn't want that to change without your knowledge. Rails
applications include Cap in the Gemfile anyway, you should follow this
convention.**
* find_servers() will no longer raise if there are no servers, this behaviour
can be modified by way of the `:on_no_matching_servers` option. Thanks to
`@ppgengler`.
* Short Git SHA1 fragments are now supported in commands such as `cap deploy
-s revision=d7e99f` thanks to `@ndbroadbent`.
* One can now specify individual SCM commands by setting
`:scm_arguments_<command_name>`. Thanks to `@alextk`.
* Travis CI build now passes thanks to @andrew, build tested against MRI
`1.8.7`. `1.9.2` and `REE`.
* Support for Perforce labels, I don't know much about this, but I believe
it's much like deploying a Git tag, thanks to `@ak47`.
* Git SCM now correctly adheres to the `:scm_verbose` setting. Thanks
`@dubek`.
* `set()` can now be used to set a `false` value, previously this was a no-op.
Thanks to `@nilbus`.
* Support for Git 1.6x submodules, The Git SCM strategy now queries Git on the
server-side to ensure it supports the `--recursive` flag, if it doesn't then
it will fall back to using the long-hand. Many thanks to all those involved in
the discussion surrounding this topic, and to `@nilbus` for a beautifully
clean solution which doesn't hold us back.
* When using `:cached_copy` with Subversion, use `svn switch` to for more
reliable switching of branches/etc. Thanks to `@iGEL` for the patch that we
accepted finally, and to `@richmeyers` who also submitted a patch and
contributed to the discssion.
Other cleanups and minor improvements to the code and tests were committed by yours truly
(@leehambley), @maxim, @ak47 and @andrew).
Upstream changelog:
## 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)
Upstream changes:
## 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é)
Upstream changes:
## 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)
- matches previous package name without "${RUBY_PKGPREFIX}-"
- matches current "ruby18-" and "ruby19-" packages
Bump PKGREVISION because addition of latter pattern.
Upstream changes:
== 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
Capistrano is a tool for automating tasks on one or more remote servers.
It executes commands in parallel on all targeted machines, and provides
a mechanism for rolling back changes across multiple machines.