capistrano-didi 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,29 @@
1
+ ## 0.4.1 22 May 2012
2
+
3
+ * fix compatibility with capistrano 2.12.0
4
+ * you need to uninstall capistrano-ext (included in 2.12.0)
5
+ * cleanup sample stage config in didify
6
+ * fixed cleanup and dbbackup tasks in multisite config
7
+ * minor code and docs cleanup
8
+
9
+ ## 0.4.0 / May 3 2012
10
+
11
+ * added multisite support (see wiki)
12
+ * added manage:pull_dump
13
+ * extra config options (no_disable:true, local_database:nil, backup_database:true)
14
+
15
+ ## 0.3.2 / Mar 23 2012
16
+
17
+ * added config option: enable_robots, default to false
18
+ * added config option: drush_path, on remote server
19
+ * added default php settings in settings.php file
20
+ * put site in maintenance mode during deploy
21
+
22
+ ## 0.3.1 / Jan 4 2012
23
+
24
+ * added tests:unit_all + bugfixes
25
+
26
+ ## 0.3.0 / Nov 24 2011
27
+
28
+ * fix symlinks on rollback
29
+ * added manage:dbdump_previous task
data/Gemfile CHANGED
@@ -7,10 +7,9 @@ source "http://rubygems.org"
7
7
  # Include everything needed to run rake, tests, features, etc.
8
8
  group :development do
9
9
  gem "railsless-deploy", ">= 1.0.2"
10
- gem "capistrano-ext", ">= 1.2.1"
11
- gem "capistrano", ">= 2.9.0"
10
+ gem "capistrano", ">= 2.12.0"
12
11
  gem "shoulda", ">= 0"
13
- gem "bundler", "~> 1.0.0"
12
+ gem "bundler", "~> 1.1.3"
14
13
  gem "jeweler", "~> 1.6.4"
15
14
  gem "rcov", ">= 0"
16
15
  end
@@ -1,16 +1,14 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- capistrano (2.9.0)
4
+ capistrano (2.12.0)
5
5
  highline
6
6
  net-scp (>= 1.0.0)
7
7
  net-sftp (>= 2.0.0)
8
8
  net-ssh (>= 2.0.14)
9
9
  net-ssh-gateway (>= 1.1.0)
10
- capistrano-ext (1.2.1)
11
- capistrano (>= 1.0.0)
12
10
  git (1.2.5)
13
- highline (1.6.2)
11
+ highline (1.6.12)
14
12
  jeweler (1.6.4)
15
13
  bundler (~> 1.0)
16
14
  git (>= 1.2.5)
@@ -19,21 +17,24 @@ GEM
19
17
  net-ssh (>= 1.99.1)
20
18
  net-sftp (2.0.5)
21
19
  net-ssh (>= 2.0.9)
22
- net-ssh (2.2.1)
20
+ net-ssh (2.3.0)
23
21
  net-ssh-gateway (1.1.0)
24
22
  net-ssh (>= 1.99.1)
25
23
  railsless-deploy (1.0.2)
26
24
  rake (0.9.2.2)
27
- rcov (0.9.11)
28
- shoulda (2.11.3)
25
+ rcov (1.0.0)
26
+ shoulda (3.0.1)
27
+ shoulda-context (~> 1.0.0)
28
+ shoulda-matchers (~> 1.0.0)
29
+ shoulda-context (1.0.0)
30
+ shoulda-matchers (1.0.0)
29
31
 
30
32
  PLATFORMS
31
33
  ruby
32
34
 
33
35
  DEPENDENCIES
34
- bundler (~> 1.0.0)
35
- capistrano (>= 2.9.0)
36
- capistrano-ext (>= 1.2.1)
36
+ bundler (~> 1.1.3)
37
+ capistrano (>= 2.12.0)
37
38
  jeweler (~> 1.6.4)
38
39
  railsless-deploy (>= 1.0.2)
39
40
  rcov
@@ -1,6 +1,15 @@
1
1
  = didi
2
2
 
