capistrano 3.11.0 → 3.11.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +6 -5
- data/CHANGELOG.md +6 -0
- data/Gemfile +23 -1
- data/LICENSE.txt +1 -1
- data/README.md +1 -1
- data/capistrano.gemspec +3 -1
- data/features/deploy.feature +6 -0
- data/features/step_definitions/setup.rb +6 -4
- data/lib/capistrano/tasks/deploy.rake +3 -2
- data/lib/capistrano/version.rb +1 -1
- data/spec/lib/capistrano/application_spec.rb +16 -40
- data/spec/lib/capistrano/configuration/plugin_installer_spec.rb +1 -1
- data/spec/lib/capistrano/configuration/question_spec.rb +1 -1
- data/spec/lib/capistrano/configuration/scm_resolver_spec.rb +3 -2
- data/spec/lib/capistrano/doctor/environment_doctor_spec.rb +1 -1
- data/spec/lib/capistrano/doctor/gems_doctor_spec.rb +1 -1
- data/spec/lib/capistrano/doctor/servers_doctor_spec.rb +1 -1
- data/spec/lib/capistrano/doctor/variables_doctor_spec.rb +1 -1
- data/spec/lib/capistrano/dsl/task_enhancements_spec.rb +6 -6
- data/spec/lib/capistrano/dsl_spec.rb +5 -5
- data/spec/lib/capistrano/plugin_spec.rb +2 -2
- data/spec/spec_helper.rb +13 -0
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f49655355a29df420b48044e15216c6edd72c9a11a41c502c00f2e2b34e61121
|
4
|
+
data.tar.gz: 422078d39578d7688357f247d28337f76e071cae2c8fa780615f7c650f37aac5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c80d8785a8b09638e3cd44961469607ade3e84984e50fe79d680aa62f8ba7dfc8ce1baad91328ca6a7c29416ff46cdaa4efd933056efd9f857c344e1c2b48659
|
7
|
+
data.tar.gz: ccd85825ce1005098fc7dda72d5bde5b118f79f7f9b039fccc4cb07bbc3d2e6b51f3164faa386ed594b926277b876e750670f781bf2f5f00bb19bce06c5f77c3
|
data/.travis.yml
CHANGED
@@ -1,7 +1,9 @@
|
|
1
1
|
language: ruby
|
2
2
|
rvm:
|
3
|
-
- 2.
|
4
|
-
- 2.
|
3
|
+
- 2.6.3
|
4
|
+
- 2.5.5
|
5
|
+
- 2.4.6
|
6
|
+
- 2.3.8
|
5
7
|
- 2.2
|
6
8
|
- 2.1
|
7
9
|
- 2.0
|
@@ -14,8 +16,8 @@ matrix:
|
|
14
16
|
include:
|
15
17
|
- rvm: rbx-2
|
16
18
|
script: bundle exec rake spec
|
17
|
-
# Run Danger only once, on 2.3
|
18
|
-
- rvm: 2.
|
19
|
+
# Run Danger only once, on 2.5.3
|
20
|
+
- rvm: 2.5.5
|
19
21
|
before_script: bundle exec danger
|
20
22
|
|
21
23
|
script: bundle exec rake spec rubocop
|
@@ -24,4 +26,3 @@ cache: bundler
|
|
24
26
|
branches:
|
25
27
|
except:
|
26
28
|
- legacy-v2
|
27
|
-
sudo: false
|
data/CHANGELOG.md
CHANGED
@@ -20,6 +20,12 @@ gem "capistrano", github: "capistrano/capistrano", require: false
|
|
20
20
|
|
21
21
|
* Your contribution here!
|
22
22
|
|
23
|
+
## [`3.11.1`] (2019-08-29)
|
24
|
+
|
25
|
+
* [#2027](https://github.com/capistrano/capistrano/pull/2027): Batch rm -rf calls in deploy:cleanup to fix an error when there are too many old releases [@azin634](https://github.com/azin634)
|
26
|
+
|
27
|
+
[`3.11.1`]: https://github.com/capistrano/capistrano/compare/v3.11.0...v3.11.1
|
28
|
+
|
23
29
|
## [`3.11.0`] (2018-06-02)
|
24
30
|
|
25
31
|
* [#1972](https://github.com/capistrano/capistrano/pull/1972): fallback ask to default when used in non interactive session
|
data/Gemfile
CHANGED
@@ -4,7 +4,29 @@ source "https://rubygems.org"
|
|
4
4
|
gemspec
|
5
5
|
|
6
6
|
group :cucumber do
|
7
|
-
|
7
|
+
# Latest versions of cucumber don't support Ruby < 2.1
|
8
|
+
# rubocop:disable Bundler/DuplicatedGem
|
9
|
+
if Gem::Requirement.new("< 2.1").satisfied_by?(Gem::Version.new(RUBY_VERSION))
|
10
|
+
gem "cucumber", "< 3.0.1"
|
11
|
+
else
|
12
|
+
gem "cucumber"
|
13
|
+
end
|
14
|
+
# rubocop:enable Bundler/DuplicatedGem
|
8
15
|
gem "rspec"
|
9
16
|
gem "rspec-core", "~> 3.4.4"
|
10
17
|
end
|
18
|
+
|
19
|
+
# Latest versions of net-ssh don't support Ruby < 2.2.6
|
20
|
+
if Gem::Requirement.new("< 2.2.6").satisfied_by?(Gem::Version.new(RUBY_VERSION))
|
21
|
+
gem "net-ssh", "< 5.0.0"
|
22
|
+
end
|
23
|
+
|
24
|
+
# Latest versions of public_suffix don't support Ruby < 2.1
|
25
|
+
if Gem::Requirement.new("< 2.1").satisfied_by?(Gem::Version.new(RUBY_VERSION))
|
26
|
+
gem "public_suffix", "< 3.0.0"
|
27
|
+
end
|
28
|
+
|
29
|
+
# Latest versions of i18n don't support Ruby < 2.1
|
30
|
+
if Gem::Requirement.new("< 2.1").satisfied_by?(Gem::Version.new(RUBY_VERSION))
|
31
|
+
gem "i18n", "< 1.3.0"
|
32
|
+
end
|
data/LICENSE.txt
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
MIT License (MIT)
|
2
2
|
|
3
|
-
Copyright (c) 2012-
|
3
|
+
Copyright (c) 2012-2019 Tom Clements, Lee Hambley
|
4
4
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
data/README.md
CHANGED
@@ -200,7 +200,7 @@ Contributions to Capistrano, in the form of code, documentation or idea, are gla
|
|
200
200
|
|
201
201
|
MIT License (MIT)
|
202
202
|
|
203
|
-
Copyright (c) 2012-
|
203
|
+
Copyright (c) 2012-2019 Tom Clements, Lee Hambley
|
204
204
|
|
205
205
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
206
206
|
of this software and associated documentation files (the "Software"), to deal
|
data/capistrano.gemspec
CHANGED
@@ -12,7 +12,9 @@ Gem::Specification.new do |gem|
|
|
12
12
|
gem.description = "Capistrano is a utility and framework for executing commands in parallel on multiple remote machines, via SSH."
|
13
13
|
gem.summary = "Capistrano - Welcome to easy deployment with Ruby over SSH"
|
14
14
|
gem.homepage = "http://capistranorb.com/"
|
15
|
-
|
15
|
+
gem.metadata = {
|
16
|
+
"changelog_uri" => "https://github.com/capistrano/capistrano/blob/master/CHANGELOG.md"
|
17
|
+
}
|
16
18
|
gem.files = `git ls-files -z`.split("\x0").reject { |f| f =~ /^docs/ }
|
17
19
|
gem.executables = %w(cap capify)
|
18
20
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
data/features/deploy.feature
CHANGED
@@ -70,6 +70,12 @@ Feature: Deploy
|
|
70
70
|
Then 3 valid releases are kept
|
71
71
|
And the current directory will be a symlink to the release
|
72
72
|
|
73
|
+
Scenario: Cleanup when there are more releases than arguments can handle
|
74
|
+
Given config stage file has line "set :keep_releases, 3"
|
75
|
+
And 5000 valid existing releases
|
76
|
+
When I run cap "deploy:cleanup"
|
77
|
+
Then 3 valid releases are kept
|
78
|
+
|
73
79
|
Scenario: Rolling Back
|
74
80
|
Given I make 2 deployments
|
75
81
|
When I run cap "deploy:rollback"
|
@@ -80,10 +80,12 @@ end
|
|
80
80
|
|
81
81
|
Given(/^(\d+) valid existing releases$/) do |num|
|
82
82
|
a_day = 86_400 # in seconds
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
83
|
+
(1...num).each_slice(100) do |num_batch|
|
84
|
+
dirs = num_batch.map do |i|
|
85
|
+
offset = -(a_day * i)
|
86
|
+
TestApp.release_path(TestApp.timestamp(offset))
|
87
|
+
end
|
88
|
+
run_vagrant_command("mkdir -p #{dirs.join(' ')}")
|
87
89
|
end
|
88
90
|
end
|
89
91
|
|
@@ -168,8 +168,9 @@ namespace :deploy do
|
|
168
168
|
debug t(:no_current_release, host: host.to_s)
|
169
169
|
end
|
170
170
|
if directories.any?
|
171
|
-
|
172
|
-
|
171
|
+
directories.each_slice(100) do |directories_batch|
|
172
|
+
execute :rm, "-rf", *directories_batch
|
173
|
+
end
|
173
174
|
else
|
174
175
|
info t(:no_old_releases, host: host.to_s, keep_releases: fetch(:keep_releases))
|
175
176
|
end
|
data/lib/capistrano/version.rb
CHANGED
@@ -5,46 +5,40 @@ describe Capistrano::Application do
|
|
5
5
|
|
6
6
|
it "provides a --format option which enables the choice of output formatting"
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
end
|
12
|
-
out
|
13
|
-
end
|
14
|
-
|
15
|
-
it "displays documentation URL as help banner" do
|
16
|
-
expect(help_output.lines.first).to match(/capistranorb.com/)
|
8
|
+
it "displays documentation URL as help banner", capture_io: true do
|
9
|
+
flags "--help", "-h"
|
10
|
+
expect($stdout.string.each_line.first).to match(/capistranorb.com/)
|
17
11
|
end
|
18
12
|
|
19
13
|
%w(quiet silent verbose).each do |switch|
|
20
|
-
it "doesn't include --#{switch} in help" do
|
21
|
-
|
14
|
+
it "doesn't include --#{switch} in help", capture_io: true do
|
15
|
+
flags "--help", "-h"
|
16
|
+
expect($stdout.string).not_to match(/--#{switch}/)
|
22
17
|
end
|
23
18
|
end
|
24
19
|
|
25
|
-
it "overrides the rake method, but still prints the rake version" do
|
26
|
-
|
27
|
-
|
28
|
-
end
|
20
|
+
it "overrides the rake method, but still prints the rake version", capture_io: true do
|
21
|
+
flags "--version", "-V"
|
22
|
+
out = $stdout.string
|
29
23
|
expect(out).to match(/\bCapistrano Version\b/)
|
30
24
|
expect(out).to match(/\b#{Capistrano::VERSION}\b/)
|
31
25
|
expect(out).to match(/\bRake Version\b/)
|
32
26
|
expect(out).to match(/\b#{Rake::VERSION}\b/)
|
33
27
|
end
|
34
28
|
|
35
|
-
it "overrides the rake method, and sets the sshkit_backend to SSHKit::Backend::Printer" do
|
36
|
-
|
37
|
-
flags "--dry-run", "-n"
|
38
|
-
end
|
29
|
+
it "overrides the rake method, and sets the sshkit_backend to SSHKit::Backend::Printer", capture_io: true do
|
30
|
+
flags "--dry-run", "-n"
|
39
31
|
sshkit_backend = Capistrano::Configuration.fetch(:sshkit_backend)
|
40
32
|
expect(sshkit_backend).to eq(SSHKit::Backend::Printer)
|
41
33
|
end
|
42
34
|
|
43
|
-
it "enables printing all config variables on command line parameter" do
|
44
|
-
|
35
|
+
it "enables printing all config variables on command line parameter", capture_io: true do
|
36
|
+
begin
|
45
37
|
flags "--print-config-variables", "-p"
|
38
|
+
expect(Capistrano::Configuration.fetch(:print_config_variables)).to be true
|
39
|
+
ensure
|
40
|
+
Capistrano::Configuration.reset!
|
46
41
|
end
|
47
|
-
expect(Capistrano::Configuration.fetch(:print_config_variables)).to be true
|
48
42
|
end
|
49
43
|
|
50
44
|
def flags(*sets)
|
@@ -63,22 +57,4 @@ describe Capistrano::Application do
|
|
63
57
|
subject.run
|
64
58
|
subject.options
|
65
59
|
end
|
66
|
-
|
67
|
-
def capture_io
|
68
|
-
require "stringio"
|
69
|
-
|
70
|
-
orig_stdout = $stdout
|
71
|
-
orig_stderr = $stderr
|
72
|
-
captured_stdout = StringIO.new
|
73
|
-
captured_stderr = StringIO.new
|
74
|
-
$stdout = captured_stdout
|
75
|
-
$stderr = captured_stderr
|
76
|
-
|
77
|
-
yield
|
78
|
-
|
79
|
-
return captured_stdout.string, captured_stderr.string
|
80
|
-
ensure
|
81
|
-
$stdout = orig_stdout
|
82
|
-
$stderr = orig_stderr
|
83
|
-
end
|
84
60
|
end
|
@@ -49,7 +49,7 @@ module Capistrano
|
|
49
49
|
expect(task.prerequisites).to eq([:example_prerequisite])
|
50
50
|
end
|
51
51
|
|
52
|
-
it "sets defaults when load:defaults is invoked" do
|
52
|
+
it "sets defaults when load:defaults is invoked", capture_io: true do
|
53
53
|
expect(fetch(:example_variable)).to be_nil
|
54
54
|
invoke "load:defaults"
|
55
55
|
expect(fetch(:example_variable)).to eq("foo")
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require "spec_helper"
|
2
|
+
require "capistrano/scm"
|
2
3
|
|
3
4
|
module Capistrano
|
4
5
|
class Configuration
|
@@ -24,12 +25,12 @@ module Capistrano
|
|
24
25
|
expect { resolver.resolve }.to output(/will not load the git scm/i).to_stderr
|
25
26
|
end
|
26
27
|
|
27
|
-
it "activates the git scm" do
|
28
|
+
it "activates the git scm", capture_io: true do
|
28
29
|
resolver.resolve
|
29
30
|
expect(Rake::Task["git:wrapper"]).not_to be_nil
|
30
31
|
end
|
31
32
|
|
32
|
-
it "sets :scm to :git" do
|
33
|
+
it "sets :scm to :git", capture_io: true do
|
33
34
|
resolver.resolve
|
34
35
|
expect(fetch(:scm)).to eq(:git)
|
35
36
|
end
|
@@ -29,7 +29,7 @@ module Capistrano
|
|
29
29
|
Rake::Task.clear
|
30
30
|
end
|
31
31
|
|
32
|
-
it "has an doctor:environment task that calls EnvironmentDoctor" do
|
32
|
+
it "has an doctor:environment task that calls EnvironmentDoctor", capture_io: true do
|
33
33
|
EnvironmentDoctor.any_instance.expects(:call)
|
34
34
|
Rake::Task["doctor:environment"].invoke
|
35
35
|
end
|
@@ -53,7 +53,7 @@ module Capistrano
|
|
53
53
|
Rake::Task.clear
|
54
54
|
end
|
55
55
|
|
56
|
-
it "has an doctor:gems task that calls GemsDoctor" do
|
56
|
+
it "has an doctor:gems task that calls GemsDoctor", capture_io: true do
|
57
57
|
GemsDoctor.any_instance.expects(:call)
|
58
58
|
Rake::Task["doctor:gems"].invoke
|
59
59
|
end
|
@@ -71,7 +71,7 @@ module Capistrano
|
|
71
71
|
Rake::Task.clear
|
72
72
|
end
|
73
73
|
|
74
|
-
it "has an doctor:servers task that calls ServersDoctor" do
|
74
|
+
it "has an doctor:servers task that calls ServersDoctor", capture_io: true do
|
75
75
|
ServersDoctor.any_instance.expects(:call)
|
76
76
|
Rake::Task["doctor:servers"].invoke
|
77
77
|
end
|
@@ -74,7 +74,7 @@ module Capistrano
|
|
74
74
|
Rake::Task.clear
|
75
75
|
end
|
76
76
|
|
77
|
-
it "has an doctor:variables task that calls VariablesDoctor" do
|
77
|
+
it "has an doctor:variables task that calls VariablesDoctor", capture_io: true do
|
78
78
|
VariablesDoctor.any_instance.expects(:call)
|
79
79
|
Rake::Task["doctor:variables"].invoke
|
80
80
|
end
|
@@ -35,7 +35,7 @@ module Capistrano
|
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
|
-
it "invokes in proper order if define after than before" do
|
38
|
+
it "invokes in proper order if define after than before", capture_io: true do
|
39
39
|
task_enhancements.after("task", "after_task")
|
40
40
|
task_enhancements.before("task", "before_task")
|
41
41
|
|
@@ -44,7 +44,7 @@ module Capistrano
|
|
44
44
|
expect(order).to eq(%w(before_task task after_task))
|
45
45
|
end
|
46
46
|
|
47
|
-
it "invokes in proper order if define before than after" do
|
47
|
+
it "invokes in proper order if define before than after", capture_io: true do
|
48
48
|
task_enhancements.before("task", "before_task")
|
49
49
|
task_enhancements.after("task", "after_task")
|
50
50
|
|
@@ -53,7 +53,7 @@ module Capistrano
|
|
53
53
|
expect(order).to eq(%w(before_task task after_task))
|
54
54
|
end
|
55
55
|
|
56
|
-
it "invokes in proper order when referring to as-yet undefined tasks" do
|
56
|
+
it "invokes in proper order when referring to as-yet undefined tasks", capture_io: true do
|
57
57
|
task_enhancements.after("task", "not_loaded_task")
|
58
58
|
|
59
59
|
Rake::Task.define_task("not_loaded_task") do
|
@@ -65,7 +65,7 @@ module Capistrano
|
|
65
65
|
expect(order).to eq(%w(task not_loaded_task))
|
66
66
|
end
|
67
67
|
|
68
|
-
it "invokes in proper order and with arguments and block" do
|
68
|
+
it "invokes in proper order and with arguments and block", capture_io: true do
|
69
69
|
task_enhancements.after("task", "after_task_custom", :order) do |_t, _args|
|
70
70
|
order.push "after_task"
|
71
71
|
end
|
@@ -79,7 +79,7 @@ module Capistrano
|
|
79
79
|
expect(order).to eq(%w(before_task task after_task))
|
80
80
|
end
|
81
81
|
|
82
|
-
it "invokes using the correct namespace when defined within a namespace" do
|
82
|
+
it "invokes using the correct namespace when defined within a namespace", capture_io: true do
|
83
83
|
Rake.application.in_namespace("namespace") do
|
84
84
|
Rake::Task.define_task("task") do |t|
|
85
85
|
order.push(t.name)
|
@@ -99,7 +99,7 @@ module Capistrano
|
|
99
99
|
)
|
100
100
|
end
|
101
101
|
|
102
|
-
it "raises a sensible error if the task isn't found" do
|
102
|
+
it "raises a sensible error if the task isn't found", capture_io: true do
|
103
103
|
task_enhancements.after("task", "non_existent_task")
|
104
104
|
expect { Rake::Task["task"].invoke order }.to raise_error(ArgumentError, 'Task "non_existent_task" not found')
|
105
105
|
end
|
@@ -60,7 +60,7 @@ module Capistrano
|
|
60
60
|
end
|
61
61
|
end
|
62
62
|
|
63
|
-
it "prints helpful message to stderr" do
|
63
|
+
it "prints helpful message to stderr", capture_io: true do
|
64
64
|
expect do
|
65
65
|
expect do
|
66
66
|
task.invoke
|
@@ -72,7 +72,7 @@ module Capistrano
|
|
72
72
|
|
73
73
|
describe "#invoke" do
|
74
74
|
context "reinvoking" do
|
75
|
-
it "will not reenable invoking task" do
|
75
|
+
it "will not reenable invoking task", capture_io: true do
|
76
76
|
counter = 0
|
77
77
|
|
78
78
|
Rake::Task.define_task("A") do
|
@@ -85,7 +85,7 @@ module Capistrano
|
|
85
85
|
end.to change { counter }.by(1)
|
86
86
|
end
|
87
87
|
|
88
|
-
it "will print a message on stderr" do
|
88
|
+
it "will print a message on stderr", capture_io: true do
|
89
89
|
Rake::Task.define_task("B")
|
90
90
|
|
91
91
|
expect do
|
@@ -98,7 +98,7 @@ module Capistrano
|
|
98
98
|
|
99
99
|
describe "#invoke!" do
|
100
100
|
context "reinvoking" do
|
101
|
-
it "will reenable invoking task" do
|
101
|
+
it "will reenable invoking task", capture_io: true do
|
102
102
|
counter = 0
|
103
103
|
|
104
104
|
Rake::Task.define_task("C") do
|
@@ -111,7 +111,7 @@ module Capistrano
|
|
111
111
|
end.to change { counter }.by(2)
|
112
112
|
end
|
113
113
|
|
114
|
-
it "will not print a message on stderr" do
|
114
|
+
it "will not print a message on stderr", capture_io: true do
|
115
115
|
Rake::Task.define_task("D")
|
116
116
|
|
117
117
|
expect do
|
@@ -62,14 +62,14 @@ module Capistrano
|
|
62
62
|
dummy.expects(:set_defaults).never
|
63
63
|
end
|
64
64
|
|
65
|
-
it "calls set_defaults during load:defaults" do
|
65
|
+
it "calls set_defaults during load:defaults", capture_io: true do
|
66
66
|
dummy = DummyPlugin.new
|
67
67
|
dummy.expects(:set_defaults).once
|
68
68
|
install_plugin(dummy)
|
69
69
|
Rake::Task["load:defaults"].invoke
|
70
70
|
end
|
71
71
|
|
72
|
-
it "is able to load tasks from a .rake file" do
|
72
|
+
it "is able to load tasks from a .rake file", capture_io: true do
|
73
73
|
install_plugin(ExternalTasksPlugin)
|
74
74
|
Rake::Task["plugin_test"].invoke
|
75
75
|
expect(fetch(:plugin_result)).to eq("hello")
|
data/spec/spec_helper.rb
CHANGED
@@ -13,4 +13,17 @@ RSpec.configure do |config|
|
|
13
13
|
config.raise_errors_for_deprecations!
|
14
14
|
config.mock_framework = :mocha
|
15
15
|
config.order = "random"
|
16
|
+
|
17
|
+
config.around(:example, capture_io: true) do |example|
|
18
|
+
begin
|
19
|
+
Rake.application.options.trace_output = StringIO.new
|
20
|
+
$stdout = StringIO.new
|
21
|
+
$stderr = StringIO.new
|
22
|
+
example.run
|
23
|
+
ensure
|
24
|
+
Rake.application.options.trace_output = STDERR
|
25
|
+
$stdout = STDOUT
|
26
|
+
$stderr = STDERR
|
27
|
+
end
|
28
|
+
end
|
16
29
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.11.
|
4
|
+
version: 3.11.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tom Clements
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2019-08-29 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: airbrussh
|
@@ -268,7 +268,8 @@ files:
|
|
268
268
|
homepage: http://capistranorb.com/
|
269
269
|
licenses:
|
270
270
|
- MIT
|
271
|
-
metadata:
|
271
|
+
metadata:
|
272
|
+
changelog_uri: https://github.com/capistrano/capistrano/blob/master/CHANGELOG.md
|
272
273
|
post_install_message:
|
273
274
|
rdoc_options: []
|
274
275
|
require_paths:
|
@@ -284,8 +285,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
284
285
|
- !ruby/object:Gem::Version
|
285
286
|
version: '0'
|
286
287
|
requirements: []
|
287
|
-
|
288
|
-
rubygems_version: 2.7.7
|
288
|
+
rubygems_version: 3.0.3
|
289
289
|
signing_key:
|
290
290
|
specification_version: 4
|
291
291
|
summary: Capistrano - Welcome to easy deployment with Ruby over SSH
|