capistrano 3.11.0 → 3.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|