3
- Description goes here.
3
+ Didi is an collection of capistrano recipes that enable automated deployment and continuous integration of drupal websites. Once you have configured different hosting environments you can use the "didi" command to interact with them.
4
+
5
+ == What can didi do you for?
6
+
7
+ * update a hosting environment of your choice with the latest code
8
+ * perform drush commands for maintenance
9
+ * revert features via drush after code updates
10
+ * restore a remote database to your local development machine
11
+ * setup a drupal website from scratch on a new webserver
12
+ * run simpletests with Jenkins
4
13
 
5
14
  == Contributing to didi
6
15
 
@@ -14,29 +23,4 @@ Description goes here.
14
23
 
15
24
  == Copyright
16
25
 
17
- Copyright (c) 2011 Koen Van Winckel. See LICENSE.txt for
18
- further details.
19
-
20
-
21
-
22
- = TODO
23
-
24
- * set :site, "apache vhost here" => not clear what this is
25
- * set :sitesubdir, "default" => use :site here ?
26
- * create default + multisite with :site
27
- * sensible default: adminpass => default is admin admin
28
- * server app, web, db => hide this db depends on settings.php so specified else where
29
- * set :scm, "subversion" => document options => with svn url needs to be location of cap file
30
- * set :baseline => should not be mandatory
31
- * set :sitemail => should not be mandatory
32
- * stages => reserverd names (eg. test)
33
- * set :deploy_to => needs to be absolute (+what with trailing slash?)
34
- * requirements: drush
35
- * deploy:check => uitbreiden met control of repostioryu (svn / git) bereikbaar is) see "depend"
36
- * deploy:check => ook mysql connectie controleren
37
- * svn: problem with acceptance voor certificate
38
- * scm_username, scm_password
39
- * drush:si => ook feature revert all doen
40
- * apache vhost opgeven en gesymlinked word
41
- * railslessdeploy: run_locally
42
- * robots.txt disallow all
26
+ Copyright (c) Koen Van Winckel. See LICENSE.txt for further details.
data/Rakefile CHANGED
@@ -21,9 +21,8 @@ Jeweler::Tasks.new do |gem|
21
21
  gem.description = %Q{didi is a collection of recipes for capistrano that allow drupal to be deployed, tested and used in a CI environment}
22
22
  gem.email = "koenvw@gmail.com"
23
23
  gem.authors = ["Koen Van Winckel"]
24
- gem.add_dependency "capistrano", ">= 2.9.0"
24
+ gem.add_dependency "capistrano", ">= 2.12.0"
25
25
  gem.add_dependency "railsless-deploy", ">= 1.0.2"
26
- gem.add_dependency "capistrano-ext", ">= 1.2.1"
27
26
  gem.post_install_message = '=> "didify" and "didi" commands installed. Try them out!'
28
27
  # dependencies defined in Gemfile
