wulffeld-capistrano 2.5.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (105) hide show
  1. data/CHANGELOG.rdoc +761 -0
  2. data/Manifest +104 -0
  3. data/README.rdoc +66 -0
  4. data/Rakefile +34 -0
  5. data/bin/cap +4 -0
  6. data/bin/capify +78 -0
  7. data/examples/sample.rb +14 -0
  8. data/lib/capistrano.rb +2 -0
  9. data/lib/capistrano/callback.rb +45 -0
  10. data/lib/capistrano/cli.rb +47 -0
  11. data/lib/capistrano/cli/execute.rb +84 -0
  12. data/lib/capistrano/cli/help.rb +125 -0
  13. data/lib/capistrano/cli/help.txt +75 -0
  14. data/lib/capistrano/cli/options.rb +224 -0
  15. data/lib/capistrano/cli/ui.rb +40 -0
  16. data/lib/capistrano/command.rb +283 -0
  17. data/lib/capistrano/configuration.rb +43 -0
  18. data/lib/capistrano/configuration/actions/file_transfer.rb +47 -0
  19. data/lib/capistrano/configuration/actions/inspect.rb +46 -0
  20. data/lib/capistrano/configuration/actions/invocation.rb +293 -0
  21. data/lib/capistrano/configuration/callbacks.rb +148 -0
  22. data/lib/capistrano/configuration/connections.rb +200 -0
  23. data/lib/capistrano/configuration/execution.rb +132 -0
  24. data/lib/capistrano/configuration/loading.rb +197 -0
  25. data/lib/capistrano/configuration/namespaces.rb +197 -0
  26. data/lib/capistrano/configuration/roles.rb +73 -0
  27. data/lib/capistrano/configuration/servers.rb +85 -0
  28. data/lib/capistrano/configuration/variables.rb +127 -0
  29. data/lib/capistrano/errors.rb +15 -0
  30. data/lib/capistrano/extensions.rb +57 -0
  31. data/lib/capistrano/logger.rb +59 -0
  32. data/lib/capistrano/processable.rb +53 -0
  33. data/lib/capistrano/recipes/compat.rb +32 -0
  34. data/lib/capistrano/recipes/deploy.rb +562 -0
  35. data/lib/capistrano/recipes/deploy/dependencies.rb +44 -0
  36. data/lib/capistrano/recipes/deploy/local_dependency.rb +54 -0
  37. data/lib/capistrano/recipes/deploy/remote_dependency.rb +105 -0
  38. data/lib/capistrano/recipes/deploy/scm.rb +19 -0
  39. data/lib/capistrano/recipes/deploy/scm/accurev.rb +169 -0
  40. data/lib/capistrano/recipes/deploy/scm/base.rb +196 -0
  41. data/lib/capistrano/recipes/deploy/scm/bzr.rb +83 -0
  42. data/lib/capistrano/recipes/deploy/scm/cvs.rb +152 -0
  43. data/lib/capistrano/recipes/deploy/scm/darcs.rb +85 -0
  44. data/lib/capistrano/recipes/deploy/scm/git.rb +302 -0
  45. data/lib/capistrano/recipes/deploy/scm/mercurial.rb +137 -0
  46. data/lib/capistrano/recipes/deploy/scm/none.rb +44 -0
  47. data/lib/capistrano/recipes/deploy/scm/perforce.rb +133 -0
  48. data/lib/capistrano/recipes/deploy/scm/subversion.rb +121 -0
  49. data/lib/capistrano/recipes/deploy/strategy.rb +19 -0
  50. data/lib/capistrano/recipes/deploy/strategy/base.rb +79 -0
  51. data/lib/capistrano/recipes/deploy/strategy/checkout.rb +20 -0
  52. data/lib/capistrano/recipes/deploy/strategy/copy.rb +210 -0
  53. data/lib/capistrano/recipes/deploy/strategy/export.rb +20 -0
  54. data/lib/capistrano/recipes/deploy/strategy/remote.rb +52 -0
  55. data/lib/capistrano/recipes/deploy/strategy/remote_cache.rb +56 -0
  56. data/lib/capistrano/recipes/deploy/templates/maintenance.rhtml +53 -0
  57. data/lib/capistrano/recipes/standard.rb +37 -0
  58. data/lib/capistrano/recipes/templates/maintenance.rhtml +53 -0
  59. data/lib/capistrano/recipes/upgrade.rb +33 -0
  60. data/lib/capistrano/role.rb +102 -0
  61. data/lib/capistrano/server_definition.rb +56 -0
  62. data/lib/capistrano/shell.rb +260 -0
  63. data/lib/capistrano/ssh.rb +99 -0
  64. data/lib/capistrano/task_definition.rb +70 -0
  65. data/lib/capistrano/transfer.rb +216 -0
  66. data/lib/capistrano/version.rb +18 -0
  67. data/setup.rb +1346 -0
  68. data/test/cli/execute_test.rb +132 -0
  69. data/test/cli/help_test.rb +165 -0
  70. data/test/cli/options_test.rb +317 -0
  71. data/test/cli/ui_test.rb +28 -0
  72. data/test/cli_test.rb +17 -0
  73. data/test/command_test.rb +286 -0
  74. data/test/configuration/actions/file_transfer_test.rb +61 -0
  75. data/test/configuration/actions/inspect_test.rb +65 -0
  76. data/test/configuration/actions/invocation_test.rb +224 -0
  77. data/test/configuration/callbacks_test.rb +220 -0
  78. data/test/configuration/connections_test.rb +349 -0
  79. data/test/configuration/execution_test.rb +175 -0
  80. data/test/configuration/loading_test.rb +132 -0
  81. data/test/configuration/namespace_dsl_test.rb +311 -0
  82. data/test/configuration/roles_test.rb +144 -0
  83. data/test/configuration/servers_test.rb +121 -0
  84. data/test/configuration/variables_test.rb +184 -0
  85. data/test/configuration_test.rb +88 -0
  86. data/test/deploy/local_dependency_test.rb +76 -0
  87. data/test/deploy/remote_dependency_test.rb +114 -0
  88. data/test/deploy/scm/accurev_test.rb +23 -0
  89. data/test/deploy/scm/base_test.rb +55 -0
  90. data/test/deploy/scm/git_test.rb +167 -0
  91. data/test/deploy/scm/mercurial_test.rb +129 -0
  92. data/test/deploy/strategy/copy_test.rb +258 -0
  93. data/test/extensions_test.rb +69 -0
  94. data/test/fixtures/cli_integration.rb +5 -0
  95. data/test/fixtures/config.rb +5 -0
  96. data/test/fixtures/custom.rb +3 -0
  97. data/test/logger_test.rb +123 -0
  98. data/test/role_test.rb +11 -0
  99. data/test/server_definition_test.rb +121 -0
  100. data/test/shell_test.rb +90 -0
  101. data/test/ssh_test.rb +104 -0
  102. data/test/task_definition_test.rb +101 -0
  103. data/test/transfer_test.rb +160 -0
  104. data/test/utils.rb +38 -0
  105. metadata +207 -0
