Skip to content
This repository
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 1093 lines (603 sloc) 44.959 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092
## 2.13.3 / August 21 2012

This release contains multiple bugfixes and handling of exotic situations. The
`Configuration#capture` method should now work in spite of `ActiveSupport`
shenanigans. Thank you, the community, for all of your contributions:

 * Close input streams when sending commands that don't read input. Dylan Smith
   (dylanahsmith)
 * Listen for method definition on `Kernel` and undefine on `Namespace`. Chris
   Griego (cgriego)
 * Fixed shell `Thread.abort_on_exception` bug. George Malamidis (nutrun)
 * Adding a log method to `Capistrano::Deploy::SCM::None` to maintain
   consistency with other SCM classes. Kevin Lawver (kplawver)
 * Add deprecation warning if someone uses old `deploy:symlink` syntax on
   callbacks. Ken Mazaika (kenmazaika)
 * Simplify the `finalize_update` code by respecting the `:shared_children`
   variable during removal and recreation of the parent. John Knight
   (knightlabs)

## 2.12.0 / April 13 2012

This release reverts the very verbose logging introduced in the previous version, it also
enables a handful of power-user features which are largely un-documented, but shouldn't be
important unless you are looking for them. Undocumented code shouldn't scare you, simply
read through deploy.rb in the Gem if you want to know how a new feature works!

 * Update mapped commands to remove symlink deprecation warning. Despo Pentara (despo)
 * Add the "rpm" remote dependency. Nick Hoffman (nickhoffman)
 * Add commented deploy:cleanup task to default recipe. Jean-Philippe Doyle (j15e)
 * Teach deploy:web:enable to fail gracefully. Lee Marlow (lmarlow)
 * Ticket 193 alias task show wrong name when it is not overridden. Rafa García (rgo)
 * Allow configuration of which roles assets are precompiled on. Frederick Cheung (fcheung)
 * Fix transfer action to honor dry-run flag. Serg Podtynnyi (shtirlic)
 * Changed single to double quotes for Windows, fixes a Windows bug in the HG module. Matthew J Morrison (mattjmorrison)
 * Add UnsharedRemoteCache (copied from eycap gem). Ben Symonds (bensymonds)

As ever, a sincere thanks to all contributors, and do not hesitate to contact me if this
release causes problems for you.

## 2.11.0 / Febuary 20 2012

This release replaces and fixes a broken 2.10.0 release (see below for
information)

This release includes all fixes as documented for 2.10.0, plus additional code
cleanup (SHA: 3eecac2), as well as changing the public API from
`deploy:symlink`, to `deploy:create_symlink`

* Remove a testing dependency on `ruby-debug` (Lee Hambley, reported by Serg
Podtynnyi)

* Formerly deprecate `deploy:symlink`, this move was prompted by the Rake
namespace fiasco of their 0.9.0 release, and is replaced by
`deploy:create_symlink`. If you are looking for a place to hook asset related
tasks, please consider `deploy:finalize_update`. Replaced by
`deploy:create_symlink`, `deploy:symlink` now raises a deprecation warning,
and defers to `deploy:symlink`. (Lee Hambley)

* Update the 2.10.0 changelog. (Lee Hambley, reported by Jérémy Lecour)

## 2.10.0 / Febuary 19 2012

If you are reading this after Febuary 20th 2012, do not be surprised when you
cannot find 2.10.0 on Rubygems.org, it has been removed because of a breaking
API change. It is replaced logically enough by 2.11.0 where the API is still
changed, but now issues a warning and falls back to the expected behaviour.

The CHANGELOG for this release was updated retrospectively, I'm sorry I missed
that when releasing the gem, 2.10.0 apparently not my finest hour as a
maintainer.

Ths fixes in this release include

* Include sample NGinx config for `deploy:web:disable`(added by Roger Ertesvåg)

* Fix gemspec time format warning (reported by Tony Arcieri, fixed by building the Gem against Ruby-1.9.3)

* Finally removed deprecated `before_` and `after_` tasks. (Lee Hambley)

* Rake 0.9.x compatibility (reported by James Miller, fixed by Lee Hambley)

* More detailed logging output (fixed by Huang Liang)

* Includes multistage, without `capistrano-ext`. `require 'capistrano/ext/multistage'` (fixed by Lee Hambley)

## 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).

## 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 <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
Something went wrong with that request. Please try again.