29
28
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.0
1
+ 0.4.1
data/bin/didify CHANGED
@@ -38,35 +38,35 @@ end
38
38
  files = {
39
39
  "Capfile" => unindent(<<-FILE),
40
40
  require 'railsless-deploy' # gem install railsless-deploy
41
- require 'capistrano/ext/multistage' # gem install capistrano-ext
42
41
  require 'didi/recipes/didi.rb' # gem install capistrano-didi
43
42
  load 'config/deploy'
43
+ require 'capistrano/ext/multistage' # gem install capistrano
44
44
  FILE
45
45
 
46
46
  "config/deploy.rb" => 'set :default_stage, "staging"
47
47
  set :stages, %w(staging production)
48
- set :application, "set your application name here"
49
- set :repository, "set your repository location here"
48
+ set :application, "your_application_name"
49
+ set :repository, "your_repository_location_here"
50
50
  set :drupal_path, "drupal" # change this to your drupal folder
51
51
  ',
52
- "config/deploy/staging.rb" => 'set :user, "set your shell user here"
53
- server "set your server hostname here", :app, :web, :db, :primary => true
52
+ "config/deploy/staging.rb" => 'set :user, "ssh_user_name"
53
+ server "server.example.com", :app, :web, :db, :primary => true
54
54
 
55
- set :deploy_to, "the path on the remote server"
55
+ set :deploy_to, "the_path_on_the_remote_server"
56
56
  set :branch, "master"
57
57
 
58
58
  set :db_type, "mysql"
59
- set :db_name, "set database name"
60
- set :db_username, "set database user name"
61
- set :db_password, "set database password"
59
+ set :db_name, "database_name"
60
+ set :db_username, "database_user_name"
61
+ set :db_password, "database_password"
62
62
 
63
63
  set :profile, "minimal"
64
- set :site, "apache vhost here"
65
- set :sitemail, "drupal site email address"
66
- set :adminpass, "drupal admin pass"
67
- set :sitesubdir, "default"
64
+ set :domain, "default"
65
+ set :site, "apache_vhost"
66
+ set :sitemail, "drupal_site_email_address"
67
+ set :adminpass, "drupal_admin_pass"
68
68
 
69
- set :baseline, "drupal feature to activate after fresh install"
69
+ set :baseline, "drupal_feature_to_activate_after_fresh_install"
70
70
  '}
71
71
 
72
72
  base = ARGV.shift
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "capistrano-didi"
8
- s.version = "0.4.0"
8
+ s.version = "0.4.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Koen Van Winckel"]
12
- s.date = "2012-05-03"
12
+ s.date = "2012-05-22"
13
13
  s.description = "didi is a collection of recipes for capistrano that allow drupal to be deployed, tested and used in a CI environment"
14
14
  s.email = "koenvw@gmail.com"
15
15
  s.executables = ["didify", "didi"]
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
19
19
  ]
20
20
  s.files = [
21
21
  ".document",
22
+ "CHANGELOG.txt",
22
23
  "Gemfile",
23
24
  "Gemfile.lock",
24
25
  "LICENSE.txt",
@@ -44,38 +45,32 @@ Gem::Specification.new do |s|
44
45
 
45
46
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
46
47
  s.add_development_dependency(%q<railsless-deploy>, [">= 1.0.2"])
47
- s.add_development_dependency(%q<capistrano-ext>, [">= 1.2.1"])
48
- s.add_development_dependency(%q<capistrano>, [">= 2.9.0"])
48
+ s.add_development_dependency(%q<capistrano>, [">= 2.12.0"])
49
49
  s.add_development_dependency(%q<shoulda>, [">= 0"])
50
- s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
50
+ s.add_development_dependency(%q<bundler>, ["~> 1.1.3"])
51
51
  s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
52
52
  s.add_development_dependency(%q<rcov>, [">= 0"])
53
- s.add_runtime_dependency(%q<capistrano>, [">= 2.9.0"])
53
+ s.add_runtime_dependency(%q<capistrano>, [">= 2.12.0"])
54
54
  s.add_runtime_dependency(%q<railsless-deploy>, [">= 1.0.2"])
55
- s.add_runtime_dependency(%q<capistrano-ext>, [">= 1.2.1"])
56
55
  else
57
56
  s.add_dependency(%q<railsless-deploy>, [">= 1.0.2"])
58
- s.add_dependency(%q<capistrano-ext>, [">= 1.2.1"])
59
- s.add_dependency(%q<capistrano>, [">= 2.9.0"])
57
+ s.add_dependency(%q<capistrano>, [">= 2.12.0"])
60
58
  s.add_dependency(%q<shoulda>, [">= 0"])
61
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
59
+ s.add_dependency(%q<bundler>, ["~> 1.1.3"])
62
60
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
63
61
  s.add_dependency(%q<rcov>, [">= 0"])
64
- s.add_dependency(%q<capistrano>, [">= 2.9.0"])
62
+ s.add_dependency(%q<capistrano>, [">= 2.12.0"])
65
63
  s.add_dependency(%q<railsless-deploy>, [">= 1.0.2"])
66
- s.add_dependency(%q<capistrano-ext>, [">= 1.2.1"])
67
64
  end
68
65
  else
69
66
  s.add_dependency(%q<railsless-deploy>, [">= 1.0.2"])
70
- s.add_dependency(%q<capistrano-ext>, [">= 1.2.1"])
71
- s.add_dependency(%q<capistrano>, [">= 2.9.0"])
67
+ s.add_dependency(%q<capistrano>, [">= 2.12.0"])
72
68
  s.add_dependency(%q<shoulda>, [">= 0"])
73
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
69
+ s.add_dependency(%q<bundler>, ["~> 1.1.3"])
74
70
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
75
71
  s.add_dependency(%q<rcov>, [">= 0"])
76
- s.add_dependency(%q<capistrano>, [">= 2.9.0"])
72
+ s.add_dependency(%q<capistrano>, [">= 2.12.0"])
77
73
  s.add_dependency(%q<railsless-deploy>, [">= 1.0.2"])
78
- s.add_dependency(%q<capistrano-ext>, [">= 1.2.1"])
79
74
  end
80
75
  end
81
76
 
@@ -15,7 +15,6 @@ _cset(:profile) { abort "Please specify the Drupal install profile (:pro
15
15
  _cset(:site) { abort "Please specify the Drupal site (:site)." }
16
16
  _cset(:sitemail) { abort "Please specify the Drupal site mail (:sitemail)." }
17
17
  _cset(:adminpass) { abort "Please specify the Drupal admin password (:adminpass)." }
18
- _cset(:sitesubdir) { abort "Please specify the Drupal site subdir (:sitesubdir)." } # FIXME: files folder needs to be symlinked ??
19
18
  _cset(:baseline) { abort "Please specify the Baseline feature (:baseline)." }
20
19
 
21
20
 
@@ -78,7 +77,7 @@ depend :remote, :command, "#{drush_path}drush"
78
77
  namespace :deploy do
79
78
 
80
79
  desc <<-DESC
81
- Deploys your Drupal site. It supposes that the Setup task was already executed.
80
+ Deploys your Drupal site, runs drush:update. It supposes that the Setup task was already executed.
82
81
  This overrides the default Capistrano Deploy task to handle database operations and backups,
83
82
  all of them via Drush.
84
83
  DESC
@@ -93,17 +92,16 @@ namespace :deploy do
93
92
  task :cold do
94
93
  transaction do
95
94
  setup
96
- update_code
97
- symlink
95
+ update
98
96
  end
99
97
  end
100
98
  after "deploy:cold", "drush:si"
101
99
 
102
100
  desc "Deploys latest code and rebuild the database"
103
101
  task :rebuild do
104
- update_code
105
- symlink
102
+ update
106
103
  manage.dbdump_previous
104
+ cleanup
107
105
  end
108
106
  after "deploy:rebuild", "drush:si"
109
107
 
@@ -119,12 +117,12 @@ namespace :deploy do
119
117
 
120
118
  run <<-CMD
121
119
  mkdir -p #{dirs.join(' ')}
122
- #{try_sudo} chown #{user}:#{srv_usr} #{shared_files.to_a.join(' ')} &&
123
- #{try_sudo} chmod g+w #{shared_files.to_a.join(' ')}
120
+ #{try_sudo} chown #{user}:#{srv_usr} #{shared_files.join(' ')} &&
121
+ #{try_sudo} chmod g+w #{shared_files.join(' ')}
124
122
  CMD
125
123
 
126
124
  #create drupal config file
127
- domain.to_a.each_with_index do |d, i|
125
+ domain.each_with_index do |d, i|
128
126
  configuration = drupal_settings(drupal_version, d)
129
127
  put configuration, shared_settings[i]
130
128
  end
@@ -133,8 +131,12 @@ namespace :deploy do
133
131
 
134
132
  desc "[internal] Rebuild files and settings symlinks"
135
133
  task :finalize_update, :except => { :no_release => true } do
134
+ # Specifies an on_rollback hook for the currently executing task. If this
135
+ # or any subsequent task then fails, and a transaction is active, this
136
+ # hook will be executed.
136
137
  on_rollback do
137
138
  if previous_release
139
+ #FIXME: won't work on mulitsite config
138
140
  run "ln -nfs #{shared_files} #{previous_release_files} && ln -nfs #{shared_settings} #{previous_release_settings}"
139
141
  else
140
142
  logger.important "no previous release to rollback to, rollback of drupal shared data skipped."
@@ -143,7 +145,7 @@ namespace :deploy do
143
145
 
144
146
 
145
147
  release_domain.each do |rd|
146
- run "if [ ! -d #{rd} ]; then mkdir #{rd}; fi" # in case the default is not versioned
148
+ run "if [ ! -d #{rd} ]; then mkdir #{rd}; fi" # in case the default folder is not versioned
147
149
  end
148
150
 
149
151
  shared_files.each_with_index do |sf, i|
@@ -177,21 +179,29 @@ namespace :deploy do
177
179
  logger.info "keeping #{count} of #{releases.length} deployed releases"
178
180
  old_releases = (releases - releases.last(count))
179
181
  directories = old_releases.map { |release| File.join(releases_path, release) }.join(" ")
180
- databases = old_releases.map { |release| File.join(dbbackups_path, "#{release}.sql") }.join(" ")
181
-
182
+ databases = dbbackups_path.product(old_releases.map { |release| "#{release}.sql"} ).map { |p| File.join(p)}.join(" ") if backup_database
182
183
  run "rm -rf #{directories} #{databases}"
183
184
  end
184
185
  end
185
186
 
186
187
  namespace :rollback do
187
188
 
189
+ desc <<-DESC
190
+ go back to the previous release (code and database)
191
+ DESC
192
+ task :default do
193
+ revision
194
+ #db_rollback if domain.to_a.size == 1 # FIXME: not supported in multisite configuration, does not work
195
+ cleanup
196
+ end
197
+
188
198
  desc <<-DESC
189
199
  [internal] Removes the most recently deployed release.
190
200
  This is called by the rollback sequence, and should rarely
191
201
  (if ever) need to be called directly.
192
202
  DESC
193
203
  task :cleanup, :except => { :no_release => true } do
194
- # chmod 777 #{release_settings} #{release_files} &&
204
+ # FIXME: this doesn't cleanup dbbackups
195
205
  run "if [ `readlink #{current_path}` != #{current_release} ]; then rm -rf #{current_release}; fi"
196
206
  end
197
207
 
@@ -203,9 +213,13 @@ namespace :deploy do
203
213
  run <<-CMD
204
214
  rm #{current_path};
205
215
  ln -s #{previous_release} #{current_path};
206
- ln -nfs #{shared_files} #{previous_release_files};
207
- ln -nfs #{shared_settings} #{previous_release_settings}
208
216
  CMD
217
+ shared_files.each_with_index do |sf, i|
218
+ run <<-CMD
219
+ ln -nfs #{sf} #{previous_release_files[i]} &&
220
+ ln -nfs #{shared_settings[i]} #{previous_release_settings[i]}
221
+ CMD
222
+ end
209
223
  else
210
224
  abort "could not rollback the code because there is no prior release"
211
225
  end
@@ -217,6 +231,7 @@ namespace :deploy do
217
231
  database and import the backup. This task should NEVER be called standalone.
218
232
  DESC
219
233
  task :db_rollback, :except => { :no_release => true } do
234
+ #FIXME: does not work
220
235
  if previous_release
221
236
  logger.info "Dumping current database and importing previous one (If one is found)."
222
237
  previous_db = File.join(dbbackups_path, "#{releases[-2]}.sql")
@@ -227,15 +242,17 @@ namespace :deploy do
227
242
  end
228
243
  end
229
244
 
230
- desc <<-DESC
231
- go back to the previous release (code and database)
232
- DESC
233
- task :default do
234
- revision
235
- db_rollback
236
- cleanup
245
+ end
246
+
247
+ namespace :web do
248
+ desc "Makes the application web-accessible again."
249
+ task :enable do
250
+ drush.ensite
251
+ end
252
+ desc "Present a maintenance page to visitors."
253
+ task :disable do
254
+ drush.dissite
237
255
  end
238
-
239
256
  end
240
257
 
241
258
  end
@@ -275,13 +292,13 @@ namespace :drush do
275
292
  end
276
293
  cc
277
294
  end
278
- desc "[internal] Enable the simpletest feature"
295
+ desc "[internal] Enable the simpletest feature"
279
296
  task :enst do
280
297
  run "cd #{current_path}/#{drupal_path} && #{drush_path}drush pm-enable simpletest -y"
281
298
  cc
282
299
  end
283
300
 
284
- desc "Disable maintenance mode, enabling the site"
301
+ desc "[internal] Disable maintenance mode, enabling the site"
285
302
  task :ensite do
286
303
  if drupal_version == 6
287
304
  run "cd #{current_path}/#{drupal_path} && #{drush_path}drush vset --always-set site_offline 0"
@@ -292,7 +309,7 @@ namespace :drush do
292
309
  end
293
310
  end
294
311
 
295
- desc "Enable maintenance mode, disabling the site"
312
+ desc "[internal] Enable maintenance mode, disabling the site"
296
313
  task :dissite do
297
314
  if drupal_version == 6
298
315
  run "cd #{current_path}/#{drupal_path} && #{drush_path}drush vset --always-set site_offline 1"
@@ -399,7 +416,9 @@ namespace :manage do
399
416
  task :dbdump_previous do
400
417
  #Backup the previous release's database
401
418
  if previous_release && backup_database
402
- run "cd #{current_path}/#{drupal_path} && #{drush_path}drush sql-dump > #{ File.join(dbbackups_path, "#{releases[-2]}.sql") }"
419
+ domain.each_with_index do |d,i|
420
+ run "cd #{current_path}/#{drupal_path} && #{drush_path}drush" + (d == 'default' ? '' : " -l #{d}") + " sql-dump > #{ File.join(dbbackups_path[i], "#{releases[-2]}.sql") }"
421
+ end
403
422
  end
404
423
  end
405
424
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-didi
3
3
  version: !ruby/object:Gem::Version
4
- hash: 15
4
+ hash: 13
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 4
9
- - 0
10
- version: 0.4.0
9
+ - 1
10
+ version: 0.4.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Koen Van Winckel
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-05-03 00:00:00 Z
18
+ date: 2012-05-22 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  requirement: &id001 !ruby/object:Gem::Requirement
@@ -39,34 +39,18 @@ dependencies:
39
39
  requirements:
40
40
  - - ">="
41
41
  - !ruby/object:Gem::Version
42
- hash: 29
43
- segments:
44
- - 1
45
- - 2
46
- - 1
47
- version: 1.2.1
48
- version_requirements: *id002
49
- name: capistrano-ext
50
- prerelease: false
51
- type: :development
52
- - !ruby/object:Gem::Dependency
53
- requirement: &id003 !ruby/object:Gem::Requirement
54
- none: false
55
- requirements:
56
- - - ">="
57
- - !ruby/object:Gem::Version
58
- hash: 43
42
+ hash: 63
59
43
  segments:
60
44
  - 2
61
- - 9
45
+ - 12
62
46
  - 0
63
- version: 2.9.0
64
- version_requirements: *id003
47
+ version: 2.12.0
48
+ version_requirements: *id002
65
49
  name: capistrano
66
50
  prerelease: false
67
51
  type: :development
68
52
  - !ruby/object:Gem::Dependency
69
- requirement: &id004 !ruby/object:Gem::Requirement
53
+ requirement: &id003 !ruby/object:Gem::Requirement
70
54
  none: false
71
55
  requirements:
72
56
  - - ">="
@@ -75,28 +59,28 @@ dependencies:
75
59
  segments:
76
60
  - 0
77
61
  version: "0"
78
- version_requirements: *id004
62
+ version_requirements: *id003
79
63
  name: shoulda
80
64
  prerelease: false
81
65
  type: :development
82
66
  - !ruby/object:Gem::Dependency
83
- requirement: &id005 !ruby/object:Gem::Requirement
67
+ requirement: &id004 !ruby/object:Gem::Requirement
84
68
  none: false
85
69
  requirements:
86
70
  - - ~>
87
71
  - !ruby/object:Gem::Version
88
- hash: 23
72
+ hash: 21
89
73
  segments:
90
74
  - 1
91
- - 0
92
- - 0
93
- version: 1.0.0
94
- version_requirements: *id005
75
+ - 1
76
+ - 3
77
+ version: 1.1.3
78
+ version_requirements: *id004
95
79
  name: bundler
96
80
  prerelease: false
97
81
  type: :development
98
82
  - !ruby/object:Gem::Dependency
99
- requirement: &id006 !ruby/object:Gem::Requirement
83
+ requirement: &id005 !ruby/object:Gem::Requirement
100
84
  none: false
101
85
  requirements:
102
86
  - - ~>
@@ -107,12 +91,12 @@ dependencies:
107
91
  - 6
108
92
  - 4
109
93
  version: 1.6.4
110
- version_requirements: *id006
94
+ version_requirements: *id005
111
95
  name: jeweler
112
96
  prerelease: false
113
97
  type: :development
114
98
  - !ruby/object:Gem::Dependency
115
- requirement: &id007 !ruby/object:Gem::Requirement
99
+ requirement: &id006 !ruby/object:Gem::Requirement
116
100
  none: false
117
101
  requirements:
118
102
  - - ">="
@@ -121,28 +105,28 @@ dependencies:
121
105
  segments:
122
106
  - 0
123
107
  version: "0"
124
- version_requirements: *id007
108
+ version_requirements: *id006
125
109
  name: rcov
126
110
  prerelease: false
127
111
  type: :development
128
112
  - !ruby/object:Gem::Dependency
129
- requirement: &id008 !ruby/object:Gem::Requirement
113
+ requirement: &id007 !ruby/object:Gem::Requirement
130
114
  none: false
131
115
  requirements:
132
116
  - - ">="
133
117
  - !ruby/object:Gem::Version
134
- hash: 43
118
+ hash: 63
135
119
  segments:
136
120
  - 2
137
- - 9
121
+ - 12
138
122
  - 0
139
- version: 2.9.0
140
- version_requirements: *id008
123
+ version: 2.12.0
124
+ version_requirements: *id007
141
125
  name: capistrano
142
126
  prerelease: false
143
127
  type: :runtime
144
128
  - !ruby/object:Gem::Dependency
145
- requirement: &id009 !ruby/object:Gem::Requirement
129
+ requirement: &id008 !ruby/object:Gem::Requirement
146
130
  none: false
147
131
  requirements:
148
132
  - - ">="
@@ -153,26 +137,10 @@ dependencies:
153
137
  - 0
154
138
  - 2
155
139
  version: 1.0.2
156
- version_requirements: *id009
140
+ version_requirements: *id008
157
141
  name: railsless-deploy
158
142
  prerelease: false
159
143
  type: :runtime
160
- - !ruby/object:Gem::Dependency
161
- requirement: &id010 !ruby/object:Gem::Requirement
162
- none: false
163
- requirements:
164
- - - ">="
165
- - !ruby/object:Gem::Version
166
- hash: 29
167
- segments:
168
- - 1
169
- - 2
170
- - 1
171
- version: 1.2.1
172
- version_requirements: *id010
173
- name: capistrano-ext
174
- prerelease: false
175
- type: :runtime
176
144
  description: didi is a collection of recipes for capistrano that allow drupal to be deployed, tested and used in a CI environment
177
145
  email: koenvw@gmail.com
178
146
  executables:
@@ -185,6 +153,7 @@ extra_rdoc_files:
185
153
  - README.rdoc
186
154
  files:
187
155
  - .document
156
+ - CHANGELOG.txt
188
157
  - Gemfile
189
158
  - Gemfile.lock
190
159
  - LICENSE.txt