data/CHANGELOG.rdoc ADDED
@@ -0,0 +1,761 @@
1
+ == 2.5.5 / 24 Feb 2009
2
+
3
+ * Make sure role(:foo) actually declares an (empty) role for :foo, even without server arguments [Jamis Buck]
4
+
5
+
6
+ == 2.5.4 / 4 Feb 2009
7
+
8
+ * When using rsync with the remote_cache strategy include -t switch to preserve file times [Kevin McCarthy]
9
+
10
+ * Bump Net::SSH dependency to version 2.0.10 [Jamis Buck]
11
+
12
+ * Use 'user' from .ssh/config appropriately [Jamis Buck]
13
+
14
+ * Allow respond_to?() method to accept optional second parameter (include_priv) [Matthias Marschall]
15
+
16
+ * 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]
17
+
18
+ * Add supported environment variables to -H output [François Beausoleil]
19
+
20
+
21
+ == 2.5.3 / December 6, 2008
22
+
23
+ * Make previous_release return nil if there is no previous release [Mathias Meyer]
24
+
25
+ * Play nice with rubies that don't inspect terminals well (ie. JRuby) by defaulting screen columns to 80 [Bob McWhirter]
26
+
27
+ * Rollback of deploy:symlink would explode if there was no previous revision to rollback to [Jamis Buck]
28
+
29
+ * Fix bug in transfer.rb that caused get/put/upload/download to ignore blocks passed to them [arika]
30
+
31
+ * 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]
32
+
33
+
34
+ == 2.5.2 / November 13, 2008
35
+
36
+ * Fix issue with git SCM that caused "Unable to resolve revision for 'HEAD'" errors on deploy [Jamis Buck]
37
+
38
+
39
+ == 2.5.1 / November 7, 2008
40
+
41
+ * Add -t (--tools) switch for better task lists for external tools [Jamis Buck]
42
+
43
+ * Make the RemoteDependency#try method use invoke_command instead of run, for sudo-ability [Matthias Marschall]
44
+
45
+ * Make locally executed commands in Windows more Windows-friendly [esad@esse.at]
46
+
47
+ * Added :scm_arguments variable for custom SCM arguments (subversion-only, currently) [David Abdemoulaie]
48
+
49
+ * Don't emit -p for sudo when :sudo_prompt is blank [Matthias Marschall]
50
+
51
+ * Copy symlinks when using rsync [Paul Paradise]
52
+
53
+ * Make sure git query-revision matches on exact branch name [grant@nightriot.com]
54
+
55
+ * Use -T <arg> to filter listed tasks by a pattern [Mathias Meyer, Geoffrey Grosenbach]
56
+
57
+ * Expose the #scm method on SCM::Base for building custom scm commands [Mathias Meyer]
58
+
59
+ * Start logging some locally executed commands [springyweb]
60
+
61
+ * Added HOSTFILTER environment variable for constraining tasks so they run only on hosts matching the given list of servers [Walter Smith]
62
+
63
+ * Make sure the glob matching for copy excludes does not delete parent directories [Fabio Akita]
64
+
65
+ * Ruby 1.9 compatibility [Jamis Buck]
66
+
67
+
68
+ == 2.5.0 / August 28, 2008
69
+
70
+ * Allow :gateway to be set to an array, in which case a chain of tunnels is created [Kerry Buckley]
71
+
72
+ * Allow HOSTS spec to override even non-existent roles [Mike Bailey]
73
+
74
+ * Sort releases via "ls -xt" instead of "ls -x" to allow for custom release names [Yan Pritzker]
75
+
76
+ * Convert arguments to -s and -S into integers, booleans, etc. based on whether the arguments appear to be those types [Jamis Buck]
77
+
78
+ * Add descriptions of -n and -d to the verbose help text [Jamis Buck]
79
+
80
+ * Make rollbacks work with processes that need the current directory to be valid in order to restart properly (e.g. mongrel_rails) [Jamis Buck]
81
+
82
+ * Rename deploy:rollback_code to deploy:rollback:code [Jamis Buck]
83
+
84
+ * Added parallel() helper for executing multiple different commands in parallel [Jamis Buck]
85
+
86
+ * Make sure a task only uses the last on_rollback block, once, on rollback [Jamis Buck]
87
+
88
+ * Add :shared_children variable to customize which subdirectories are created by deploy:setup [Jonathan Share]
89
+
90
+ * Allow filename globbing in copy_exclude setting for the copy strategy [Jonathan Share]
91
+
92
+ * Allow remote_cache strategy to use copy_exclude settings (requires rsync) [Lewis Mackenzie]
93
+
94
+ * Make None SCM module work in Windows [Carlos Kozuszko]
95
+
96
+ * Recognize mingw as a Windows platform [Carlos Kozuszko]
97
+
98
+ * Fixed failing tests in Windows [Carlos Kozuszko]
99
+
100
+ * Made :scm_auth_cache control whether password option is emitted in subversion module [Brendan Schwartz]
101
+
102
+ * Fixed timestamp bug in CVS module [Jørgen Fjeld]
103
+
104
+ * Added -n/--dry-run switch, to display but not execute remote tasks [Paul Gross]
105
+
106
+
107
+ == 2.4.3 / June 28, 2008
108
+
109
+ * Fix gem dependencies so gem actually understands them [Jamis Buck]
110
+
111
+
112
+ == 2.4.2 / June 27, 2008
113
+
114
+ * Specify gem dependencies in rakefile [Jamis Buck]
115
+
116
+
117
+ == 2.4.1 / June 27, 2008
118
+
119
+ * Use Echoe to manage the Rakefile [Jamis Buck]
120
+
121
+ * Let Net::SSH manage the default SSH port selection [Ben Lavender]
122
+
123
+ * Changed capture() helper to not raise an exception on error, but to warn instead [Jeff Forcier]
124
+
125
+
126
+ == 2.4.0 / June 13, 2008
127
+
128
+ * Added :normalize_asset_timestamps option to deployment, defaulting to true, which allows asset timestamping to be disabled [John Trupiano]
129
+
130
+
131
+ == 2.4.0 Preview Release #1 (2.3.101) / June 5, 2008
132
+
133
+ * 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]
134
+
135
+ * 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]
136
+
137
+ * Make deploy:upload use the upload() helper for more efficient directory processing [Jamis Buck]
138
+
139
+ * Make deploy:upload accept globs [Mark Imbriaco]
140
+
141
+ * Make sure the host is reported with the output from scm_run [Jamis Buck]
142
+
143
+ * Make git SCM honor the :scm_verbose option [Jamis Buck]
144
+
145
+ * Don't follow symlinks when using :copy_cache [Jamis Buck]
146
+
147
+ * If :mode is given to upload() helper, do a chmod after to set the mode [Jamis Buck]
148
+
149
+ * Fix load_from_file method for windows users [Neil Wilson]
150
+
151
+ * Display a deprecation error if a remote git branch is specified [Tim Harper]
152
+
153
+ * Fix deployment recipes to use the updated sudo helper [Jamis Buck]
154
+
155
+ * Enhance the sudo helper so it can be used to return the command, instead of executing it [Jamis Buck]
156
+
157
+ * Revert "make sudo helper play nicely with complex command chains", since it broke stuff [Jamis Buck]
158
+
159
+ * Make set(:default_shell, false) work for not using a shell on a per-command basis [Ryan McGeary]
160
+
161
+ * Improved test coverage [Ryan McGeary]
162
+
163
+ * Fixed "coverage" take task [Ryan McGeary]
164
+
165
+ * Use upload() instead of put() with the copy strategy [Jamis Buck]
166
+
167
+ * Revert the "git fetch --tags" change, since it didn't work as expected [Jamis Buck]
168
+
169
+ * Fix deploy:pending when using git SCM [Ryan McGeary]
170
+
171
+ * Make sure deploy:check works with :none scm (which has no default command) [Jamis Buck]
172
+
173
+ * Add debug switch for enabling conditional execution of commands [Mark Imbriaco]
174
+
175
+
176
+ == 2.3.0 / May 2, 2008
177
+
178
+ * 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]
179
+
180
+ * Make sudo helper play nicely with complex command chains [Jamis Buck]
181
+
182
+ * Expand file-transfer options with new upload() and download() helpers. [Jamis Buck]
183
+
184
+ * Allow SCP transfers in addition to SFTP. [Jamis Buck]
185
+
186
+ * Use Net::SSH v2 and Net::SSH::Gateway. [Jamis Buck]
187
+
188
+ * Added #export method for git SCM [Phillip Goldenburg]
189
+
190
+ * 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]
191
+
192
+ * Allow :ssh_options hash to be specified per server [Jesse Newland]
193
+
194
+ * Added support for depend :remote, :file to test for existence of a specific file [Andrew Carter]
195
+
196
+ * Ensure that the default run options are mixed into the command options when executing a command from the cap shell [Ken Collins]
197
+
198
+ * Added :none SCM module for deploying a specific directory's contents [Jamis Buck]
199
+
200
+ * Improved "copy" strategy supports local caching and pattern exclusion (via :copy_cache and :copy_exclude variables) [Jamis Buck]
201
+
202
+
203
+ == 2.2.0 / February 27, 2008
204
+
205
+ * Fix git submodule support to init on sync [halorgium]
206
+
207
+ * Add alternative server-centric role definition method [James Duncan Davidson]
208
+
209
+ * Add support for password prompts from the Mercurial SCM [ches]
210
+
211
+ * Add support for :max_hosts option in task definition or run() [Rob Holland <rob@inversepath.com>]
212
+
213
+ * Distributed git support for better operability with remote_cache strategy [voidlock]
214
+
215
+ * Use a default line length in help text if line length is otherwise too small [Jamis Buck]
216
+
217
+ * Fix incorrect reference to the 'setup' task in task documentation [rajeshduggal]
218
+
219
+ * Don't try to kill the spawner process on deploy:stop if no spawner process exists [Jamis Buck]
220
+
221
+ * Dynamic roles (e.g. role(:app) { "host.name" }) [dmasover]
222
+
223
+ * Implement Bzr#next_revision so that pending changes can be reported correctly [casret]
224
+
225
+ * Use a proper export command for bzr SCM [drudru]
226
+
227
+ * Use checkout instead of merge for git SCM [nuttycom]
228
+
229
+ * Fix typo in Subversion SCM module, encountered when an update fails [kemiller]
230
+
231
+ * Fix documentation typo in upload.rb [evolving_jerk]
232
+
233
+ * Added test case to show that the :scm_command is honored by the git SCM module [grempe]
234
+
235
+ * Fail gracefully when double-colons are used to delimit namespaces [richie]
236
+
237
+ * Add support for :git_enable_submodules variable, to enable submodules with the git SCM [halorgium]
238
+
239
+ * If subversion asks for a password, prompt as a last resort [Jamis Buck]
240
+
241
+ * Use checkout --lightweight for bzr checkout, instead of branch [michiels]
242
+
243
+ * Make sure bzr SCM works when revision is head (or unspecified) [michiels]
244
+
245
+ * Support p4sync_flags and p4client_root variables for Perforce [gseidman]
246
+
247
+ * Prepare for Net::SSH v2 by making sure Capistrano only tries to load Net::SSH versions less than 1.99.0 [Jamis Buck]
248
+
249
+
250
+ == 2.1.0 / October 14, 2007
251
+
252
+ * Default to 0664 instead of 0660 on upload [Jamis Buck]
253
+
254
+ * Fix deploy:pending to query SCM for the subsequent revision so that it does not include the last deployed change [Jamis Buck]
255
+
256
+ * Prefer 'Last Changed Rev' over 'Revision' when querying latest revision via Subversion [Jamis Buck]
257
+
258
+ * Explicitly require 'stringio' in copy_test [mislav]
259
+
260
+ * When Subversion#query_revision fails, give a more sane error [Jamis Buck]
261
+
262
+ * Don't run the upgrade:revisions task on non-release servers [Jamis Buck]
263
+
264
+ * Fix cap shell to properly recognize sudo prompt [Mark Imbriaco, barnaby, Jamis Buck]
265
+
266
+ * Git SCM module [Garry Dolley, Geoffrey Grosenbach, Scott Chacon]
267
+
268
+ * Use the --password switch for subversion by default, but add :scm_prefer_prompt variable (defaults to false) [Jamis Buck]
269
+
270
+
271
+ == 2.0.100 (2.1 Preview 1) / September 1, 2007
272
+
273
+ * capify-generated Capfile will autoload all recipes from vendor/plugins/*/recipes/*.rb [Graeme Mathieson]
274
+
275
+ * Use sudo -p switch to set sudo password prompt to something predictable [Mike Bailey]
276
+
277
+ * Allow independent configurations to require the same recipe file [Jamis Buck]
278
+
279
+ * Set :shell to false to run a command without wrapping it in "sh -c" [Jamis Buck]
280
+
281
+ * Don't request a pty by default [Jamis Buck]
282
+
283
+ * Add a "match" remote dependency method [Adam Greene]
284
+
285
+ * Allow auth-caching of subversion credentials to be enabled via :scm_auth_cache [tsmith]
286
+
287
+ * Don't let a task trigger itself when used as the source for an "on" hook [Jamis Buck]
288
+
289
+ * Avoid using the --password switch with subversion for security purposes [sentinel]
290
+
291
+ * Add version_dir, current_dir, and shared_dir variables for naming the directories used in deployment [drinkingbird]
292
+
293
+ * Use Windows-safe binary reads for reading file contents [Ladislav Martincik]
294
+
295
+ * Add Accurev SCM support [Doug Barth]
296
+
297
+ * Use the :runner variable to determine who to sudo as for deploy:restart [Graham Ashton]
298
+
299
+ * Add Namespaces#top to always return a reference to the topmost namespace [Jamis Buck]
300
+
301
+ * Change the "-h" output so that it does not say that "-q" is the default [Jamis Buck]
302
+
303
+
304
+ == 2.0.0 / July 21, 2007
305
+
306
+ * Make the "no matching servers" error more sane [halorgium]
307
+
308
+ * Make sure the invoke task gives a sane error when the COMMAND value is omitted [halorgium]
309
+
310
+ * Make sure variables are conditionally set in the deploy recipes, so as not to clobber values set elsewhere [Jamis Buck]
311
+
312
+ * Fix "input stream is empty" errors from HighLine on prompt [Jamis Buck]
313
+
314
+ * Added "synchronous_connect" setting to try and work around SFTP hangs for certain users [Jamis Buck]
315
+
316
+ * Auto-require the SSH shell service, to avoid race conditions [Jamis Buck]
317
+
318
+ * Add a millisecond sleep in upload to reduce CPU impact [Jamis Buck]
319
+
320
+ * Allow the logger to be set via Configuration#logger= [Jamis Buck]
321
+
322
+ * Allow $CAPISTRANO:HOST$ to be used in filenames to the put command [Jamis Buck]
323
+
324
+ * Allow execute_on_servers to be called without a current task again [Jamis Buck]
325
+
326
+ * Put $stdout in sync mode, so that Net::SSH prompts are displayed [Jamis Buck]
327
+
328
+ * Make sure deploy:check aborts if it fails [Jamis Buck]
329
+
330
+ * Spelling corrections in docs [Tim Carey-Smith, Giles Bowkett]
331
+
332
+
333
+ == 1.99.3 (2.0 Preview 4) / June 28, 2007
334
+
335
+ * Don't break task descriptions on a period that appears in the middle of a sentence [Jamis Buck]
336
+
337
+ * 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]
338
+
339
+ * Use correct parameters for Logger constructor in the SCM and Strategy base initializers [Jamis Buck]
340
+
341
+ * 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]
342
+
343
+ * Add :copy_remote_dir variable for the :copy strategy, to indicate where the archive should be copied to on the remote servers [Jamis Buck]
344
+
345
+ * Make the awk use in the dependencies code work with POSIX awk [mcornick]
346
+
347
+ * Make variable accesses thread safe [via Adrian Danieli]
348
+
349
+ * Make user input for yes/no prompts work correctly in the Mercurial module [Matthew Elder]
350
+
351
+ * Use single quotes to escape semicolon in find command, instead of a backslash [via michael.italia@gmail.com]
352
+
353
+ * Better quoting of reserved characters in commands [Jamis Buck]
354
+
355
+ * Make sure Net::SSH versions prior to 1.1.0 still work [Jamis Buck]
356
+
357
+ * 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]
358
+
359
+ * Use `which' to test whether a command exists in the remote path, instead of `test -p' [Jamis Buck]
360
+
361
+ * Make sure the connection factory is established synchronously, to avoid multiple gateway instances being spawned [Jamis Buck]
362
+
363
+ * Make sure symlink and finalize_update tasks reference the most recent release when called by themselves [Jamis Buck]
364
+
365
+
366
+ == 1.99.2 (2.0 Preview 3) / June 15, 2007
367
+
368
+ * CVS SCM module [Brian Phillips]
369
+
370
+ * Fix typo in Perforce SCM module [Chris Bailey]
371
+
372
+ * ssh_options < server options when connecting [Jamis Buck]
373
+
374
+ * Logger defaults to $stderr instead of STDERR [lhartley]
375
+
376
+ * Use cp -RPp instead of -a in the remote cache strategy
377
+
378
+ * Make the UploadError exception include an array of the hosts that failed [rob@inversepath.com]
379
+
380
+ * Allow "empty" roles to be declared [Jamis Buck]
381
+
382
+ * Mercurial SCM module [Tobias Luetke, Matthew Elder]
383
+
384
+ * Invoke all commands via sh (customizable via :default_shell) [Jamis Buck]
385
+
386
+ * 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]
387
+
388
+ * Add :default_environment variable, which is applied to every command
389
+
390
+
391
+ == 1.99.1 (2.0 Preview 2) / May 10, 2007
392
+
393
+ * Fix some documentation typos [eventualbuddha]
394
+
395
+ * Don't retry failed connections if an explicit auth_methods list is given [Chris Farms]
396
+
397
+ * 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]
398
+
399
+ * Added support for start and finish callbacks, which get invoked when any task is called via the command-line [Jamis Buck]
400
+
401
+ * Make `capify' understand simple command-line switches [Jamis Buck]
402
+
403
+ * Make the server definition itself available to SSH channels, rather than just the host name [Jamis Buck]
404
+
405
+ * Identify servers by their complete credentials in logs, rather than simply by hostname [Jamis Buck]
406
+
407
+ * Uniquely identify servers based on hostname, port, and username, instead of merely on hostname [Jamis Buck]
408
+
409
+ * 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]
410
+
411
+ * Kill the "deploy:app" namespace and move those tasks into deploy, directly. [Jamis Buck]
412
+
413
+ * Make sure 'desc' applies to the next defined task, in any namespace. [Jamis Buck]
414
+
415
+ * Fix shell so that servers for a task are correctly discovered. [Jamis Buck]
416
+
417
+ * Added before(), after(), and on() callback creation methods. [Jamis Buck]
418
+
419
+ * Fix broken check! method for some deployment strategies. [Jamis Buck]
420
+
421
+ * deploy:cold should also run migrations before starting the app [Jamis Buck]
422
+
423
+ * Make the copy strategy check out to a temporary directory [Jamis Buck]
424
+
425
+
426
+ == 1.99.0 (2.0 Preview 1) / April 24, 2007
427
+
428
+ * Add `capify' script to make it easier to prepare a project for deployment using cap [Jamis Buck]
429
+
430
+ * Make sure the sudo helper understands the SuSE dialect of the sudo password prompt [Steven Wisener]
431
+
432
+ * Fix synchronization issue with Gateway initialization [Doug Barth]
433
+
434
+ * Added opt-in "compat" and "upgrade" recipes for tasks to aid in the upgrade process to Capistrano 2 [Jamis Buck]
435
+
436
+ * The deployment recipes are now opt-in. Just do 'load "deploy"' in your recipe script. [Jamis Buck]
437
+
438
+ * Added $CAPISTRANO:HOST$ placeholder in commands, which will be replaced with the name of the host on which the command is executing [Jamis Buck]
439
+
440
+ * Added -e switch to explain specific task. Added -X to extend -x. Made -h much briefer. Added -T to list known tasks. [Jamis Buck]
441
+
442
+ * Added namespaces for tasks [Jamis Buck]
443
+
444
+ * Merged the Configuration and Actor classes, performed various other massive refactorings of the code [Jamis Buck]
445
+
446
+
447
+ == 1.4.1 / February 24, 2007
448
+
449
+ * Use the no-auth-cache option with subversion so that username/password tokens do not get cached by capistrano usage [jonathan]
450
+
451
+ * Deprecated upper-cased variables [Jamis Buck]
452
+
453
+ * Make sure Actor#get does not close the SFTP channel (so subsequent SFTP operations work) [Dov Murik]
454
+
455
+ * Add :env option to 'run' (and friends) so that you can specify environment variables to be injected into the new process' environment [Mathieu Lajugie]
456
+
457
+
458
+ == 1.4.0 / February 3, 2007
459
+
460
+ * Use the auth info for subversion more consistently [Jamis Buck]
461
+
462
+ * Add a "capture" helper, for capturing the stdout of a remote command and returning it as a string [Jamis Buck]
463
+
464
+ * Add a "get" helper, to pull a file from a remote server to the localhost [bmihelac]
465
+
466
+ * 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]
467
+
468
+ * Refactor the permissions tweaking in update_code to a separate task so that people on shared hosts can override it as necessary [jaw6]
469
+
470
+ * Set umask during the setup task, so that intermediate directories are created with the proper permissions [NeilW]
471
+
472
+ * Removed -c/--caprc switch, since the new load order renders it meaningless (just use -f now) [Mike Bailey]
473
+
474
+ * Make sure the standard recipe loads first, so that .caprc and friends can override what it defines. [Mike Bailey]
475
+
476
+ * Add support for a system-wide capistrano config file [Mike Bailey]
477
+
478
+ * Make cold_deploy call update instead of deploy (to avoid invoking the restart task).
479
+
480
+ * Make the touch command run by update_code set the TZ to UTC, for consistent setting of asset timestamps. [NeilW]
481
+
482
+ * Fix off-by-one bug in show_tasks width-computation [NeilW]
483
+
484
+
485
+ == 1.3.1 / January 5, 2007
486
+
487
+ * Fix connection problems when using gateways [Ezra Zygmuntowicz]
488
+
489
+
490
+ == 1.3.0 / December 23, 2006
491
+
492
+ * Deprecate rake integration in favor of invoking `cap' directly [Jamis Buck]
493
+
494
+ * Make sure the CVS module references the repository explicitly in cvs_log [weyus@att.net]
495
+
496
+ * Remove trace messages when loading a file [Jamis Buck]
497
+
498
+ * Cleaner error messages for authentication failures and command errors [Jamis Buck]
499
+
500
+ * Added support for ~/.caprc, also -x and -c switches. [Jamis Buck]
501
+
502
+ * Updated migrate action to use db:migrate task in Rails instead of the deprecated migrate task [DHH]
503
+
504
+ * Allow SSH user and port to be encoded in the hostname strings [Ezra Zygmuntowicz]
505
+
506
+ * Fixed that new checkouts were not group-writable [DHH, Jamis Buck]
507
+
508
+ * Fixed that cap setup would use 755 on the deploy_to and shared directory roots instead of 775 [DHH]
509
+
510
+ * Don't run the cleanup task on servers marked no_release [Jamis Buck]
511
+
512
+ * Fix typo in default_io_proc so it correctly checks the stream parameter to see if it is the error stream [Stephen Haberman]
513
+
514
+ * 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]
515
+
516
+ * Added warning if password is prompted for and termios is not installed [John Labovitz]
517
+
518
+ * Added :as option to sudo, so you can specify who the command is executed as [Mark Imbriaco]
519
+
520
+
521
+ == 1.2.0 / September 14, 2006
522
+
523
+ * Add experimental 'shell' task [Jamis Buck]
524
+
525
+ * Display file for external configurations, rather than inspected proc. [Jamis Buck]
526
+
527
+ * Connect to multiple servers in parallel, rather than serially. [Jamis Buck]
528
+
529
+ * Add SCM module for Mercurial (closes #4150) [Matthew Elder]
530
+
531
+ * Remove unused line in SCM::Base (closes #5619) [chris@seagul.co.uk]
532
+
533
+ * More efficient "svn log" usage (closes #5620) [Anatol Pomozov]
534
+
535
+ * Better support for key passphrases in the SVN module (closes #5920) [llasram@gmail.com]
536
+
537
+ * Fix missing default for :local in cvs.rb (closes #3645) [jeremy@hinegardner.org]
538
+
539
+ * Fix awkward spacing in gemspec file (closes #3888) [grant@antiflux.org]
540
+
541
+ * Add support for :sudo variable to specify path to sudo (closes #4578) [timothee.peignier@tryphon.org]
542
+
543
+ * Make previous_release return nil if there are no previous releases (closes #4959) [bdabney@cavoksolutions.com]
544
+
545
+ * Uncache releases list after update_code is called so that newly released dir is included (closes #3766) [Jamis Buck]
546
+
547
+ * Allow the subversion scm to accept HTTPS certificates (closes #4792) [Jamis Buck]
548
+
549
+ * Make sure rollbacks occur within the scope of the task that triggered them [Jamis Buck]
550
+
551
+ * Fixed the default recipe to work with setups that haven't yet gone pids [DHH]
552
+
553
+ * Symlink and setup for shared/pids to tmp/pids [DHH]
554
+
555
+ * Fix some incorrect usage text (closes #4507) [gerry_shaw@yahoo.com]
556
+
557
+ * Added Actor#stream method that makes it easy to create cross-server streams [DHH]. Example:
558
+
559
+ desc "Run a tail on multiple log files at the same time"
560
+ task :tail_fcgi, :roles => :app do
561
+ stream "tail -f #{shared_path}/log/fastcgi.crash.log"
562
+ end
563
+
564
+ * Make update_code and symlink a macro task under the name "update" for easy of deploy to servers that does not run fcgis [DHH]
565
+
566
+ * 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]
567
+
568
+ * Added support for :except on task declarations as the opposite of :only [DHH]. Example:
569
+
570
+ role :app, "192.168.0.2"
571
+ role :file, "192.168.0.3", :no_release => true
572
+
573
+ task :symlink, :except => { :no_release => true } do
574
+ on_rollback { run "ln -nfs #{previous_release} #{current_path}" }
575
+ run "ln -nfs #{current_release} #{current_path}"
576
+ end
577
+
578
+ cap symlink # will not run on 192.168.0.3
579
+
580
+ * Deprecate the -r/--recipe switch in favor of -f/--file (for more make/rake-like semantics) [Jamis Buck]
581
+
582
+ * Fix gemspec to include a dependency on rake 0.7 [Jamis Buck]
583
+
584
+ * Added respect for ENV["HOSTS"] that'll be used instead of the roles specified in the task definition [DHH]. Example:
585
+
586
+ HOSTS=192.168.0.1 cap setup # one-off setup for that server, doesn't need to be prespecified in the recipes file
587
+
588
+ * Added respect for ENV["ROLES"] that'll be used instead of the roles specified in the task definition [DHH]. Example:
589
+
590
+ task :setup, :roles => [ :app, :web, :db ]
591
+ # normally this would run every where
592
+ end
593
+
594
+ ROLES=app cap setup # this will only run for the app role, overwritting the default declaration
595
+
596
+ * Added :hosts option to task definition that allows you to specify cross-cutting tasks [DHH]. Example:
597
+
598
+ task :setup, :hosts => [ "06.example.com", "01.example.com" ] do
599
+ # this task will happen on 06 and 01 regardless of which roles they belong to
600
+ end
601
+
602
+ * Fix operator precedence problem in script for touching the revisions.log #3223 [jason.garber@emu.edu]
603
+
604
+
605
+ == 1.1.0 / March 6th, 2006
606
+
607
+ * Simplify the generated capistrano.rake file, and make it easier to customize
608
+
609
+ * Use rake-like command-line semantics ("cap deploy", in addition to "cap -a deploy")
610
+
611
+ * Rename to capistrano
612
+
613
+ * Make the generated capistrano.rake file use rake namespaces, and include all default tasks
614
+
615
+ * Look for config/deploy.rb, capfile, and Capfile by default
616
+
617
+
618
+ == 1.0.1 / February 20th, 2006
619
+
620
+ * Fix broken switchtower_invoke function in switchtower.rake (missing require statement)
621
+
622
+
623
+ == 1.0.0 / Feburary 18th, 2006
624
+
625
+ * Make CVS module's :local value default to "."
626
+
627
+ * Add "invoke" task for executing one-off commands
628
+
629
+ * Make port selection smarter for gateway connections
630
+
631
+ * Add extension mechanism for custom ST operations and third-party task libraries
632
+
633
+ * Make ST rails rake tasks more configurable
634
+
635
+ * Add Actor#current_task and simplify Task#servers
636
+
637
+ * Add Actor#connect! method for working around lazy connection establishing
638
+
639
+ * Make sure IO::TRUNC is specified for Net::SFTP uploads (#3510)
640
+
641
+ * Add branch support to CVS [jeremy@hinegardner.org] (#3596)
642
+
643
+ * Add bazaar-ng SCM module [Damien Merenne]
644
+
645
+ * Add optional :svn_username and :svn_password variables
646
+
647
+ * Allow Proc-valued variables to be set more conveniently (set(:foo) { "bar" })
648
+
649
+ * Add perforce SCM module [Richard McMahon]
650
+
651
+ * Add bazaar (v1) SCM module [Edd Dumbill] (#3533)
652
+
653
+ * Fix stftime format string used in CVS module to be Windows-compatible (fixes #3383)
654
+
655
+ * Add an better error when a task is run and no servers match the required conditions
656
+
657
+ * Add default spinner and cold_deploy tasks, and spinner_user variable
658
+
659
+ * Changed restart_via variable to (boolean) use_sudo
660
+
661
+ * Only chmod when the revisions.log file is first created
662
+
663
+ * Make UPPERCASE variables work
664
+
665
+ * Added rails_env variable (defaults to production) for use by tasks that employ the RAILS_ENV environment variable
666
+
667
+ * Added Actor.default_io_proc
668
+
669
+ * Set :actor key on SSH channel instances
670
+
671
+
672
+ == 0.10.0 / January 2nd, 2006
673
+
674
+ * Handle ssh password prompts like "someone's password:"
675
+
676
+ * Make CLI#echo available as a class method.
677
+
678
+ * Add CLI#with_echo.
679
+
680
+ * Make the default password prompt available as a class method.
681
+
682
+ # Add documentation for the CLI class.
683
+
684
+ * Add a sanity check to make sure the correct versions of Net::SSH and Net::SFTP are installed.
685
+
686
+ * Added a cleanup task to remove unused releases from the deployment directory
687
+
688
+ * Allow password to be reentered on sudo if it was entered incorrectly
689
+
690
+ * Use && as the command separator for the checkouts, so that errors are caught early.
691
+
692
+ * Ping each SSH connection every 1s during command processing so that long-running commands don't cause the connection to timeout.
693
+
694
+ * Add a 0.01s sleep during the command loop so that the CPU doesn't go ballistic while ST is doing its thing.
695
+
696
+ * Add :restart_via variable for specifying whether restart ought to use :sudo (default, use sudo)
697
+
698
+ * Use SFTP for file transfers (if available).
699
+
700
+ * Add an "update_current" task that will do an svn up on the current release
701
+
702
+ * Use the :checkout variable to determine what operation to use for svn checkouts (instead of co, like "export").
703
+
704
+ * The Rails rake tasks now load ST directly, instead of invoking it via system
705
+
706
+ * Added ssh_options variable to configure the SSH connection parameters #2734 [jerrett@bravenet.com]
707
+
708
+ * Require Net::SSH 1.0.5
709
+
710
+
711
+ == 0.9.0 / October 18th, 2005
712
+
713
+ * Use process reaper instead of custom reap script for restarting
714
+
715
+ * Use -S switch to set variables before reading recipe files #2242
716
+
717
+ * Have setup.rb create a switchtower.cmd file on Win32 platforms #2402
718
+
719
+ * Add diff_from_last_deploy to the rails switchtower rakefile template
720
+
721
+ * Add diff_from_last_deploy task (currently only works with subversion)
722
+
723
+ * Add deploy_with_migrations task.
724
+
725
+ * Make the migrate task more customizable.
726
+
727
+ * If no password is given with the -p switch, prompt for password immediately.
728
+
729
+ * Do not install a switchtower stub in the script directory. Assume the switchtower executable is in the path.
730
+
731
+ * Remove trailing newlines from commands to prevent trailing backslash #2141
732
+
733
+ * Default parameters work correctly with the generator #2218 [Scott Barron]
734
+
735
+ * Attempt to require 'rubygems' explicitly when running the switchtower utility #2134
736
+
737
+ * 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
738
+
739
+ * Default the application name to "Application" when using --apply-to
740
+
741
+ * Show the help screen instead of an error when no arguments are given
742
+
743
+ * Make SwitchTower easier to invoke programmatically via SwitchTower::CLI
744
+
745
+ * Specify the revision to release via the :revision variable (defaults to latest revision)
746
+
747
+ * Allow variables to be set via the cli using the -s switch
748
+
749
+ * Log checkouts to a "revisions.log" file
750
+
751
+ * Changed behavior of checkout to use the timestamp as the release name, instead of the revision number
752
+
753
+ * Added CVS module (very very experimental!)
754
+
755
+ * Works with public keys now, for passwordless deployment
756
+
757
+ * Subversion module recognizes the password prompt for HTTP authentication
758
+
759
+ * Preserve +x on scripts when using darcs #1929 [Scott Barron]
760
+
761
+ * When executing multiline commands, use a backslash to escape the newline