capistrano 3.11.2 → 3.14.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 95cdd3d0081c24ca53799c4581d720ab56417ddfa49450575eb1e6685111f3a8
4
- data.tar.gz: d3ad3ee309f5b28d547ca66cc288cc09db552da8a1ff661b700a7c64a1301c5d
3
+ metadata.gz: 043f8c3dd4ea32b466125930ad359a67860c01276635d874027331c7cbd833c2
4
+ data.tar.gz: abd8062f97408bb47b7238979b8d34c12e247d09f8d67b57f622bbf6774aed17
5
5
  SHA512:
6
- metadata.gz: 3bad690c28c420c53d86658b71ceb57dc5fda26f6d0caa4d02a3997bb523a5942698480db5c2d8b3134b439f5b7611a944c97a8000b73308a8d6119dd37dd2b5
7
- data.tar.gz: e7ba13f36a3d6cfd8654f6bfbac46f32d6c7df099eb544d265e55411a6dde3cc8a8489ba969b8691042fa1b083e173c8a62baf2533048ecc2e3d3f855343a1c4
6
+ metadata.gz: f1a16d9d47f4e46f359a8efefff98552b0cbaba85ac56cb78675f051aba779d34bd0e1546ea92952a553ae3619ad4c7e5f1586133f831cff07b9c794027f768b
7
+ data.tar.gz: 4ff34f37f143133e8499dc9897222828d28cfb4a160fa0462a74b7180dda29c3efe7d98147d7d2134202360ad5503d77506827fd12b6b86e63d010c7dcbe8122
@@ -13,14 +13,10 @@ to keep the conversation linked together.
13
13
  - [ ] Did you run `bundle exec rubocop -a` to fix linter issues?
14
14
  - [ ] If relevant, did you create a test?
15
15
  - [ ] Did you confirm that the RSpec tests pass?
16
- - [ ] If you are fixing a bug or introducing a new feature, did you add a CHANGELOG entry?
17
16
 
18
17
  ### Other Information
19
18
 
20
19
  If there's anything else that's important and relevant to your pull
21
20
  request, mention that information here.
22
21
 
23
- If you are updating any of the CHANGELOG files or are asked to update the
24
- CHANGELOG files by reviewers, please add the CHANGELOG entry at the top of the file where indicated.
25
-
26
22
  Thanks for helping improve Capistrano!
@@ -1,8 +1,9 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.6.3
4
- - 2.5.5
5
- - 2.4.6
3
+ - 2.7.1
4
+ - 2.6.6
5
+ - 2.5.8
6
+ - 2.4.10
6
7
  - 2.3.8
7
8
  - 2.2
8
9
  - 2.1
@@ -16,8 +17,8 @@ matrix:
16
17
  include:
17
18
  - rvm: rbx-2
18
19
  script: bundle exec rake spec
19
- # Run Danger only once, on 2.5.3
20
- - rvm: 2.5.5
20
+ # Run Danger only once, on 2.5.8
21
+ - rvm: 2.5.8
21
22
  before_script: bundle exec danger
22
23
 
23
24
  script: bundle exec rake spec rubocop
data/Gemfile CHANGED
@@ -26,11 +26,16 @@ if Gem::Requirement.new("< 2.1").satisfied_by?(Gem::Version.new(RUBY_VERSION))
26
26
  gem "public_suffix", "< 3.0.0"
27
27
  end
28
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))
29
+ # Latest versions of i18n don't support Ruby < 2.4
30
+ if Gem::Requirement.new("< 2.4").satisfied_by?(Gem::Version.new(RUBY_VERSION))
31
31
  gem "i18n", "< 1.3.0"
32
32
  end
33
33
 
34
+ # Latest versions of rake don't support Ruby < 2.2
35
+ if Gem::Requirement.new("< 2.2").satisfied_by?(Gem::Version.new(RUBY_VERSION))
36
+ gem "rake", "< 13.0.0"
37
+ end
38
+
34
39
  # We only run danger once on a new-ish ruby; no need to install it otherwise
