minmb-capistrano 2.15.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (119) hide show
  1. data/.gitignore +10 -0
  2. data/.travis.yml +7 -0
  3. data/CHANGELOG +1170 -0
  4. data/Gemfile +13 -0
  5. data/README.md +94 -0
  6. data/Rakefile +11 -0
  7. data/bin/cap +4 -0
  8. data/bin/capify +92 -0
  9. data/capistrano.gemspec +40 -0
  10. data/lib/capistrano.rb +5 -0
  11. data/lib/capistrano/callback.rb +45 -0
  12. data/lib/capistrano/cli.rb +47 -0
  13. data/lib/capistrano/cli/execute.rb +85 -0
  14. data/lib/capistrano/cli/help.rb +125 -0
  15. data/lib/capistrano/cli/help.txt +81 -0
  16. data/lib/capistrano/cli/options.rb +243 -0
  17. data/lib/capistrano/cli/ui.rb +40 -0
  18. data/lib/capistrano/command.rb +303 -0
  19. data/lib/capistrano/configuration.rb +57 -0
  20. data/lib/capistrano/configuration/actions/file_transfer.rb +50 -0
  21. data/lib/capistrano/configuration/actions/inspect.rb +46 -0
  22. data/lib/capistrano/configuration/actions/invocation.rb +329 -0
  23. data/lib/capistrano/configuration/alias_task.rb +26 -0
  24. data/lib/capistrano/configuration/callbacks.rb +147 -0
  25. data/lib/capistrano/configuration/connections.rb +237 -0
  26. data/lib/capistrano/configuration/execution.rb +142 -0
  27. data/lib/capistrano/configuration/loading.rb +205 -0
  28. data/lib/capistrano/configuration/log_formatters.rb +75 -0
  29. data/lib/capistrano/configuration/namespaces.rb +223 -0
  30. data/lib/capistrano/configuration/roles.rb +77 -0
  31. data/lib/capistrano/configuration/servers.rb +116 -0
  32. data/lib/capistrano/configuration/variables.rb +127 -0
  33. data/lib/capistrano/errors.rb +19 -0
  34. data/lib/capistrano/ext/multistage.rb +64 -0
  35. data/lib/capistrano/ext/string.rb +5 -0
  36. data/lib/capistrano/extensions.rb +57 -0
  37. data/lib/capistrano/fix_rake_deprecated_dsl.rb +8 -0
  38. data/lib/capistrano/logger.rb +166 -0
  39. data/lib/capistrano/processable.rb +57 -0
  40. data/lib/capistrano/recipes/compat.rb +32 -0
  41. data/lib/capistrano/recipes/deploy.rb +625 -0
  42. data/lib/capistrano/recipes/deploy/assets.rb +201 -0
  43. data/lib/capistrano/recipes/deploy/dependencies.rb +44 -0
  44. data/lib/capistrano/recipes/deploy/local_dependency.rb +54 -0
  45. data/lib/capistrano/recipes/deploy/remote_dependency.rb +117 -0
  46. data/lib/capistrano/recipes/deploy/scm.rb +19 -0
  47. data/lib/capistrano/recipes/deploy/scm/accurev.rb +169 -0
  48. data/lib/capistrano/recipes/deploy/scm/base.rb +200 -0
  49. data/lib/capistrano/recipes/deploy/scm/bzr.rb +86 -0
  50. data/lib/capistrano/recipes/deploy/scm/cvs.rb +153 -0
  51. data/lib/capistrano/recipes/deploy/scm/darcs.rb +96 -0
  52. data/lib/capistrano/recipes/deploy/scm/git.rb +293 -0
  53. data/lib/capistrano/recipes/deploy/scm/mercurial.rb +137 -0
  54. data/lib/capistrano/recipes/deploy/scm/none.rb +55 -0
  55. data/lib/capistrano/recipes/deploy/scm/perforce.rb +152 -0
  56. data/lib/capistrano/recipes/deploy/scm/subversion.rb +121 -0
  57. data/lib/capistrano/recipes/deploy/strategy.rb +19 -0
  58. data/lib/capistrano/recipes/deploy/strategy/base.rb +92 -0
  59. data/lib/capistrano/recipes/deploy/strategy/checkout.rb +20 -0
  60. data/lib/capistrano/recipes/deploy/strategy/copy.rb +338 -0
  61. data/lib/capistrano/recipes/deploy/strategy/export.rb +20 -0
  62. data/lib/capistrano/recipes/deploy/strategy/remote.rb +52 -0
  63. data/lib/capistrano/recipes/deploy/strategy/remote_cache.rb +57 -0
  64. data/lib/capistrano/recipes/deploy/strategy/unshared_remote_cache.rb +21 -0
  65. data/lib/capistrano/recipes/standard.rb +37 -0
  66. data/lib/capistrano/recipes/templates/maintenance.rhtml +53 -0
  67. data/lib/capistrano/role.rb +102 -0
  68. data/lib/capistrano/server_definition.rb +56 -0
  69. data/lib/capistrano/shell.rb +265 -0
  70. data/lib/capistrano/ssh.rb +95 -0
  71. data/lib/capistrano/task_definition.rb +77 -0
  72. data/lib/capistrano/transfer.rb +218 -0
  73. data/lib/capistrano/version.rb +11 -0
  74. data/test/cli/execute_test.rb +132 -0
  75. data/test/cli/help_test.rb +165 -0
  76. data/test/cli/options_test.rb +329 -0
  77. data/test/cli/ui_test.rb +28 -0
  78. data/test/cli_test.rb +17 -0
  79. data/test/command_test.rb +322 -0
  80. data/test/configuration/actions/file_transfer_test.rb +61 -0
  81. data/test/configuration/actions/inspect_test.rb +76 -0
  82. data/test/configuration/actions/invocation_test.rb +288 -0
  83. data/test/configuration/alias_task_test.rb +118 -0
  84. data/test/configuration/callbacks_test.rb +201 -0
  85. data/test/configuration/connections_test.rb +439 -0
  86. data/test/configuration/execution_test.rb +175 -0
  87. data/test/configuration/loading_test.rb +148 -0
  88. data/test/configuration/namespace_dsl_test.rb +332 -0
  89. data/test/configuration/roles_test.rb +157 -0
  90. data/test/configuration/servers_test.rb +183 -0
  91. data/test/configuration/variables_test.rb +190 -0
  92. data/test/configuration_test.rb +77 -0
  93. data/test/deploy/local_dependency_test.rb +76 -0
  94. data/test/deploy/remote_dependency_test.rb +146 -0
  95. data/test/deploy/scm/accurev_test.rb +23 -0
  96. data/test/deploy/scm/base_test.rb +55 -0
  97. data/test/deploy/scm/bzr_test.rb +51 -0
  98. data/test/deploy/scm/darcs_test.rb +37 -0
  99. data/test/deploy/scm/git_test.rb +221 -0
  100. data/test/deploy/scm/mercurial_test.rb +134 -0
  101. data/test/deploy/scm/none_test.rb +35 -0
  102. data/test/deploy/scm/perforce_test.rb +23 -0
  103. data/test/deploy/scm/subversion_test.rb +40 -0
  104. data/test/deploy/strategy/copy_test.rb +360 -0
  105. data/test/extensions_test.rb +69 -0
  106. data/test/fixtures/cli_integration.rb +5 -0
  107. data/test/fixtures/config.rb +5 -0
  108. data/test/fixtures/custom.rb +3 -0
  109. data/test/logger_formatting_test.rb +149 -0
  110. data/test/logger_test.rb +134 -0
  111. data/test/recipes_test.rb +25 -0
  112. data/test/role_test.rb +11 -0
  113. data/test/server_definition_test.rb +121 -0
  114. data/test/shell_test.rb +96 -0
  115. data/test/ssh_test.rb +113 -0
  116. data/test/task_definition_test.rb +117 -0
  117. data/test/transfer_test.rb +168 -0
  118. data/test/utils.rb +37 -0
  119. metadata +316 -0
data/.gitignore ADDED
@@ -0,0 +1,10 @@
1
+ coverage
2
+ doc
3
+ pkg
4
+ *.swp
5
+ *.patch
6
+ *.gem
7
+ *.sh
8
+ .DS_Store
9
+ .bundle/*
10
+ Gemfile.lock
data/.travis.yml ADDED
@@ -0,0 +1,7 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.8.7
4
+ - 1.9.2
5
+ - 1.9.3
6
+ - 2.0.0
7
+ - ree
data/CHANGELOG ADDED
@@ -0,0 +1,1170 @@
1
+ ## 2.15.4 / April 29 2013
2
+
3
+ * Fix parallel command logging (@gnufied)
4
+ * Fix a double-asset manifest problem on Rails upgrades. (@jimryan)
5
+
6
+ ## 2.15.3 / April 25 2012
7
+
8
+ * For deploy:cleanup, use try_sudo with rm command. (@joshstaiger)
9
+ * Restore maintenance.rhtml (@chulkilee)
10
+ * Fixes GH-434, If branches is an array of array, iterate them separately. (@gnufied)
11
+
12
+ A big "thank you" to the people who've pushed really amazing patches to the
13
+ 2.15.x branch so soon after it's release. 2.15.0 was just too huge to go out
14
+ bug free.
15
+
16
+ ## 2.15.2 / April 24 2013
17
+
18
+ * Fixed a bug with asset_paths (String vs. Array). (@joeycarmello)
19
+
20
+ ## 2.15.1 / April 23 2013
21
+
22
+ * Support for Rails 4 (and other) randomised asset manifest names. (@jimryan)
23
+
24
+ ## 2.15.0 / April 23 2013
25
+
26
+ * New varaible :shared_assets_prefix to allow people to host somewhere other
27
+ than `/assets/`. Default is `assets`.
28
+ * Bring back web:enable and web:disable tasks. Sincerely apologies to all affected
29
+ removing these was one of the most glaring mistakes we've made on this project
30
+ and I feel personally responsible.
31
+ * Makes :git_shallow_clone work with branches (@cannikin)
32
+ * Avoid removing required assets (@bosko)
33
+ * Fix escaping of asset_paths when calling `deploy:finalize_update` (@mcary)
34
+ * Improve parallel command logging (@mpapis)
35
+ * Allow updating variables in the cap shell `cap> set :some_setting new_value`
36
+ (@jpfuentes2)
37
+ * Add the option to configure `Capistrano::Logger.default_formatters=` this
38
+ relates to the previous merging of the capistrano-colors gem. (@kellyredding)
39
+ * Don't attempt to connect to a nil `:gateway` (@mattheath)
40
+ * Simplify our .gemspec dependency list (@timoschilling)
41
+ * Make the existece of `config/deploy/{stage}.rb` optional, it'll be loaded if
42
+ it exists, otherwise we continue without it (@ymainier)
43
+ * Misc spelling/typo fixes. (@mv)
44
+ * Update mtime and atime with touch when fixing asset timestamps (@wildoats)
45
+ * Change call of `rake {env} precompile:all` to drop the errornous `{env}` (@zxiest)
46
+ * Evaluate assets_role at runtime using a lambda (@nlenepveu)
47
+ * Handle when hosts (for example by joining/leaving the no_release meta group)
48
+ have different old releases for `deploy:cleanup` (@oggy)
49
+ * Check for nil when tearing down connections (@yyuu)
50
+ * Go back to using SCP for uploads as against SFTP (@pjungwir)
51
+ * Added an option to dereference symlinks when using the :copy strategy
52
+ (`set :copy_dereference_symlink, true`) useful when your working directory
53
+ contains files symlinked in from outside your project root (@mehmetc)
54
+ * Small typo fix in README (@yule)
55
+ * Add Ruby 2.0.0-p0 to the TravisCI build (@jarrettmeyer)
56
+ * Add the option to set the shared asset prefix for Rails,
57
+ (`set :shared_assets_prefix, "my_shared_assets"`) corresponds with it's
58
+ namesake in Rails. By default is set to `assets`. (@spectator)
59
+ * Improved error messages for `cap {stage} deploy:check` (@petems)
60
+ * Make `run_locally` work with the `--dry-run` flag. (@flagthisiskun)
61
+ * Fix a link in the README to writing a good commit message. (@mhutchin)
62
+ * Code style fixes (@mv)
63
+ * Report differently if the command was killed by a signal (for example the
64
+ oom killer on Ubuntu/Debian). (@tanob)
65
+
66
+
67
+ ## 2.14.0 / January 9 2013
68
+
69
+ * Removed ui.output_cols limit of 80 chars (@aussielunix)
70
+ * Added :p4charset variable for Perforce command line (@randyinla)
71
+ * Added support for rolling back assets, and removing expired assets (@ndbroadbent)
72
+ * Merged in `capistrano_colors` gem, and renamed to 'log_formatters', since it does much more than just colors
73
+ (@ndbroadbent)
74
+ * Use more intelligence in setting the :scm variable based on known version control directory names (@czarneckid)
75
+ * Remove the deploy:web:{disable, enable} tasks (@carsomyr)
76
+ * Group finalize_update shell commands into one command, harden shell calls with #shellescape, and separate arguments
77
+ with -- (@ndbroadbent)
78
+
79
+ ## 2.13.0 / August 21 2012
80
+
81
+ This release contains multiple bugfixes and handling of exotic situations. The
82
+ `Configuration#capture` method should now work in spite of `ActiveSupport`
83
+ shenanigans. Thank you, the community, for all of your contributions:
84
+
85
+ * Close input streams when sending commands that don't read input. Dylan Smith
86
+ (dylanahsmith)
87
+ * Listen for method definition on `Kernel` and undefine on `Namespace`. Chris
88
+ Griego (cgriego)
89
+ * Fixed shell `Thread.abort_on_exception` bug. George Malamidis (nutrun)
90
+ * Adding a log method to `Capistrano::Deploy::SCM::None` to maintain
91
+ consistency with other SCM classes. Kevin Lawver (kplawver)
92
+ * Add deprecation warning if someone uses old `deploy:symlink` syntax on
93
+ callbacks. Ken Mazaika (kenmazaika)
94
+ * Simplify the `finalize_update` code by respecting the `:shared_children`
95
+ variable during removal and recreation of the parent. John Knight
96
+ (knightlabs)
97
+
98
+ ## 2.12.0 / April 13 2012
99
+
100
+ This release reverts the very verbose logging introduced in the previous version, it also
101
+ enables a handful of power-user features which are largely un-documented, but shouldn't be
102
+ important unless you are looking for them. Undocumented code shouldn't scare you, simply
103
+ read through deploy.rb in the Gem if you want to know how a new feature works!
104
+
105
+ * Update mapped commands to remove symlink deprecation warning. Despo Pentara (despo)
106
+ * Add the "rpm" remote dependency. Nick Hoffman (nickhoffman)
107
+ * Add commented deploy:cleanup task to default recipe. Jean-Philippe Doyle (j15e)
108
+ * Teach deploy:web:enable to fail gracefully. Lee Marlow (lmarlow)
109
+ * Ticket 193 alias task show wrong name when it is not overridden. Rafa García (rgo)
110
+ * Allow configuration of which roles assets are precompiled on. Frederick Cheung (fcheung)
111
+ * Fix transfer action to honor dry-run flag. Serg Podtynnyi (shtirlic)
112
+ * Changed single to double quotes for Windows, fixes a Windows bug in the HG module. Matthew J Morrison (mattjmorrison)
113
+ * Add UnsharedRemoteCache (copied from eycap gem). Ben Symonds (bensymonds)
114
+
115
+ As ever, a sincere thanks to all contributors, and do not hesitate to contact me if this
116
+ release causes problems for you.
117
+
118
+ ## 2.11.0 / Febuary 20 2012
119
+
120
+ This release replaces and fixes a broken 2.10.0 release (see below for
121
+ information)
122
+
123
+ This release includes all fixes as documented for 2.10.0, plus additional code
124
+ cleanup (SHA: 3eecac2), as well as changing the public API from
125
+ `deploy:symlink`, to `deploy:create_symlink`
126
+
127
+ * Remove a testing dependency on `ruby-debug` (Lee Hambley, reported by Serg
128
+ Podtynnyi)
129
+
130
+ * Formerly deprecate `deploy:symlink`, this move was prompted by the Rake
131
+ namespace fiasco of their 0.9.0 release, and is replaced by
132
+ `deploy:create_symlink`. If you are looking for a place to hook asset related
133
+ tasks, please consider `deploy:finalize_update`. Replaced by
134
+ `deploy:create_symlink`, `deploy:symlink` now raises a deprecation warning,
135
+ and defers to `deploy:symlink`. (Lee Hambley)
136
+
137
+ * Update the 2.10.0 changelog. (Lee Hambley, reported by Jérémy Lecour)
138
+
139
+ ## 2.10.0 / Febuary 19 2012
140
+
141
+ If you are reading this after Febuary 20th 2012, do not be surprised when you
142
+ cannot find 2.10.0 on Rubygems.org, it has been removed because of a breaking
143
+ API change. It is replaced logically enough by 2.11.0 where the API is still
144
+ changed, but now issues a warning and falls back to the expected behaviour.
145
+
146
+ The CHANGELOG for this release was updated retrospectively, I'm sorry I missed
147
+ that when releasing the gem, 2.10.0 apparently not my finest hour as a
148
+ maintainer.
149
+
150
+ Ths fixes in this release include
151
+
152
+ * Include sample NGinx config for `deploy:web:disable`(added by Roger Ertesvåg)
153
+
154
+ * Fix gemspec time format warning (reported by Tony Arcieri, fixed by building the Gem against Ruby-1.9.3)
155
+
156
+ * Finally removed deprecated `before_` and `after_` tasks. (Lee Hambley)
157
+
158
+ * Rake 0.9.x compatibility (reported by James Miller, fixed by Lee Hambley)
159
+
160
+ * More detailed logging output (fixed by Huang Liang)
161
+
162
+ * Includes multistage, without `capistrano-ext`. `require 'capistrano/ext/multistage'` (fixed by Lee Hambley)
163
+
164
+ ## 2.9.0 / September 24 2011
165
+
166
+ A vairly heavy release, including some new features which most of you won't
167
+ need, but power users have contributed, this also marks the beginning of the
168
+ end of the 2.x series, more information will follow in due course, but with
169
+ the proliferation of Bundler, and better ways to do deployment, we will be
170
+ introducing heavier changes to Capistrano to keep the tool current.
171
+
172
+ **Please note, following some reported problems with the asset pipeline code
173
+ being not found, remember Capistrano needs to be in your Gemfile, and as such
174
+ needs to be run with Bundler, otherwise you risk loading a system-wide version
175
+ of Capistrano who's behaviour might be different from that specified in your
176
+ Gemfile. This is also good practice because much of the deploy logic resides
177
+ in the Gem, and you wouldn't want that to change without your knowledge. Rails
178
+ applications include Cap in the Gemfile anyway, you should follow this
179
+ convention.**
180
+
181
+ * find_servers() will no longer raise if there are no servers, this behaviour
182
+ can be modified by way of the `:on_no_matching_servers` option. Thanks to
183
+ `@ppgengler`.
184
+
185
+ * Short Git SHA1 fragments are now supported in commands such as `cap deploy
186
+ -s revision=d7e99f` thanks to `@ndbroadbent`.
187
+
188
+ * One can now specify individual SCM commands by setting
189
+ `:scm_arguments_<command_name>`. Thanks to `@alextk`.
190
+
191
+ * Travis CI build now passes thanks to @andrew, build tested against MRI
192
+ `1.8.7`. `1.9.2` and `REE`.
193
+
194
+ * Support for Perforce labels, I don't know much about this, but I believe
195
+ it's much like deploying a Git tag, thanks to `@ak47`.
196
+
197
+ * Git SCM now correctly adheres to the `:scm_verbose` setting. Thanks
198
+ `@dubek`.
199
+
200
+ * `set()` can now be used to set a `false` value, previously this was a no-op.
201
+ Thanks to `@nilbus`.
202
+
203
+ * Support for Git 1.6x submodules, The Git SCM strategy now queries Git on the
204
+ server-side to ensure it supports the `--recursive` flag, if it doesn't then
205
+ it will fall back to using the long-hand. Many thanks to all those involved in
206
+ the discussion surrounding this topic, and to `@nilbus` for a beautifully
207
+ clean solution which doesn't hold us back.
208
+
209
+ * When using `:cached_copy` with Subversion, use `svn switch` to for more
210
+ reliable switching of branches/etc. Thanks to `@iGEL` for the patch that we
211
+ accepted finally, and to `@richmeyers` who also submitted a patch and
212
+ contributed to the discssion.
213
+
214
+ Other cleanups and minor improvements to the code and tests were committed by yours truly
215
+ (@leehambley), @maxim, @ak47 and @andrew).
216
+
217
+ ## 2.8.0 / August 3 2011
218
+
219
+ A short release, after the last. Announcing Rails 3.1 asset pipeline support.
220
+
221
+ The asset pipeline support requires an additiona `load` in your `Capfile`.
222
+
223
+ You can see information pertaining to the pull request, including the inline
224
+ comments here: https://github.com/capistrano/capistrano/pull/35
225
+
226
+ Documentation will be available soon in the wiki.
227
+
228
+ * Drop-In Rails 3.1 asset pipeline support. (Chris Griego)
229
+
230
+ ## 2.7.0 / August 3 2011
231
+
232
+ A fairly substantial release. There are fixes so that current_release works
233
+ during dry-runs, (although, apparently still not with bundler.)
234
+
235
+ The test-suite was also modified to work with Ruby 1.9.2, except in one case
236
+ where Ruby 1.9.x calls `to_ary` and `to_a` on mocks, which still makes an
237
+ error. 1.9.x has always been supported, but due to lack of maintenance on my
238
+ part the tests didn't ever pass.
239
+
240
+ The `start`, `stop` and `restart` tasks have been reduced to mere hooks into
241
+ which extensions can define their own functionality.
242
+
243
+ The `readme` was also slightly improved, simply tweaks to express how best to
244
+ run the test suite.
245
+
246
+ * Ensure dry-run works with `:current_release` variable (Carol Nichols)
247
+ * Added a new variable `:git_submodules_recursive`, setting the value to false
248
+ will ensure Git doesn't recursively initialize and checkout submodules. (Konstantin Kudryashov)
249
+ * Added an additional task option, `:on_no_matching_servers`, setting the
250
+ value to `:continue` will ensure tasks with no matched servers continue
251
+ without error, instead of raising `Capistrano::NoMatchingServersError` as was
252
+ the previous behaviour. (Chris Griego)
253
+
254
+ A huge thanks to all contributors, as always!
255
+
256
+ Remember: @capistranorb on twitter for news.
257
+
258
+ ## 2.6.1 / June 25 2011
259
+
260
+ A short maintenance release, Some fixes to the verbose flag inside the Git SCM
261
+ as well as another argument for the (internal) `variable()` command, offering
262
+ a default. The Git SCM is now verbose by default, but can be disabled by
263
+ setting `:scm_verbose` to false.
264
+
265
+ There has been an additional method added to string, within the context of the
266
+ test suite, I'm always sketchy about adding additional methods to core
267
+ classes, but it's a short term fix until I make the time to patch the test
268
+ suite not to compare strings literally. The method is `String#compact`, and is
269
+ implemented simply as `self.gsub(/\s+/, ' ')`.
270
+
271
+ Here's the run-down of changes, and their committers, as always - a huge thank
272
+ you to the community that continues to drive Capistrano's development.
273
+
274
+ * `deploy:setup` now respects `:group_writable` (Daniel Duvall)
275
+ * Fixes to `:scm_verbose` for the Git module (defaults to On.) (Matthew Davies)
276
+ * Will now copy hidden files in the project's root into the release
277
+ directory (Mark Jaquith)
278
+ * Now handles closing already-dead connections in a sane way (does not raise
279
+ an exception) (Will Bryant)
280
+ * Renamed `Capistrano::VERSION::TINY` to `Capistrano::VERSION::PATCH` (Lee
281
+ Hambley)
282
+ * Removed the `VERSION` file (Lee Hambley)
283
+
284
+ ## 2.6.0 / May 3 2011
285
+
286
+ A rather large release, feature-version bump because of the new
287
+ multiple-gateways feature as implemented by Ryan Duryea (way to go!)
288
+
289
+ Please also note from this release that if you use Git submodules, the
290
+ Git-version requirement for the new implementation is now >= 1.5.6, from
291
+ previously un-documented. (1.5.6 is new-enough that I think this is
292
+ acceptable)
293
+
294
+ * Upgrade Net::SSH-gateway dependency to 1.1 (fixes a thread-deadlocking bug on MRI 1.9)
295
+ * Respect "dry-run" on transfer methods (Florian Frank)
296
+ * Add support for multiple gateways: (Ryan Duryea)
297
+ set :gateway, {
298
+ 'gate1.example.com' => 'server1.example.com',
299
+ [ 'gate2.example.com', 'gate3.example.com' ] => [ 'server5.example.com', 'server6.example.com' ]
300
+ }
301
+ * Properly support nested Git submodules, moves Git requirement to >= 1.5.6 [if you rely upon submodules] (Ken Miller)
302
+ * Fetch tags into the remote cache, allows deploying a tag when using Git, with the remote_cache strategy (Florian Frank)
303
+ * Various fixes to path handling bugs in the copt strategy. (Philippe Rathé)
304
+
305
+ ## 2.5.21 / April 6 2011
306
+
307
+ * Fixed to follow best-practice guidelines from Bundler (Ben Langfeld)
308
+ * No longer force a gemset for Capistrano development. (Ben Langfeld)
309
+
310
+ ## 2.5.20 / March 16 2011
311
+
312
+ * `deploy:migrations` will now always operate on the latest_release, not
313
+ current_release (Mike Vincent)
314
+ * Adds a check for the presence of `rsync` when using the copy strategy with `rsync`. (Chris Griego)
315
+ * Do not try to look up the `:release_path` on servers which are defined `:no_release` (Chris Griego)
316
+ * Tiny patch to the `CVS` SCM code to be Ruby 1.9 compatible (Martin Carpenter)
317
+ * Changed the default `Git` submodule behaviour to use `--recursive`, Lighthouse Issue #176. (Lee Hambley)
318
+ * `:public_children` can now be `set()`, the default is unchanged, thanks (Chris Griego)
319
+ * Fixing the load path in the default `Capfile` to search vendored/unpacked Gems. Lighthouse Issue #174 (Mari Carmen/Rafael García)
320
+ * Adds a `maintenance_basename` variable (default value is `maintenance`) to allow you to set the maintenance page name (Celestino Gomes)
321
+ * Spelling fixes in inline-documentation (Tom Copeland)
322
+ * Make `zip` and `tar` handle symlinks the same way (zip follows symlinks by default, tar needs the option `-h`) (Ross Cooperman)
323
+
324
+ ## 2.5.19 / June 21, 2010
325
+
326
+ * Small bug fixes, no improvements for people who weren't experiencing problems anyway.
327
+
328
+ ## 2.5.18 / March 14, 2010
329
+
330
+ Small fix for rolling back if a shell scripts exits non-zero; enabled a rollback if git (or other) externals fail during the deploy.
331
+
332
+ * #151 check return code status of system command to create local copy and rollback if not 0 (David King)
333
+
334
+ ## 2.5.17 / February 27, 2010
335
+
336
+ Various small bug fixes.
337
+
338
+ ## 2.5.16 / February 14, 2010
339
+
340
+ Fixed a small regression in 2.5.15
341
+
342
+ ## 2.5.15 / 14 February 2010
343
+
344
+ Fixes a feature request not to overwrite roles when using the ROLES environmental variable.
345
+
346
+ * #126 - The option to not overwriting the roles which are defined in the task definition.
347
+ * Removed the `upgrade` file as it has been a couple of years since 1.x was in the wild.
348
+ * Slight internal re-factor of the way we calculate the `version`
349
+
350
+ ## 2.5.14 / 18 January 2010
351
+
352
+ Fixes a low-value bug, thanks to Chris G for the well submitted patch:
353
+
354
+ * #139 - Improves consistency of variable lookup, scm variables with a local_ prefix will be honoured with priority locally (Chris Griego)
355
+
356
+ ## 2.5.13 / 6 January 2010
357
+
358
+ * Small maintenance release:
359
+
360
+ * #118 - Modified CLI test to not load user or system configuration file (Emily Price)
361
+ * #88 - Re-fixed a problem here, massive apologies to all concerned. (Hangover from 2.5.12)
362
+
363
+ ## 2.5.12 / 5 January 2010
364
+
365
+ * Tweak the directory version listing (caused a lot of problems, please upgrade immediately)
366
+
367
+ ## 2.5.11 / December 2009
368
+
369
+ * Deprecations and other small changes
370
+
371
+ ## 2.5.10 / 3 November 2009
372
+
373
+ * Fixes Darcs remote repository problem when using the copy strategy [Alex `regularfry` Young]
374
+ * Documentation improvements for embedding Capistrano [Lee Hambley]
375
+ * Fixes ticket #95 -formally deprecating the before_something and after_something methods [Lee Hambley]
376
+
377
+ ## 2.5.9 / 1 August 2009
378
+
379
+ * Adds support for customizing which `tar` command to use. [Jeremy Wells]
380
+
381
+ * Fixes a couple of documentation problems, typos and worse. [Lee Hambley]
382
+
383
+ * #105 - Add skip_hostfilter option to find_servers() [Eric]
384
+ * #103 - Using non-master branch fails with Ruby 1.9 [Suraj Kurapati]
385
+ * #96 - Tweak for 1.9 Compatibility
386
+ * #79 - Capistrano hangs on shell command for many computers
387
+ * #77 - Copy command doesn't work on Solaris due to tar/gtar
388
+ * #76 - Invalid Subversion URL
389
+ * Improved web:disable task, now suggests a .htaccess block to use suggested by Rafael García
390
+ * Includes more logger options (can now select stdout, stderr of a file) [Rafael García]
391
+
392
+ ## 2.5.8 / July 2009
393
+
394
+ * Fixes a problem in 2.5.7 where deploy:finalize_update had been badly merged.
395
+
396
+ ## 2.5.6 & 2.5.7 / July 2009
397
+
398
+ * 2.5.7 masks a broken 2.5.6 release that was accidentally mirrored via Rubyforge.
399
+
400
+ * Clean the cached git repository [Graeme Mathieson]
401
+
402
+ * Fixes perforce issues reported at http://bit.ly/wt0es [Scott Johnson]
403
+
404
+ * Improved back-tick handling code in relation to the above.
405
+
406
+ * Fixes a Git issue when submodules update upstream. (via mailing list) [sneakin]
407
+
408
+ * Capify now creates the config directory in directories without one.
409
+
410
+ ## 2.5.5 / 24 Feb 2009
411
+
412
+ * Make sure role(:foo) actually declares an (empty) role for :foo, even without server arguments [Jamis Buck]
413
+
414
+
415
+ ## 2.5.4 / 4 Feb 2009
416
+
417
+ * When using rsync with the remote_cache strategy include -t switch to preserve file times [Kevin McCarthy]
418
+
419
+ * Bump Net::SSH dependency to version 2.0.10 [Jamis Buck]
420
+
421
+ * Use 'user' from .ssh/config appropriately [Jamis Buck]
422
+
423
+ * Allow respond_to?() method to accept optional second parameter (include_priv) [Matthias Marschall]
424
+
425
+ * 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]
426
+
427
+ * Add supported environment variables to -H output [François Beausoleil]
428
+
429
+
430
+ ## 2.5.3 / December 6, 2008
431
+
432
+ * Make previous_release return nil if there is no previous release [Mathias Meyer]
433
+
434
+ * Play nice with rubies that don't inspect terminals well (ie. JRuby) by defaulting screen columns to 80 [Bob McWhirter]
435
+
436
+ * Rollback of deploy:symlink would explode if there was no previous revision to rollback to [Jamis Buck]
437
+
438
+ * Fix bug in transfer.rb that caused get/put/upload/download to ignore blocks passed to them [arika]
439
+
440
+ * 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]
441
+
442
+
443
+ ## 2.5.2 / November 13, 2008
444
+
445
+ * Fix issue with git SCM that caused "Unable to resolve revision for 'HEAD'" errors on deploy [Jamis Buck]
446
+
447
+
448
+ ## 2.5.1 / November 7, 2008
449
+
450
+ * Add -t (--tools) switch for better task lists for external tools [Jamis Buck]
451
+
452
+ * Make the RemoteDependency#try method use invoke_command instead of run, for sudo-ability [Matthias Marschall]
453
+
454
+ * Make locally executed commands in Windows more Windows-friendly [esad@esse.at]
455
+
456
+ * Added :scm_arguments variable for custom SCM arguments (subversion-only, currently) [David Abdemoulaie]
457
+
458
+ * Don't emit -p for sudo when :sudo_prompt is blank [Matthias Marschall]
459
+
460
+ * Copy symlinks when using rsync [Paul Paradise]
461
+
462
+ * Make sure git query-revision matches on exact branch name [grant@nightriot.com]
463
+
464
+ * Use -T <arg> to filter listed tasks by a pattern [Mathias Meyer, Geoffrey Grosenbach]
465
+
466
+ * Expose the #scm method on SCM::Base for building custom scm commands [Mathias Meyer]
467
+
468
+ * Start logging some locally executed commands [springyweb]
469
+
470
+ * Added HOSTFILTER environment variable for constraining tasks so they run only on hosts matching the given list of servers [Walter Smith]
471
+
472
+ * Make sure the glob matching for copy excludes does not delete parent directories [Fabio Akita]
473
+
474
+ * Ruby 1.9 compatibility [Jamis Buck]
475
+
476
+
477
+ ## 2.5.0 / August 28, 2008
478
+
479
+ * Allow :gateway to be set to an array, in which case a chain of tunnels is created [Kerry Buckley]
480
+
481
+ * Allow HOSTS spec to override even non-existent roles [Mike Bailey]
482
+
483
+ * Sort releases via "ls -xt" instead of "ls -x" to allow for custom release names [Yan Pritzker]
484
+
485
+ * Convert arguments to -s and -S into integers, booleans, etc. based on whether the arguments appear to be those types [Jamis Buck]
486
+
487
+ * Add descriptions of -n and -d to the verbose help text [Jamis Buck]
488
+
489
+ * Make rollbacks work with processes that need the current directory to be valid in order to restart properly (e.g. mongrel_rails) [Jamis Buck]
490
+
491
+ * Rename deploy:rollback_code to deploy:rollback:code [Jamis Buck]
492
+
493
+ * Added parallel() helper for executing multiple different commands in parallel [Jamis Buck]
494
+
495
+ * Make sure a task only uses the last on_rollback block, once, on rollback [Jamis Buck]
496
+
497
+ * Add :shared_children variable to customize which subdirectories are created by deploy:setup [Jonathan Share]
498
+
499
+ * Allow filename globbing in copy_exclude setting for the copy strategy [Jonathan Share]
500
+
501
+ * Allow remote_cache strategy to use copy_exclude settings (requires rsync) [Lewis Mackenzie]
502
+
503
+ * Make None SCM module work in Windows [Carlos Kozuszko]
504
+
505
+ * Recognize mingw as a Windows platform [Carlos Kozuszko]
506
+
507
+ * Fixed failing tests in Windows [Carlos Kozuszko]
508
+
509
+ * Made :scm_auth_cache control whether password option is emitted in subversion module [Brendan Schwartz]
510
+
511
+ * Fixed timestamp bug in CVS module [Jørgen Fjeld]
512
+
513
+ * Added -n/--dry-run switch, to display but not execute remote tasks [Paul Gross]
514
+
515
+
516
+ ## 2.4.3 / June 28, 2008
517
+
518
+ * Fix gem dependencies so gem actually understands them [Jamis Buck]
519
+
520
+
521
+ ## 2.4.2 / June 27, 2008
522
+
523
+ * Specify gem dependencies in rakefile [Jamis Buck]
524
+
525
+
526
+ ## 2.4.1 / June 27, 2008
527
+
528
+ * Use Echoe to manage the Rakefile [Jamis Buck]
529
+
530
+ * Let Net::SSH manage the default SSH port selection [Ben Lavender]
531
+
532
+ * Changed capture() helper to not raise an exception on error, but to warn instead [Jeff Forcier]
533
+
534
+
535
+ ## 2.4.0 / June 13, 2008
536
+
537
+ * Added :normalize_asset_timestamps option to deployment, defaulting to true, which allows asset timestamping to be disabled [John Trupiano]
538
+
539
+
540
+ ## 2.4.0 Preview Release #1 (2.3.101) / June 5, 2008
541
+
542
+ * 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]
543
+
544
+ * 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]
545
+
546
+ * Make deploy:upload use the upload() helper for more efficient directory processing [Jamis Buck]
547
+
548
+ * Make deploy:upload accept globs [Mark Imbriaco]
549
+
550
+ * Make sure the host is reported with the output from scm_run [Jamis Buck]
551
+
552
+ * Make git SCM honor the :scm_verbose option [Jamis Buck]
553
+
554
+ * Don't follow symlinks when using :copy_cache [Jamis Buck]
555
+
556
+ * If :mode is given to upload() helper, do a chmod after to set the mode [Jamis Buck]
557
+
558
+ * Fix load_from_file method for windows users [Neil Wilson]
559
+
560
+ * Display a deprecation error if a remote git branch is specified [Tim Harper]
561
+
562
+ * Fix deployment recipes to use the updated sudo helper [Jamis Buck]
563
+
564
+ * Enhance the sudo helper so it can be used to return the command, instead of executing it [Jamis Buck]
565
+
566
+ * Revert "make sudo helper play nicely with complex command chains", since it broke stuff [Jamis Buck]
567
+
568
+ * Make set(:default_shell, false) work for not using a shell on a per-command basis [Ryan McGeary]
569
+
570
+ * Improved test coverage [Ryan McGeary]
571
+
572
+ * Fixed "coverage" take task [Ryan McGeary]
573
+
574
+ * Use upload() instead of put() with the copy strategy [Jamis Buck]
575
+
576
+ * Revert the "git fetch --tags" change, since it didn't work as expected [Jamis Buck]
577
+
578
+ * Fix deploy:pending when using git SCM [Ryan McGeary]
579
+
580
+ * Make sure deploy:check works with :none scm (which has no default command) [Jamis Buck]
581
+
582
+ * Add debug switch for enabling conditional execution of commands [Mark Imbriaco]
583
+
584
+
585
+ ## 2.3.0 / May 2, 2008
586
+
587
+ * 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]
588
+
589
+ * Make sudo helper play nicely with complex command chains [Jamis Buck]
590
+
591
+ * Expand file-transfer options with new upload() and download() helpers. [Jamis Buck]
592
+
593
+ * Allow SCP transfers in addition to SFTP. [Jamis Buck]
594
+
595
+ * Use Net::SSH v2 and Net::SSH::Gateway. [Jamis Buck]
596
+
597
+ * Added #export method for git SCM [Phillip Goldenburg]
598
+
599
+ * 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]
600
+
601
+ * Allow :ssh_options hash to be specified per server [Jesse Newland]
602
+
603
+ * Added support for depend :remote, :file to test for existence of a specific file [Andrew Carter]
604
+
605
+ * Ensure that the default run options are mixed into the command options when executing a command from the cap shell [Ken Collins]
606
+
607
+ * Added :none SCM module for deploying a specific directory's contents [Jamis Buck]
608
+
609
+ * Improved "copy" strategy supports local caching and pattern exclusion (via :copy_cache and :copy_exclude variables) [Jamis Buck]
610
+
611
+
612
+ ## 2.2.0 / February 27, 2008
613
+
614
+ * Fix git submodule support to init on sync [halorgium]
615
+
616
+ * Add alternative server-centric role definition method [James Duncan Davidson]
617
+
618
+ * Add support for password prompts from the Mercurial SCM [ches]
619
+
620
+ * Add support for :max_hosts option in task definition or run() [Rob Holland <rob@inversepath.com>]
621
+
622
+ * Distributed git support for better operability with remote_cache strategy [voidlock]
623
+
624
+ * Use a default line length in help text if line length is otherwise too small [Jamis Buck]
625
+
626
+ * Fix incorrect reference to the 'setup' task in task documentation [rajeshduggal]
627
+
628
+ * Don't try to kill the spawner process on deploy:stop if no spawner process exists [Jamis Buck]
629
+
630
+ * Dynamic roles (e.g. role(:app) { "host.name" }) [dmasover]
631
+
632
+ * Implement Bzr#next_revision so that pending changes can be reported correctly [casret]
633
+
634
+ * Use a proper export command for bzr SCM [drudru]
635
+
636
+ * Use checkout instead of merge for git SCM [nuttycom]
637
+
638
+ * Fix typo in Subversion SCM module, encountered when an update fails [kemiller]
639
+
640
+ * Fix documentation typo in upload.rb [evolving_jerk]
641
+
642
+ * Added test case to show that the :scm_command is honored by the git SCM module [grempe]
643
+
644
+ * Fail gracefully when double-colons are used to delimit namespaces [richie]
645
+
646
+ * Add support for :git_enable_submodules variable, to enable submodules with the git SCM [halorgium]
647
+
648
+ * If subversion asks for a password, prompt as a last resort [Jamis Buck]
649
+
650
+ * Use checkout --lightweight for bzr checkout, instead of branch [michiels]
651
+
652
+ * Make sure bzr SCM works when revision is head (or unspecified) [michiels]
653
+
654
+ * Support p4sync_flags and p4client_root variables for Perforce [gseidman]
655
+
656
+ * Prepare for Net::SSH v2 by making sure Capistrano only tries to load Net::SSH versions less than 1.99.0 [Jamis Buck]
657
+
658
+
659
+ ## 2.1.0 / October 14, 2007
660
+
661
+ * Default to 0664 instead of 0660 on upload [Jamis Buck]
662
+
663
+ * Fix deploy:pending to query SCM for the subsequent revision so that it does not include the last deployed change [Jamis Buck]
664
+
665
+ * Prefer 'Last Changed Rev' over 'Revision' when querying latest revision via Subversion [Jamis Buck]
666
+
667
+ * Explicitly require 'stringio' in copy_test [mislav]
668
+
669
+ * When Subversion#query_revision fails, give a more sane error [Jamis Buck]
670
+
671
+ * Don't run the upgrade:revisions task on non-release servers [Jamis Buck]
672
+
673
+ * Fix cap shell to properly recognize sudo prompt [Mark Imbriaco, barnaby, Jamis Buck]
674
+
675
+ * Git SCM module [Garry Dolley, Geoffrey Grosenbach, Scott Chacon]
676
+
677
+ * Use the --password switch for subversion by default, but add :scm_prefer_prompt variable (defaults to false) [Jamis Buck]
678
+
679
+
680
+ ## 2.0.100 (2.1 Preview 1) / September 1, 2007
681
+
682
+ * capify-generated Capfile will autoload all recipes from vendor/plugins/*/recipes/*.rb [Graeme Mathieson]
683
+
684
+ * Use sudo -p switch to set sudo password prompt to something predictable [Mike Bailey]
685
+
686
+ * Allow independent configurations to require the same recipe file [Jamis Buck]
687
+
688
+ * Set :shell to false to run a command without wrapping it in "sh -c" [Jamis Buck]
689
+
690
+ * Don't request a pty by default [Jamis Buck]
691
+
692
+ * Add a "match" remote dependency method [Adam Greene]
693
+
694
+ * Allow auth-caching of subversion credentials to be enabled via :scm_auth_cache [tsmith]
695
+
696
+ * Don't let a task trigger itself when used as the source for an "on" hook [Jamis Buck]
697
+
698
+ * Avoid using the --password switch with subversion for security purposes [sentinel]
699
+
700
+ * Add version_dir, current_dir, and shared_dir variables for naming the directories used in deployment [drinkingbird]
701
+
702
+ * Use Windows-safe binary reads for reading file contents [Ladislav Martincik]
703
+
704
+ * Add Accurev SCM support [Doug Barth]
705
+
706
+ * Use the :runner variable to determine who to sudo as for deploy:restart [Graham Ashton]
707
+
708
+ * Add Namespaces#top to always return a reference to the topmost namespace [Jamis Buck]
709
+
710
+ * Change the "-h" output so that it does not say that "-q" is the default [Jamis Buck]
711
+
712
+
713
+ ## 2.0.0 / July 21, 2007
714
+
715
+ * Make the "no matching servers" error more sane [halorgium]
716
+
717
+ * Make sure the invoke task gives a sane error when the COMMAND value is omitted [halorgium]
718
+
719
+ * Make sure variables are conditionally set in the deploy recipes, so as not to clobber values set elsewhere [Jamis Buck]
720
+
721
+ * Fix "input stream is empty" errors from HighLine on prompt [Jamis Buck]
722
+
723
+ * Added "synchronous_connect" setting to try and work around SFTP hangs for certain users [Jamis Buck]
724
+
725
+ * Auto-require the SSH shell service, to avoid race conditions [Jamis Buck]
726
+
727
+ * Add a millisecond sleep in upload to reduce CPU impact [Jamis Buck]
728
+
729
+ * Allow the logger to be set via Configuration#logger= [Jamis Buck]
730
+
731
+ * Allow $CAPISTRANO:HOST$ to be used in filenames to the put command [Jamis Buck]
732
+
733
+ * Allow execute_on_servers to be called without a current task again [Jamis Buck]
734
+
735
+ * Put $stdout in sync mode, so that Net::SSH prompts are displayed [Jamis Buck]
736
+
737
+ * Make sure deploy:check aborts if it fails [Jamis Buck]
738
+
739
+ * Spelling corrections in docs [Tim Carey-Smith, Giles Bowkett]
740
+
741
+
742
+ ## 1.99.3 (2.0 Preview 4) / June 28, 2007
743
+
744
+ * Don't break task descriptions on a period that appears in the middle of a sentence [Jamis Buck]
745
+
746
+ * 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]
747
+
748
+ * Use correct parameters for Logger constructor in the SCM and Strategy base initializers [Jamis Buck]
749
+
750
+ * 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]
751
+
752
+ * Add :copy_remote_dir variable for the :copy strategy, to indicate where the archive should be copied to on the remote servers [Jamis Buck]
753
+
754
+ * Make the awk use in the dependencies code work with POSIX awk [mcornick]
755
+
756
+ * Make variable accesses thread safe [via Adrian Danieli]
757
+
758
+ * Make user input for yes/no prompts work correctly in the Mercurial module [Matthew Elder]
759
+
760
+ * Use single quotes to escape semicolon in find command, instead of a backslash [via michael.italia@gmail.com]
761
+
762
+ * Better quoting of reserved characters in commands [Jamis Buck]
763
+
764
+ * Make sure Net::SSH versions prior to 1.1.0 still work [Jamis Buck]
765
+
766
+ * 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]
767
+
768
+ * Use `which' to test whether a command exists in the remote path, instead of `test -p' [Jamis Buck]
769
+
770
+ * Make sure the connection factory is established synchronously, to avoid multiple gateway instances being spawned [Jamis Buck]
771
+
772
+ * Make sure symlink and finalize_update tasks reference the most recent release when called by themselves [Jamis Buck]
773
+
774
+
775
+ ## 1.99.2 (2.0 Preview 3) / June 15, 2007
776
+
777
+ * CVS SCM module [Brian Phillips]
778
+
779
+ * Fix typo in Perforce SCM module [Chris Bailey]
780
+
781
+ * ssh_options < server options when connecting [Jamis Buck]
782
+
783
+ * Logger defaults to $stderr instead of STDERR [lhartley]
784
+
785
+ * Use cp -RPp instead of -a in the remote cache strategy
786
+
787
+ * Make the UploadError exception include an array of the hosts that failed [rob@inversepath.com]
788
+
789
+ * Allow "empty" roles to be declared [Jamis Buck]
790
+
791
+ * Mercurial SCM module [Tobias Luetke, Matthew Elder]
792
+
793
+ * Invoke all commands via sh (customizable via :default_shell) [Jamis Buck]
794
+
795
+ * 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]
796
+
797
+ * Add :default_environment variable, which is applied to every command
798
+
799
+
800
+ ## 1.99.1 (2.0 Preview 2) / May 10, 2007
801
+
802
+ * Fix some documentation typos [eventualbuddha]
803
+
804
+ * Don't retry failed connections if an explicit auth_methods list is given [Chris Farms]
805
+
806
+ * 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]
807
+
808
+ * Added support for start and finish callbacks, which get invoked when any task is called via the command-line [Jamis Buck]
809
+
810
+ * Make `capify' understand simple command-line switches [Jamis Buck]
811
+
812
+ * Make the server definition itself available to SSH channels, rather than just the host name [Jamis Buck]
813
+
814
+ * Identify servers by their complete credentials in logs, rather than simply by hostname [Jamis Buck]
815
+
816
+ * Uniquely identify servers based on hostname, port, and username, instead of merely on hostname [Jamis Buck]
817
+
818
+ * 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]
819
+
820
+ * Kill the "deploy:app" namespace and move those tasks into deploy, directly. [Jamis Buck]
821
+
822
+ * Make sure 'desc' applies to the next defined task, in any namespace. [Jamis Buck]
823
+
824
+ * Fix shell so that servers for a task are correctly discovered. [Jamis Buck]
825
+
826
+ * Added before(), after(), and on() callback creation methods. [Jamis Buck]
827
+
828
+ * Fix broken check! method for some deployment strategies. [Jamis Buck]
829
+
830
+ * deploy:cold should also run migrations before starting the app [Jamis Buck]
831
+
832
+ * Make the copy strategy check out to a temporary directory [Jamis Buck]
833
+
834
+
835
+ ## 1.99.0 (2.0 Preview 1) / April 24, 2007
836
+
837
+ * Add `capify' script to make it easier to prepare a project for deployment using cap [Jamis Buck]
838
+
839
+ * Make sure the sudo helper understands the SuSE dialect of the sudo password prompt [Steven Wisener]
840
+
841
+ * Fix synchronization issue with Gateway initialization [Doug Barth]
842
+
843
+ * Added opt-in "compat" and "upgrade" recipes for tasks to aid in the upgrade process to Capistrano 2 [Jamis Buck]
844
+
845
+ * The deployment recipes are now opt-in. Just do 'load "deploy"' in your recipe script. [Jamis Buck]
846
+
847
+ * Added $CAPISTRANO:HOST$ placeholder in commands, which will be replaced with the name of the host on which the command is executing [Jamis Buck]
848
+
849
+ * Added -e switch to explain specific task. Added -X to extend -x. Made -h much briefer. Added -T to list known tasks. [Jamis Buck]
850
+
851
+ * Added namespaces for tasks [Jamis Buck]
852
+
853
+ * Merged the Configuration and Actor classes, performed various other massive refactorings of the code [Jamis Buck]
854
+
855
+
856
+ ## 1.4.1 / February 24, 2007
857
+
858
+ * Use the no-auth-cache option with subversion so that username/password tokens do not get cached by capistrano usage [jonathan]
859
+
860
+ * Deprecated upper-cased variables [Jamis Buck]
861
+
862
+ * Make sure Actor#get does not close the SFTP channel (so subsequent SFTP operations work) [Dov Murik]
863
+
864
+ * Add :env option to 'run' (and friends) so that you can specify environment variables to be injected into the new process' environment [Mathieu Lajugie]
865
+
866
+
867
+ ## 1.4.0 / February 3, 2007
868
+
869
+ * Use the auth info for subversion more consistently [Jamis Buck]
870
+
871
+ * Add a "capture" helper, for capturing the stdout of a remote command and returning it as a string [Jamis Buck]
872
+
873
+ * Add a "get" helper, to pull a file from a remote server to the localhost [bmihelac]
874
+
875
+ * 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]
876
+
877
+ * Refactor the permissions tweaking in update_code to a separate task so that people on shared hosts can override it as necessary [jaw6]
878
+
879
+ * Set umask during the setup task, so that intermediate directories are created with the proper permissions [NeilW]
880
+
881
+ * Removed -c/--caprc switch, since the new load order renders it meaningless (just use -f now) [Mike Bailey]
882
+
883
+ * Make sure the standard recipe loads first, so that .caprc and friends can override what it defines. [Mike Bailey]
884
+
885
+ * Add support for a system-wide capistrano config file [Mike Bailey]
886
+
887
+ * Make cold_deploy call update instead of deploy (to avoid invoking the restart task).
888
+
889
+ * Make the touch command run by update_code set the TZ to UTC, for consistent setting of asset timestamps. [NeilW]
890
+
891
+ * Fix off-by-one bug in show_tasks width-computation [NeilW]
892
+
893
+
894
+ ## 1.3.1 / January 5, 2007
895
+
896
+ * Fix connection problems when using gateways [Ezra Zygmuntowicz]
897
+
898
+
899
+ ## 1.3.0 / December 23, 2006
900
+
901
+ * Deprecate rake integration in favor of invoking `cap' directly [Jamis Buck]
902
+
903
+ * Make sure the CVS module references the repository explicitly in cvs_log [weyus@att.net]
904
+
905
+ * Remove trace messages when loading a file [Jamis Buck]
906
+
907
+ * Cleaner error messages for authentication failures and command errors [Jamis Buck]
908
+
909
+ * Added support for ~/.caprc, also -x and -c switches. [Jamis Buck]
910
+
911
+ * Updated migrate action to use db:migrate task in Rails instead of the deprecated migrate task [DHH]
912
+
913
+ * Allow SSH user and port to be encoded in the hostname strings [Ezra Zygmuntowicz]
914
+
915
+ * Fixed that new checkouts were not group-writable [DHH, Jamis Buck]
916
+
917
+ * Fixed that cap setup would use 755 on the deploy_to and shared directory roots instead of 775 [DHH]
918
+
919
+ * Don't run the cleanup task on servers marked no_release [Jamis Buck]
920
+
921
+ * Fix typo in default_io_proc so it correctly checks the stream parameter to see if it is the error stream [Stephen Haberman]
922
+
923
+ * 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]
924
+
925
+ * Added warning if password is prompted for and termios is not installed [John Labovitz]
926
+
927
+ * Added :as option to sudo, so you can specify who the command is executed as [Mark Imbriaco]
928
+
929
+
930
+ ## 1.2.0 / September 14, 2006
931
+
932
+ * Add experimental 'shell' task [Jamis Buck]
933
+
934
+ * Display file for external configurations, rather than inspected proc. [Jamis Buck]
935
+
936
+ * Connect to multiple servers in parallel, rather than serially. [Jamis Buck]
937
+
938
+ * Add SCM module for Mercurial (closes #4150) [Matthew Elder]
939
+
940
+ * Remove unused line in SCM::Base (closes #5619) [chris@seagul.co.uk]
941
+
942
+ * More efficient "svn log" usage (closes #5620) [Anatol Pomozov]
943
+
944
+ * Better support for key passphrases in the SVN module (closes #5920) [llasram@gmail.com]
945
+
946
+ * Fix missing default for :local in cvs.rb (closes #3645) [jeremy@hinegardner.org]
947
+
948
+ * Fix awkward spacing in gemspec file (closes #3888) [grant@antiflux.org]
949
+
950
+ * Add support for :sudo variable to specify path to sudo (closes #4578) [timothee.peignier@tryphon.org]
951
+
952
+ * Make previous_release return nil if there are no previous releases (closes #4959) [bdabney@cavoksolutions.com]
953
+
954
+ * Uncache releases list after update_code is called so that newly released dir is included (closes #3766) [Jamis Buck]
955
+
956
+ * Allow the subversion scm to accept HTTPS certificates (closes #4792) [Jamis Buck]
957
+
958
+ * Make sure rollbacks occur within the scope of the task that triggered them [Jamis Buck]
959
+
960
+ * Fixed the default recipe to work with setups that haven't yet gone pids [DHH]
961
+
962
+ * Symlink and setup for shared/pids to tmp/pids [DHH]
963
+
964
+ * Fix some incorrect usage text (closes #4507) [gerry_shaw@yahoo.com]
965
+
966
+ * Added Actor#stream method that makes it easy to create cross-server streams [DHH]. Example:
967
+
968
+ desc "Run a tail on multiple log files at the same time"
969
+ task :tail_fcgi, :roles => :app do
970
+ stream "tail -f #{shared_path}/log/fastcgi.crash.log"
971
+ end
972
+
973
+ * Make update_code and symlink a macro task under the name "update" for easy of deploy to servers that does not run fcgis [DHH]
974
+
975
+ * 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]
976
+
977
+ * Added support for :except on task declarations as the opposite of :only [DHH]. Example:
978
+
979
+ role :app, "192.168.0.2"
980
+ role :file, "192.168.0.3", :no_release => true
981
+
982
+ task :symlink, :except => { :no_release => true } do
983
+ on_rollback { run "ln -nfs #{previous_release} #{current_path}" }
984
+ run "ln -nfs #{current_release} #{current_path}"
985
+ end
986
+
987
+ cap symlink # will not run on 192.168.0.3
988
+
989
+ * Deprecate the -r/--recipe switch in favor of -f/--file (for more make/rake-like semantics) [Jamis Buck]
990
+
991
+ * Fix gemspec to include a dependency on rake 0.7 [Jamis Buck]
992
+
993
+ * Added respect for ENV["HOSTS"] that'll be used instead of the roles specified in the task definition [DHH]. Example:
994
+
995
+ HOSTS=192.168.0.1 cap setup # one-off setup for that server, doesn't need to be prespecified in the recipes file
996
+
997
+ * Added respect for ENV["ROLES"] that'll be used instead of the roles specified in the task definition [DHH]. Example:
998
+
999
+ task :setup, :roles => [ :app, :web, :db ]
1000
+ # normally this would run every where
1001
+ end
1002
+
1003
+ ROLES=app cap setup # this will only run for the app role, overwritting the default declaration
1004
+
1005
+ * Added :hosts option to task definition that allows you to specify cross-cutting tasks [DHH]. Example:
1006
+
1007
+ task :setup, :hosts => [ "06.example.com", "01.example.com" ] do
1008
+ # this task will happen on 06 and 01 regardless of which roles they belong to
1009
+ end
1010
+
1011
+ * Fix operator precedence problem in script for touching the revisions.log #3223 [jason.garber@emu.edu]
1012
+
1013
+
1014
+ ## 1.1.0 / March 6th, 2006
1015
+
1016
+ * Simplify the generated capistrano.rake file, and make it easier to customize
1017
+
1018
+ * Use rake-like command-line semantics ("cap deploy", in addition to "cap -a deploy")
1019
+
1020
+ * Rename to capistrano
1021
+
1022
+ * Make the generated capistrano.rake file use rake namespaces, and include all default tasks
1023
+
1024
+ * Look for config/deploy.rb, capfile, and Capfile by default
1025
+
1026
+
1027
+ ## 1.0.1 / February 20th, 2006
1028
+
1029
+ * Fix broken switchtower_invoke function in switchtower.rake (missing require statement)
1030
+
1031
+
1032
+ ## 1.0.0 / Feburary 18th, 2006
1033
+
1034
+ * Make CVS module's :local value default to "."
1035
+
1036
+ * Add "invoke" task for executing one-off commands
1037
+
1038
+ * Make port selection smarter for gateway connections
1039
+
1040
+ * Add extension mechanism for custom ST operations and third-party task libraries
1041
+
1042
+ * Make ST rails rake tasks more configurable
1043
+
1044
+ * Add Actor#current_task and simplify Task#servers
1045
+
1046
+ * Add Actor#connect! method for working around lazy connection establishing
1047
+
1048
+ * Make sure IO::TRUNC is specified for Net::SFTP uploads (#3510)
1049
+
1050
+ * Add branch support to CVS [jeremy@hinegardner.org] (#3596)
1051
+
1052
+ * Add bazaar-ng SCM module [Damien Merenne]
1053
+
1054
+ * Add optional :svn_username and :svn_password variables
1055
+
1056
+ * Allow Proc-valued variables to be set more conveniently (set(:foo) { "bar" })
1057
+
1058
+ * Add perforce SCM module [Richard McMahon]
1059
+
1060
+ * Add bazaar (v1) SCM module [Edd Dumbill] (#3533)
1061
+
1062
+ * Fix stftime format string used in CVS module to be Windows-compatible (fixes #3383)
1063
+
1064
+ * Add an better error when a task is run and no servers match the required conditions
1065
+
1066
+ * Add default spinner and cold_deploy tasks, and spinner_user variable
1067
+
1068
+ * Changed restart_via variable to (boolean) use_sudo
1069
+
1070
+ * Only chmod when the revisions.log file is first created
1071
+
1072
+ * Make UPPERCASE variables work
1073
+
1074
+ * Added rails_env variable (defaults to production) for use by tasks that employ the RAILS_ENV environment variable
1075
+
1076
+ * Added Actor.default_io_proc
1077
+
1078
+ * Set :actor key on SSH channel instances
1079
+
1080
+
1081
+ ## 0.10.0 / January 2nd, 2006
1082
+
1083
+ * Handle ssh password prompts like "someone's password:"
1084
+
1085
+ * Make CLI#echo available as a class method.
1086
+
1087
+ * Add CLI#with_echo.
1088
+
1089
+ * Make the default password prompt available as a class method.
1090
+
1091
+ # Add documentation for the CLI class.
1092
+
1093
+ * Add a sanity check to make sure the correct versions of Net::SSH and Net::SFTP are installed.
1094
+
1095
+ * Added a cleanup task to remove unused releases from the deployment directory
1096
+
1097
+ * Allow password to be reentered on sudo if it was entered incorrectly
1098
+
1099
+ * Use && as the command separator for the checkouts, so that errors are caught early.
1100
+
1101
+ * Ping each SSH connection every 1s during command processing so that long-running commands don't cause the connection to timeout.
1102
+
1103
+ * Add a 0.01s sleep during the command loop so that the CPU doesn't go ballistic while ST is doing its thing.
1104
+
1105
+ * Add :restart_via variable for specifying whether restart ought to use :sudo (default, use sudo)
1106
+
1107
+ * Use SFTP for file transfers (if available).
1108
+
1109
+ * Add an "update_current" task that will do an svn up on the current release
1110
+
1111
+ * Use the :checkout variable to determine what operation to use for svn checkouts (instead of co, like "export").
1112
+
1113
+ * The Rails rake tasks now load ST directly, instead of invoking it via system
1114
+
1115
+ * Added ssh_options variable to configure the SSH connection parameters #2734 [jerrett@bravenet.com]
1116
+
1117
+ * Require Net::SSH 1.0.5
1118
+
1119
+
1120
+ ## 0.9.0 / October 18th, 2005
1121
+
1122
+ * Use process reaper instead of custom reap script for restarting
1123
+
1124
+ * Use -S switch to set variables before reading recipe files #2242
1125
+
1126
+ * Have setup.rb create a switchtower.cmd file on Win32 platforms #2402
1127
+
1128
+ * Add diff_from_last_deploy to the rails switchtower rakefile template
1129
+
1130
+ * Add diff_from_last_deploy task (currently only works with subversion)
1131
+
1132
+ * Add deploy_with_migrations task.
1133
+
1134
+ * Make the migrate task more customizable.
1135
+
1136
+ * If no password is given with the -p switch, prompt for password immediately.
1137
+
1138
+ * Do not install a switchtower stub in the script directory. Assume the switchtower executable is in the path.
1139
+
1140
+ * Remove trailing newlines from commands to prevent trailing backslash #2141
1141
+
1142
+ * Default parameters work correctly with the generator #2218 [Scott Barron]
1143
+
1144
+ * Attempt to require 'rubygems' explicitly when running the switchtower utility #2134
1145
+
1146
+ * 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
1147
+
1148
+ * Default the application name to "Application" when using --apply-to
1149
+
1150
+ * Show the help screen instead of an error when no arguments are given
1151
+
1152
+ * Make SwitchTower easier to invoke programmatically via SwitchTower::CLI
1153
+
1154
+ * Specify the revision to release via the :revision variable (defaults to latest revision)
1155
+
1156
+ * Allow variables to be set via the cli using the -s switch
1157
+
1158
+ * Log checkouts to a "revisions.log" file
1159
+
1160
+ * Changed behavior of checkout to use the timestamp as the release name, instead of the revision number
1161
+
1162
+ * Added CVS module (very very experimental!)
1163
+
1164
+ * Works with public keys now, for passwordless deployment
1165
+
1166
+ * Subversion module recognizes the password prompt for HTTP authentication
1167
+
1168
+ * Preserve +x on scripts when using darcs #1929 [Scott Barron]
1169
+
1170
+ * When executing multiline commands, use a backslash to escape the newline