35
40
  if Gem::Requirement.new("> 2.4").satisfied_by?(Gem::Version.new(RUBY_VERSION))
36
41
  gem "danger"
@@ -1,6 +1,6 @@
1
1
  MIT License (MIT)
2
2
 
3
- Copyright (c) 2012-2019 Tom Clements, Lee Hambley
3
+ Copyright (c) 2012-2020 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
@@ -107,7 +107,7 @@ Add Capistrano to your project's Gemfile using `require: false`:
107
107
 
108
108
  ``` ruby
109
109
  group :development do
110
- gem "capistrano", "~> 3.11", require: false
110
+ gem "capistrano", "~> 3.14", require: false
111
111
  end
112
112
  ```
113
113
 
@@ -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-2019 Tom Clements, Lee Hambley
203
+ Copyright (c) 2012-2020 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
@@ -12,6 +12,6 @@
12
12
  3. Determine which would be the correct next version number according to [semver](http://semver.org/).
13
13
  4. Update the version in `./lib/capistrano/version.rb`.
14
14
  5. Update the version in the `./README.md` Gemfile example (`gem "capistrano", "~> X.Y"`).
15
- 6. Commit the `version.rb` and `README.md` changes in a single commit, the message should be "Preparing vX.Y.Z"
15
+ 6. Commit the `version.rb` and `README.md` changes in a single commit, the message should be "Release vX.Y.Z"
16
16
  7. Run `rake release`; this will tag, push to GitHub, and publish to rubygems.org.
17
17
  8. Update the draft release on the [GitHub releases page](https://github.com/capistrano/capistrano/releases) to point to the new tag and publish the release
@@ -49,7 +49,11 @@ module Capistrano
49
49
  end
50
50
 
51
51
  def question
52
- if default.nil?
52
+ if prompt && default.nil?
53
+ I18n.t(:question_prompt, key: prompt, scope: :capistrano)
54
+ elsif prompt
55
+ I18n.t(:question_prompt_default, key: prompt, default_value: default, scope: :capistrano)
56
+ elsif default.nil?
53
57
  I18n.t(:question, key: key, scope: :capistrano)
54
58
  else
55
59
  I18n.t(:question_default, key: key, default_value: default, scope: :capistrano)
@@ -63,6 +67,10 @@ module Capistrano
63
67
  def stdin
64
68
  (options || {}).fetch(:stdin, $stdin)
65
69
  end
70
+
71
+ def prompt
72
+ (options || {}).fetch(:prompt, nil)
73
+ end
66
74
  end
67
75
  end
68
76
  end
@@ -33,7 +33,7 @@ module Capistrano
33
33
  end
34
34
 
35
35
  def t(key, options={})
36
- I18n.t(key, options.merge(scope: :capistrano))
36
+ I18n.t(key, **options.merge(scope: :capistrano))
37
37
  end
38
38
 
39
39
  def scm
@@ -12,6 +12,8 @@ en = {
12
12
  written_file: "create %{file}",
13
13
  question: "Please enter %{key}: ",
14
14
  question_default: "Please enter %{key} (%{default_value}): ",
15
+ question_prompt: "%{key}: ",
16
+ question_prompt_default: "%{key} (%{default_value}): ",
15
17
  keeping_releases: "Keeping %{keep_releases} of %{releases} deployed releases on %{host}",
16
18
  skip_cleanup: "Skipping cleanup of invalid releases on %{host}; unexpected foldername found (should be timestamp)",
17
19
  wont_delete_current_release: "Current release was marked for being removed but it's going to be skipped on %{host}",
@@ -18,6 +18,8 @@ class Capistrano::SCM::Git < Capistrano::SCM::Plugin
18
18
  git_ssh: fetch(:git_wrapper_path)
19
19
  }
20
20
  }
21
+ set_if_empty :git_max_concurrent_connections, 10
22
+ set_if_empty :git_wait_interval, 0
21
23
  end
22
24
 
23
25
  def register_hooks
@@ -4,9 +4,9 @@ git_plugin = self
4
4
  namespace :git do
5
5
  desc "Upload the git wrapper script, this script guarantees that we can script git without getting an interactive prompt"
6
6
  task :wrapper do
7
- on release_roles :all do
7
+ on release_roles(:all), in: :groups, limit: fetch(:git_max_concurrent_connections), wait: fetch(:git_wait_interval) do
8
8
  execute :mkdir, "-p", File.dirname(fetch(:git_wrapper_path)).shellescape
9
- upload! StringIO.new("#!/bin/sh -e\nexec /usr/bin/ssh -o PasswordAuthentication=no -o StrictHostKeyChecking=no \"$@\"\n"), fetch(:git_wrapper_path)
9
+ upload! StringIO.new("#!/bin/sh -e\nexec /usr/bin/env ssh -o PasswordAuthentication=no -o StrictHostKeyChecking=no \"$@\"\n"), fetch(:git_wrapper_path)
10
10
  execute :chmod, "700", fetch(:git_wrapper_path).shellescape
11
11
  end
12
12
  end
@@ -14,7 +14,7 @@ namespace :git do
14
14
  desc "Check that the repository is reachable"
15
15
  task check: :'git:wrapper' do
16
16
  fetch(:branch)
17
- on release_roles :all do
17
+ on release_roles(:all), in: :groups, limit: fetch(:git_max_concurrent_connections), wait: fetch(:git_wait_interval) do
18
18
  with fetch(:git_environmental_variables) do
19
19
  git_plugin.check_repo_is_reachable
20
20
  end
@@ -23,7 +23,7 @@ namespace :git do
23
23
 
24
24
  desc "Clone the repo to the cache"
25
25
  task clone: :'git:wrapper' do
26
- on release_roles :all do
26
+ on release_roles(:all), in: :groups, limit: fetch(:git_max_concurrent_connections), wait: fetch(:git_wait_interval) do
27
27
  if git_plugin.repo_mirror_exists?
28
28
  info t(:mirror_exists, at: repo_path)
29
29
  else
@@ -38,7 +38,7 @@ namespace :git do
38
38
 
39
39
  desc "Update the repo mirror to reflect the origin state"
40
40
  task update: :'git:clone' do
41
- on release_roles :all do
41
+ on release_roles(:all), in: :groups, limit: fetch(:git_max_concurrent_connections), wait: fetch(:git_wait_interval) do
42
42
  within repo_path do
43
43
  with fetch(:git_environmental_variables) do
44
44
  git_plugin.update_mirror
@@ -49,7 +49,7 @@ namespace :git do
49
49
 
50
50
  desc "Copy repo to releases"
51
51
  task create_release: :'git:update' do
52
- on release_roles :all do
52
+ on release_roles(:all), in: :groups, limit: fetch(:git_max_concurrent_connections), wait: fetch(:git_wait_interval) do
53
53
  with fetch(:git_environmental_variables) do
54
54
  within repo_path do
55
55
  execute :mkdir, "-p", release_path
@@ -61,7 +61,7 @@ namespace :git do
61
61
 
62
62
  desc "Determine the revision that will be deployed"
63
63
  task :set_current_revision do
64
- on release_roles :all do
64
+ on release_roles(:all), in: :groups, limit: fetch(:git_max_concurrent_connections), wait: fetch(:git_wait_interval) do
65
65
  within repo_path do
66
66
  with fetch(:git_environmental_variables) do
67
67
  set :current_revision, git_plugin.fetch_revision
@@ -42,7 +42,7 @@
42
42
  # Global options
43
43
  # --------------
44
44
  # set :ssh_options, {
45
- # keys: %w(/home/rlisowski/.ssh/id_rsa),
45
+ # keys: %w(/home/user_name/.ssh/id_rsa),
46
46
  # forward_agent: false,
47
47
  # auth_methods: %w(password)
48
48
  # }
@@ -1,3 +1,3 @@
1
1
  module Capistrano
2
- VERSION = "3.11.2".freeze
2
+ VERSION = "3.14.1".freeze
3
3
  end
@@ -6,6 +6,8 @@ module Capistrano
6
6
  let(:question) { Question.new(key, default, stdin: stdin) }
7
7
  let(:question_without_echo) { Question.new(key, default, echo: false, stdin: stdin) }
8
8
  let(:question_without_default) { Question.new(key, nil, stdin: stdin) }
9
+ let(:question_prompt) { Question.new(key, default, stdin: stdin, prompt: "Your favorite branch") }
10
+ let(:question_prompt_without_default) { Question.new(key, nil, stdin: stdin, prompt: "Your favorite branch") }
9
11
  let(:default) { :default }
10
12
  let(:key) { :branch }
11
13
  let(:stdin) { stub(tty?: true) }
@@ -43,6 +45,22 @@ module Capistrano
43
45
 
44
46
  expect(question_without_default.call).to eq(branch)
45
47
  end
48
+
49
+ it "uses prompt and returns the value" do
50
+ $stdout.expects(:print).with("Your favorite branch (default): ")
51
+ stdin.expects(:gets).returns(branch)
52
+ stdin.expects(:noecho).never
53
+
54
+ expect(question_prompt.call).to eq(branch)
55
+ end
56
+
57
+ it "uses prompt and returns the value but has no default between parenthesis" do
58
+ $stdout.expects(:print).with("Your favorite branch: ")
59
+ stdin.expects(:gets).returns(branch)
60
+ stdin.expects(:noecho).never
61
+
62
+ expect(question_prompt_without_default.call).to eq(branch)
63
+ end
46
64
  end
47
65
 
48
66
  context "value is not entered" do
@@ -36,6 +36,20 @@ module Capistrano
36
36
  subject.set_defaults
37
37
  expect(env.fetch(:git_wrapper_path)).to eq("/tmp/git-ssh-my_app-staging-(Git Web User) via ShipIt.sh")
38
38
  end
39
+
40
+ it "makes git_max_concurrent_connections" do
41
+ subject.set_defaults
42
+ expect(env.fetch(:git_max_concurrent_connections)).to eq(10)
43
+ env.set(:git_max_concurrent_connections, 7)
44
+ expect(env.fetch(:git_max_concurrent_connections)).to eq(7)
45
+ end
46
+
47
+ it "makes git_wait_interval" do
48
+ subject.set_defaults
49
+ expect(env.fetch(:git_wait_interval)).to eq(0)
50
+ env.set(:git_wait_interval, 5)
51
+ expect(env.fetch(:git_wait_interval)).to eq(5)
52
+ end
39
53
  end
40
54
 
41
55
  describe "#git" do
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.11.2
4
+ version: 3.14.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tom Clements
8
8
  - Lee Hambley
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-09-29 00:00:00.000000000 Z
12
+ date: 2020-06-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: airbrussh
@@ -262,7 +262,7 @@ metadata:
262
262
  source_code_uri: https://github.com/capistrano/capistrano
263
263
  homepage_uri: https://capistranorb.com/
264
264
  documentation_uri: https://capistranorb.com/
265
- post_install_message:
265
+ post_install_message:
266
266
  rdoc_options: []
267
267
  require_paths:
268
268
  - lib
@@ -277,8 +277,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
277
277
  - !ruby/object:Gem::Version
278
278
  version: '0'
279
279
  requirements: []
280
- rubygems_version: 3.0.6
281
- signing_key:
280
+ rubygems_version: 3.1.4
281
+ signing_key:
282
282
  specification_version: 4
283
283
  summary: Capistrano - Welcome to easy deployment with Ruby over SSH
284
284
  test_files: