capistrano 3.4.0 → 3.17.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (138) hide show
  1. checksums.yaml +5 -5
  2. data/.circleci/config.yml +129 -0
  3. data/.github/issue_template.md +19 -0
  4. data/.github/pull_request_template.md +22 -0
  5. data/.github/release-drafter.yml +17 -0
  6. data/.github/workflows/push.yml +12 -0
  7. data/.gitignore +8 -5
  8. data/.rubocop.yml +62 -0
  9. data/CHANGELOG.md +1 -307
  10. data/CONTRIBUTING.md +63 -93
  11. data/DEVELOPMENT.md +127 -0
  12. data/Dangerfile +1 -0
  13. data/Gemfile +40 -3
  14. data/LICENSE.txt +1 -1
  15. data/README.md +127 -44
  16. data/RELEASING.md +17 -0
  17. data/Rakefile +13 -2
  18. data/UPGRADING-3.7.md +86 -0
  19. data/bin/cap +1 -1
  20. data/capistrano.gemspec +21 -24
  21. data/features/deploy.feature +35 -1
  22. data/features/doctor.feature +11 -0
  23. data/features/installation.feature +8 -3
  24. data/features/stage_failure.feature +9 -0
  25. data/features/step_definitions/assertions.rb +51 -18
  26. data/features/step_definitions/cap_commands.rb +9 -0
  27. data/features/step_definitions/setup.rb +53 -9
  28. data/features/subdirectory.feature +9 -0
  29. data/features/support/env.rb +5 -5
  30. data/features/support/remote_command_helpers.rb +12 -6
  31. data/features/support/vagrant_helpers.rb +17 -11
  32. data/lib/Capfile +1 -1
  33. data/lib/capistrano/all.rb +10 -10
  34. data/lib/capistrano/application.rb +47 -34
  35. data/lib/capistrano/configuration/empty_filter.rb +9 -0
  36. data/lib/capistrano/configuration/filter.rb +17 -47
  37. data/lib/capistrano/configuration/host_filter.rb +29 -0
  38. data/lib/capistrano/configuration/null_filter.rb +9 -0
  39. data/lib/capistrano/configuration/plugin_installer.rb +51 -0
  40. data/lib/capistrano/configuration/question.rb +31 -9
  41. data/lib/capistrano/configuration/role_filter.rb +29 -0
  42. data/lib/capistrano/configuration/scm_resolver.rb +149 -0
  43. data/lib/capistrano/configuration/server.rb +29 -23
  44. data/lib/capistrano/configuration/servers.rb +21 -14
  45. data/lib/capistrano/configuration/validated_variables.rb +110 -0
  46. data/lib/capistrano/configuration/variables.rb +112 -0
  47. data/lib/capistrano/configuration.rb +91 -44
  48. data/lib/capistrano/defaults.rb +26 -4
  49. data/lib/capistrano/deploy.rb +1 -1
  50. data/lib/capistrano/doctor/environment_doctor.rb +19 -0
  51. data/lib/capistrano/doctor/gems_doctor.rb +45 -0
  52. data/lib/capistrano/doctor/output_helpers.rb +79 -0
  53. data/lib/capistrano/doctor/servers_doctor.rb +105 -0
  54. data/lib/capistrano/doctor/variables_doctor.rb +74 -0
  55. data/lib/capistrano/doctor.rb +6 -0
  56. data/lib/capistrano/dotfile.rb +1 -2
  57. data/lib/capistrano/dsl/env.rb +9 -47
  58. data/lib/capistrano/dsl/paths.rb +11 -25
  59. data/lib/capistrano/dsl/stages.rb +14 -2
  60. data/lib/capistrano/dsl/task_enhancements.rb +7 -12
  61. data/lib/capistrano/dsl.rb +47 -16
  62. data/lib/capistrano/framework.rb +1 -1
  63. data/lib/capistrano/i18n.rb +32 -24
  64. data/lib/capistrano/immutable_task.rb +30 -0
  65. data/lib/capistrano/install.rb +1 -1
  66. data/lib/capistrano/plugin.rb +95 -0
  67. data/lib/capistrano/proc_helpers.rb +13 -0
  68. data/lib/capistrano/scm/git.rb +100 -0
  69. data/lib/capistrano/scm/hg.rb +55 -0
  70. data/lib/capistrano/scm/plugin.rb +13 -0
  71. data/lib/capistrano/scm/svn.rb +56 -0
  72. data/lib/capistrano/scm/tasks/git.rake +73 -0
  73. data/lib/capistrano/scm/tasks/hg.rake +53 -0
  74. data/lib/capistrano/scm/tasks/svn.rake +53 -0
  75. data/lib/capistrano/scm.rb +7 -20
  76. data/lib/capistrano/setup.rb +20 -6
  77. data/lib/capistrano/tasks/console.rake +4 -8
  78. data/lib/capistrano/tasks/deploy.rake +105 -73
  79. data/lib/capistrano/tasks/doctor.rake +24 -0
  80. data/lib/capistrano/tasks/framework.rake +13 -14
  81. data/lib/capistrano/tasks/install.rake +14 -15
  82. data/lib/capistrano/templates/Capfile +21 -10
  83. data/lib/capistrano/templates/deploy.rb.erb +17 -26
  84. data/lib/capistrano/templates/stage.rb.erb +9 -9
  85. data/lib/capistrano/upload_task.rb +1 -1
  86. data/lib/capistrano/version.rb +1 -1
  87. data/lib/capistrano/version_validator.rb +5 -10
  88. data/spec/integration/dsl_spec.rb +289 -240
  89. data/spec/integration_spec_helper.rb +3 -5
  90. data/spec/lib/capistrano/application_spec.rb +23 -39
  91. data/spec/lib/capistrano/configuration/empty_filter_spec.rb +17 -0
  92. data/spec/lib/capistrano/configuration/filter_spec.rb +83 -85
  93. data/spec/lib/capistrano/configuration/host_filter_spec.rb +71 -0
  94. data/spec/lib/capistrano/configuration/null_filter_spec.rb +17 -0
  95. data/spec/lib/capistrano/configuration/plugin_installer_spec.rb +98 -0
  96. data/spec/lib/capistrano/configuration/question_spec.rb +58 -26
  97. data/spec/lib/capistrano/configuration/role_filter_spec.rb +80 -0
  98. data/spec/lib/capistrano/configuration/scm_resolver_spec.rb +55 -0
  99. data/spec/lib/capistrano/configuration/server_spec.rb +106 -113
  100. data/spec/lib/capistrano/configuration/servers_spec.rb +129 -145
  101. data/spec/lib/capistrano/configuration_spec.rb +224 -63
  102. data/spec/lib/capistrano/doctor/environment_doctor_spec.rb +44 -0
  103. data/spec/lib/capistrano/doctor/gems_doctor_spec.rb +67 -0
  104. data/spec/lib/capistrano/doctor/output_helpers_spec.rb +47 -0
  105. data/spec/lib/capistrano/doctor/servers_doctor_spec.rb +86 -0
  106. data/spec/lib/capistrano/doctor/variables_doctor_spec.rb +89 -0
  107. data/spec/lib/capistrano/dsl/paths_spec.rb +97 -59
  108. data/spec/lib/capistrano/dsl/task_enhancements_spec.rb +57 -37
  109. data/spec/lib/capistrano/dsl_spec.rb +84 -11
  110. data/spec/lib/capistrano/immutable_task_spec.rb +31 -0
  111. data/spec/lib/capistrano/plugin_spec.rb +84 -0
  112. data/spec/lib/capistrano/scm/git_spec.rb +184 -0
  113. data/spec/lib/capistrano/scm/hg_spec.rb +109 -0
  114. data/spec/lib/capistrano/scm/svn_spec.rb +137 -0
  115. data/spec/lib/capistrano/scm_spec.rb +7 -8
  116. data/spec/lib/capistrano/upload_task_spec.rb +7 -7
  117. data/spec/lib/capistrano/version_validator_spec.rb +61 -46
  118. data/spec/lib/capistrano_spec.rb +2 -3
  119. data/spec/spec_helper.rb +21 -8
  120. data/spec/support/Vagrantfile +9 -10
  121. data/spec/support/tasks/database.rake +3 -3
  122. data/spec/support/tasks/fail.rake +4 -3
  123. data/spec/support/tasks/failed.rake +2 -2
  124. data/spec/support/tasks/plugin.rake +6 -0
  125. data/spec/support/tasks/root.rake +4 -4
  126. data/spec/support/test_app.rb +64 -39
  127. metadata +100 -55
  128. data/.travis.yml +0 -13
  129. data/features/remote_file_task.feature +0 -14
  130. data/lib/capistrano/git.rb +0 -46
  131. data/lib/capistrano/hg.rb +0 -43
  132. data/lib/capistrano/svn.rb +0 -38
  133. data/lib/capistrano/tasks/git.rake +0 -81
  134. data/lib/capistrano/tasks/hg.rake +0 -52
  135. data/lib/capistrano/tasks/svn.rake +0 -52
  136. data/spec/lib/capistrano/git_spec.rb +0 -81
  137. data/spec/lib/capistrano/hg_spec.rb +0 -81
  138. data/spec/lib/capistrano/svn_spec.rb +0 -79
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 55a3a0f0c912740b1871ed0152eec9b013ab4274
4
- data.tar.gz: 826d603280078a95e759d5620b94308f7a3937ab
2
+ SHA256:
3
+ metadata.gz: d1c38f58d2aa91116526937329147c2a8800623bf11d3354f1d3c2582fad602d
4
+ data.tar.gz: 5595af026c2fc6deef47413bc5dd094436193a51bebb655109f6510f12ebd250
5
5
  SHA512:
6
- metadata.gz: 5ccedfa13ac44999dca4ab7f510259ef276123be707edc647b09b270bed65228b64e7c06f4fd771aab441b89c9aad1cf431156ec56d54ad582fffa7f3645a601
7
- data.tar.gz: aa2fb629595143fbcc4e64e914028d54039e6602bbc570c01b49196c1a67d2b4f127597c66f2310bd31cdd4fd81f3f0cd36e4da016fd5d2cba1685f9d9f735df
6
+ metadata.gz: 2822f52ebf86408b876aeb4fd9f8bcc791d64c987661d7ad33b71fb36f3abf0c7b1ab782e59cddca65cd7816b963266b3964030fbe9bed327c8b300501e07e34
7
+ data.tar.gz: fd6f100932f0a35404c3d332c7a6f18c3d06bf968301f71f56b38ccd9455e45abad3da40901e8ec3c41a81c3316e01b3af17f21db5b49898a65168bbc4a14db7
@@ -0,0 +1,129 @@
1
+ version: 2.1
2
+
3
+ executors:
4
+ ruby:
5
+ parameters:
6
+ version:
7
+ description: "Ruby version number"
8
+ default: "3.1"
9
+ type: string
10
+ docker:
11
+ - image: ruby:<< parameters.version >>
12
+
13
+ commands:
14
+ bundle_install:
15
+ description: Install Ruby dependencies with Bundler
16
+ parameters:
17
+ version:
18
+ description: "Ruby version number"
19
+ default: "3.1"
20
+ type: string
21
+ steps:
22
+ - restore_cache:
23
+ keys:
24
+ - bundle-v1-{{ arch }}-<< parameters.version >>
25
+ - run:
26
+ name: Install Ruby Dependencies
27
+ command: |
28
+ gem install bundler --conservative --no-document || gem install bundler -v '< 2' --no-document
29
+ bundle config --local path vendor/bundle
30
+ bundle check || (bundle install --jobs=4 --retry=3 && bundle clean)
31
+ - save_cache:
32
+ paths:
33
+ - ./vendor/bundle
34
+ key: bundle-v1-{{ arch }}-<< parameters.version >>-{{ checksum "Gemfile.lock" }}
35
+ update_ssh_client:
36
+ description: Install recent SSH client for compatibility with GitHub
37
+ steps:
38
+ - run:
39
+ name: Install OpenSSH 8.1p1 if necessary
40
+ command: |
41
+ if $(ssh -V 2>&1 | grep -q -v OpenSSH_8); then
42
+ apt-get update
43
+ apt-get install -y libssl-dev
44
+ mkdir ~/tempdownload
45
+ cd ~/tempdownload
46
+ wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.1p1.tar.gz
47
+ tar zxvf openssh-8.1p1.tar.gz
48
+ cd openssh-8.1p1 && ./configure --prefix=/usr && make ssh && make install
49
+ fi
50
+
51
+ jobs:
52
+ danger:
53
+ executor: ruby
54
+ steps:
55
+ - checkout
56
+ - bundle_install
57
+ - run: bundle exec danger
58
+
59
+ rubocop:
60
+ executor: ruby
61
+ steps:
62
+ - checkout
63
+ - bundle_install
64
+ - run: bundle exec rubocop
65
+
66
+ spec:
67
+ parameters:
68
+ version:
69
+ description: "Ruby version number"
70
+ default: "3.1"
71
+ type: string
72
+ executor:
73
+ name: ruby
74
+ version: << parameters.version >>
75
+ steps:
76
+ - update_ssh_client
77
+ - checkout
78
+ - bundle_install:
79
+ version: << parameters.version >>
80
+ - run: bundle exec rake spec
81
+
82
+ workflows:
83
+ version: 2
84
+ commit-workflow:
85
+ jobs:
86
+ - danger
87
+ - rubocop
88
+ - spec:
89
+ matrix:
90
+ parameters:
91
+ version:
92
+ [
93
+ "2.0",
94
+ "2.1",
95
+ "2.2",
96
+ "2.3",
97
+ "2.4",
98
+ "2.5",
99
+ "2.6",
100
+ "2.7",
101
+ "3.0",
102
+ "3.1",
103
+ ]
104
+ cron-workflow:
105
+ jobs:
106
+ - rubocop
107
+ - spec:
108
+ matrix:
109
+ parameters:
110
+ version:
111
+ [
112
+ "2.0",
113
+ "2.1",
114
+ "2.2",
115
+ "2.3",
116
+ "2.4",
117
+ "2.5",
118
+ "2.6",
119
+ "2.7",
120
+ "3.0",
121
+ "3.1",
122
+ ]
123
+ triggers:
124
+ - schedule:
125
+ cron: "0 13 * * 6"
126
+ filters:
127
+ branches:
128
+ only:
129
+ - master
@@ -0,0 +1,19 @@
1
+ **Important:** GitHub issues are for feature requests or bug reports. The Capistrano team recommends you use [Stack Overflow](http://stackoverflow.com/questions/tagged/capistrano) for general questions. For more details, please see our [contribution policy](https://github.com/capistrano/capistrano/blob/master/CONTRIBUTING.md).
2
+
3
+ ---
4
+
5
+ ### Steps to reproduce
6
+ If reasonable, you can help by creating a Capistrano skeleton example project which reproduces the issue you are seeing. You can then upload the individual files to a GitHub Gist or a GitHub project. Others can simply modify the configuration to point at a test server/repository of their own. Often times, an issue is resolved simply by making this test case.
7
+
8
+ An example test case is here: https://gist.github.com/will-in-wi/527327e31af30b3eae2068e2965be05b
9
+
10
+ ### Expected behavior
11
+ Tell us what should happen
12
+
13
+ ### Actual behavior
14
+ Tell us what happens instead
15
+
16
+ ### System configuration
17
+ Please link to the output of `cap <stage> doctor` in a GitHub Gist.
18
+
19
+ Thanks for helping improve Capistrano!
@@ -0,0 +1,22 @@
1
+ ### Summary
2
+
3
+ (Guidelines for creating a bug report are available
4
+ here: https://github.com/capistrano/capistrano/blob/master/DEVELOPMENT.md)
5
+
6
+ Provide a general description of the code changes in your pull
7
+ request... were there any bugs you had fixed? If so, mention them. If
8
+ these bugs have open GitHub issues, be sure to tag them here as well,
9
+ to keep the conversation linked together.
10
+
11
+ ### Short checklist
12
+
13
+ - [ ] Did you run `bundle exec rubocop -a` to fix linter issues?
14
+ - [ ] If relevant, did you create a test?
15
+ - [ ] Did you confirm that the RSpec tests pass?
16
+
17
+ ### Other Information
18
+
19
+ If there's anything else that's important and relevant to your pull
20
+ request, mention that information here.
21
+
22
+ Thanks for helping improve Capistrano!
@@ -0,0 +1,17 @@
1
+ name-template: "$NEXT_PATCH_VERSION"
2
+ tag-template: "v$NEXT_PATCH_VERSION"
3
+ categories:
4
+ - title: "⚠️ Breaking Changes"
5
+ label: "⚠️ Breaking"
6
+ - title: "✨ New Features"
7
+ label: "✨ Feature"
8
+ - title: "🐛 Bug Fixes"
9
+ label: "🐛 Bug Fix"
10
+ - title: "📚 Documentation"
11
+ label: "📚 Docs"
12
+ - title: "🏠 Housekeeping"
13
+ label: "🏠 Housekeeping"
14
+ change-template: "- $TITLE (#$NUMBER) @$AUTHOR"
15
+ no-changes-template: "- No changes"
16
+ template: |
17
+ $CHANGES
@@ -0,0 +1,12 @@
1
+ on: push
2
+ name: Push
3
+ jobs:
4
+ draftRelease:
5
+ name: Draft Release
6
+ runs-on: ubuntu-latest
7
+ steps:
8
+ - uses: actions/checkout@master
9
+ - name: Draft Release
10
+ uses: toolmantim/release-drafter@v5.2.0
11
+ env:
12
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
data/.gitignore CHANGED
@@ -1,10 +1,15 @@
1
1
  *.gem
2
2
  *.rbc
3
+ *.swp
3
4
  .bundle
4
5
  .config
6
+ .rspec
7
+ .rspec-local
8
+ .ruby-version
5
9
  .yardoc
6
10
  Gemfile.lock
7
11
  InstalledFiles
12
+ _site
8
13
  _yardoc
9
14
  coverage
10
15
  doc/
@@ -12,11 +17,9 @@ lib/bundler/man
12
17
  pkg
13
18
  rdoc
14
19
  spec/reports
20
+ tags
15
21
  test/tmp
16
22
  test/version_tmp
17
23
  tmp
18
- .rspec-local
19
- .ruby-version
20
- _site
21
- .rspec
22
- *.swp
24
+ /docs/_site/
25
+ vendor/
data/.rubocop.yml ADDED
@@ -0,0 +1,62 @@
1
+ AllCops:
2
+ DisplayCopNames: true
3
+ DisplayStyleGuide: true
4
+ TargetRubyVersion: 2.0
5
+
6
+ Lint/AmbiguousBlockAssociation:
7
+ Enabled:
8
+ false
9
+ Metrics/BlockLength:
10
+ Exclude:
11
+ - "*.gemspec"
12
+ - "spec/**/*"
13
+ - "lib/**/*.rake"
14
+ Style/BarePercentLiterals:
15
+ EnforcedStyle: percent_q
16
+ Style/ClassAndModuleChildren:
17
+ Enabled: false
18
+ Style/DoubleNegation:
19
+ Enabled: false
20
+ Style/FileName:
21
+ Exclude:
22
+ - "Dangerfile"
23
+ Style/IndentHeredoc:
24
+ Enabled: false
25
+ Style/SpaceAroundEqualsInParameterDefault:
26
+ EnforcedStyle: no_space
27
+ Style/StringLiterals:
28
+ EnforcedStyle: double_quotes
29
+ Style/TrivialAccessors:
30
+ AllowPredicates: true
31
+ Style/PercentLiteralDelimiters:
32
+ Enabled: false
33
+ Style/SingleLineBlockParams:
34
+ Enabled: false
35
+ Style/ModuleFunction:
36
+ Enabled: false
37
+
38
+ # Enable someday
39
+ Style/Documentation:
40
+ Enabled: false
41
+
42
+ # Needs refactors
43
+ Metrics/PerceivedComplexity:
44
+ Enabled: false
45
+ Metrics/CyclomaticComplexity:
46
+ Enabled: false
47
+ Metrics/MethodLength:
48
+ Enabled: false
49
+ Style/PredicateName:
50
+ Enabled: false
51
+ Metrics/LineLength:
52
+ Enabled: false
53
+ Metrics/AbcSize:
54
+ Enabled: false
55
+ Style/PerlBackrefs:
56
+ Enabled: false
57
+ Metrics/ClassLength:
58
+ Enabled: false
59
+ Metrics/ModuleLength:
60
+ Enabled: false
61
+ Style/AccessorMethodName:
62
+ Enabled: false
data/CHANGELOG.md CHANGED
@@ -1,307 +1 @@
1
- # Capistrano 3.x Changelog
2
-
3
- Reverse Chronological Order:
4
-
5
- ## master
6
-
7
- https://github.com/capistrano/capistrano/compare/v3.4.0...HEAD
8
-
9
- ## `3.4.0`
10
-
11
- https://github.com/capistrano/capistrano/compare/v3.3.5...v3.4.0
12
-
13
- * Fixed fetch revision for annotated git tags. (@igorsokolov)
14
- * Fixed updating roles when custom user or port is specified. (@ayastreb)
15
- * Disables statistics collection.
16
-
17
- * `bin/` is not suggested to be in `linked_dirs` anymore (@kirs)
18
- * bin/ is often checked out into repo
19
- * https://github.com/capistrano/bundler/issues/45#issuecomment-69349237
20
-
21
- * Bugfix:
22
- * release_roles did not honour additional property filtering (@townsen)
23
- * Refactored and simplified property filtering code (@townsen)
24
-
25
- * Breaking Changes
26
- * Hosts with the same name are now consolidated into one irrespective of the
27
- user and port. This allows multiple declarations of a server to be made safely.
28
- The last declared properties will win. See capistrnorb.com Properties documentation
29
- for details.
30
- * Inside the on() block the host variable is now a copy of the host, so changes can be
31
- made within the block (such as dynamically overriding the user) that will not persist.
32
- This is very convenient for switching the SSH user temporarily to 'root' for example.
33
-
34
- * Minor changes
35
- * Add role_properties() method (see capistrano.github.io PR for doc) (@townsen)
36
- * Add equality syntax ( eg. port: 1234) for property filtering (@townsen)
37
- * Add documentation regarding property filtering (@townsen)
38
- * Clarify wording and recommendation in stage template. (@Kriechi)
39
- * Both available syntaxes provide similar functionality, do not use both for the same server+role combination.
40
- * Allow specification of repo_path using stage variable
41
- default is as before (@townsen)
42
-
43
- ## `3.3.5`
44
-
45
- https://github.com/capistrano/capistrano/compare/v3.3.4...v3.3.5
46
-
47
- * Fixed setting properties twice when creating new server. See [issue
48
- #1214](https://github.com/capistrano/capistrano/issues/1214) (@ayastreb)
49
-
50
- ## `3.3.4`
51
-
52
- https://github.com/capistrano/capistrano/compare/v3.3.3...v3.3.4
53
-
54
- * Minor changes:
55
- * Rely on a newer version of capistrano-stats with better privacy (@leehambley)
56
- * Fix cucumber spec for loading tasks from stage configs (@sponomarev)
57
- * Minor documentation fixes (@deeeki, @seuros, @andresilveira)
58
- * Spec improvements (@dimitrid, @sponomarev)
59
- * Fix to CLI flags for git-ls-remote (@dimitrid)
60
-
61
- ## `3.3.3`
62
-
63
- https://github.com/capistrano/capistrano/compare/v3.2.1...v3.3.3
64
-
65
- * Enhancement (@townsen)
66
- * Added the variable `:repo_tree` which allows the specification of a sub-tree that
67
- will be extracted from the repository. This is useful when deploying a project
68
- that lives in a subdirectory of a larger repository.
69
- Implemented only for git and hg.
70
- If not defined then the behaviour is as previously and the whole repository is
71
- extracted (subject to git-archive `.gitattributes` of course).
72
-
73
- * Enhancement (@townsen): Remove unnecessary entries from default backtrace
74
-
75
- When the `--backtrace` (or `--trace`) command line option is not supplied
76
- Rake lowers the noise level in exception backtraces by building
77
- a regular expression containing all the system library paths and
78
- using it to exclude backtrace entries that match.
79
-
80
- This does not always go far enough, particularly in RVM environments when
81
- many gem paths are added. This commit reverses that approach and _only_
82
- include backtrace entries that fall within the Capfile and list of tasks
83
- imported thereafter. This makes reading exceptions much easier on the eye.
84
-
85
- If the full unexpurgated backtrace is required then the --backtrace
86
- and --trace options supply it as before.
87
-
88
- * Disable loading stages configs on `cap -T` (@sponomarev)
89
-
90
- * Enhancements (@townsen)
91
- * Fix matching on hosts with custom ports or users set
92
- * Previously filtering would affect any generated configuration files so that
93
- files newly deployed would not be the same as those on the hosts previously
94
- deployed (and now excluded by filters). This is almost certainly not what is
95
- wanted: the filters should apply only to the on() method and thus any
96
- configuration files deployed will be identical across the set of servers
97
- making up the stage.
98
- * Host and Role filtering now affects only `on()` commands
99
- and not the `roles()`, `release_roles()` and `primary()` methods.
100
- * This applies to filters defined via the command line, the environment
101
- and the :filter variable.
102
- * Filtering now supports Regular expressions
103
- * This change _could_ cause existing scripts that use filtering and depend on
104
- the old behaviour to fail, though it is unlikely. Users who rely on
105
- filtering should check that generated configuration files are correct, and
106
- where not introduce server properties to do the filtering. For example, if a
107
- filter was used to specify an active subset of servers (by hostname), it should
108
- be removed and replaced with an 'active' property (set to true or false) on the
109
- server definitions. This keeps the stage file as the canonical model of the
110
- deployment environment.
111
-
112
- * See the documentation in the README.md file
113
-
114
- * Enhancements (@townsen)
115
- * Added set_if_empty method to DSL to allow conditional setting
116
- * Altered standard Capistrano defaults so that they are not set
117
- at the start of a stage if they have been previously set. This
118
- allows variables like :default_env to be set in deploy.rb.
119
- * Deep copy properties added using the 'roles' keyword
120
- * If a property exists on a server when another definition is
121
- encountered and is an Array, Set or Hash then add the new values
122
-
123
- This allows roles to specify properties common to all servers and
124
- then for individual servers to modify them, keeping things DRY
125
-
126
- Breaking Changes:
127
- * By using Ruby's noecho method introduced in Ruby version 1.9.3, we dropped support for Ruby versions prior to 1.9.3. See [issue #878](https://github.com/capistrano/capistrano/issues/878) and [PR #1112](https://github.com/capistrano/capistrano/pull/1112) for more information. (@kaikuchn)
128
- * Track (anonymous) statistics, see https://github.com/capistrano/stats. This breaks automated deployment on continuous integration servers until the `.capistrano/metrics` file is created (with content `full` to simulate a "yes") via the interactive prompt or manually.
129
-
130
- * Bug Fixes:
131
- * Fixed compatibility with FreeBSD tar (@robbertkl)
132
- * remote_file can be used inside a namespace (@mikz)
133
-
134
- * Minor Changes
135
- * Remove -v flag from mkdir call. (@caligo-mentis)
136
- * Capistrano now allows to customize `local_user` for revision log. (@sauliusgrigaitis)
137
- * Added tests for after/before hooks features (@juanibiapina, @miry)
138
- * Added `--force` flag to `svn export` command to fix errors when the release directory already exists.
139
- * Improved the output of `cap --help`. (@mbrictson)
140
- * Cucumber suite now runs on the latest version of Vagrant (@tpett)
141
- * The `ask` method now supports the `echo: false` option. (@mbrictson, @kaikuchn)
142
- * Cucumber scenario improvements (@bruno-)
143
- * Added suggestion to Capfile to use 'capistrano-passenger' gem, replacing suggestion in config/deploy.rb to re-implement 'deploy:restart' (@betesh)
144
- * Updated svn fetch_revision method to use `svnversion`
145
- * `cap install` no longer overwrites existing files. (@dmarkow)
146
-
147
- ## `3.2.1`
148
-
149
- https://github.com/capistrano/capistrano/compare/v3.2.0...v3.2.1
150
-
151
- * Bug Fixes:
152
- * 3.2.0 introduced some behaviour to modify the way before/after hooks were called, to allow the optional
153
- preservation of arguments to be passed to tasks. This release reverts that commit in order to restore
154
- original functionality, and fix (fairly serious) bugs introduced by the refactoring.
155
-
156
- * Minor changes:
157
- * Update dsl#local_user method and add test for it. (@bruno-)
158
- * Revert short sha1 revision with git. (@blaugueux)
159
- * Changed asking question to more standard format (like common unix commandline tools) (@sponomarev)
160
- * Fixed typos in the README. (@sponomarev)
161
- * Added `keys` method to Configuration to allow introspection of configuration options. (@juanibiapina)
162
- * Improve error message when git:check fails (raise instead of silently `exit 1`) (@mbrictson)
163
-
164
- ## `3.2.0`
165
-
166
- The changelog entries here are incomplete, because many authors choose not to
167
- be credited for their work, check the tag comparison link for Github.
168
-
169
- https://github.com/capistrano/capistrano/compare/v3.1.0...v3.2.0
170
-
171
- * Minor changes:
172
- * Added `keys` method to Server properties to allow introspection of automatically added
173
- properties.
174
- * Compatibility with Rake 10.2.0 - `ensure_task` is now added to `@top_level_tasks` as a string. (@dmarkow)
175
- * Amended the git check command, "ls-remote", to use "-h", limiting the list to refs/heads
176
-
177
- ## `3.1.0`
178
-
179
- https://github.com/capistrano/capistrano/compare/v3.0.1...v3.1.0
180
-
181
- Breaking changes:
182
-
183
- * `deploy:restart` task **is no longer run by default**.
184
- From this version, developers who restart the app on each deploy need to declare it in their deploy flow (eg `after 'deploy:publishing', 'deploy:restart'`)
185
- or, for passenger applications, use the capistrano-passenger gem.
186
-
187
- Please, check https://github.com/capistrano/capistrano/commit/4e6523e1f50707499cf75eb53dce37a89528a9b0 for more information. (@kirs)
188
-
189
- * Minor changes
190
- * Tasks that used `linked_dirs` and `linked_files` now run on all roles, not just app roles (@mikespokefire)
191
- * Tasks `deploy:linked_dirs`, `deploy:make_linked_dirs`, `deploy:linked_files`, `deploy:cleanup_rollback`,
192
- `deploy:log_revision` and `deploy:revert_release` now use `release_roles()` not `roles()` meaning that they
193
- will only run on servers where the `no_release` property is not falsy. (@leehambley)
194
- * Fixed bug when `deploy:cleanup` was executed twice by default (@kirs)
195
- * Config location can now be changed with `deploy_config_path` and `stage_config_path` options (@seenmyfate)
196
- * `no_release` option is now available (@seenmyfate)
197
- * Raise an error if developer tries to define `:all` role, which is reserved (@kirs)
198
- * `deploy:failed` hook was added to add some custom behaviour on failed deploy (@seenmyfate)
199
- * Correctly infer namespace in task enhancements (@seenmyfate)
200
- * Add SHA to revision log (@blackxored)
201
- * Allow configuration of multiple servers with same hostname but different ports (@rsslldnphy)
202
- * Add command line option to control role filtering (@andytinycat)
203
- * Make use of recent changes in Rake to over-ride the application name (@shime)
204
- * Readme corrections (@nathanstitt)
205
- * Allow roles to be fetched with a variable containing an array (@seenmyfate)
206
- * Improve console (@jage)
207
- * Add ability to filter tasks to specific servers (host filtering). (@andytinycat)
208
- * Add a command line option to control role filter (`--roles`) (@andytinycat)
209
- * Use an SCM object with a pluggable strategy (@coffeeaddict)
210
-
211
- Big thanks to @Kriechi for his help.
212
-
213
- ## `3.0.1`
214
-
215
- https://github.com/capistrano/capistrano/compare/v3.0.0...v3.0.1
216
-
217
- * `capify` not listed as executable (@leehambley)
218
- * Confirm license as MIT (@leehambley)
219
- * Move the git ssh helper to application path (@mpapis)
220
-
221
- ## `3.0.0`
222
-
223
- https://github.com/capistrano/capistrano/compare/2.15.5...v3.0.0
224
-
225
- If you are coming here to wonder why your Capfile doesn't work anymore, please
226
- vendor lock your Capistrano at 2.x, whichever version was working for you
227
- until today.
228
-
229
- Capistrano 3 is a ground-up rewrite with modularity, stability, speed and
230
- future proofing in mind. It's a big change, but now the code is 10x smaller,
231
- runs faster, is easier to read, and quicker to extend. In the reduction we've
232
- come up with a great gem based modular system for plugins and we're really
233
- proud of this release.
234
-
235
- The 3.0.0 release contains 38 patches from the following amazing people:
236
-
237
- * Tom `seenmyfate` Clements: more than 28 patches including cucumber integration tests! Not to
238
- mention Rails asset pipeline code, and bundler integrations.
239
- * Lee Hambley: Small changes around compatibility and log formatting
240
- * Kir Shatrov: for improvements in the core to make it easier to write extensions, for
241
- improving documentation, and for effectively building the chruby, rvm and rbenv integrations.
242
- * Michael Nikitochkin: Fixing a bug around linked files and directories.
243
- * Jack Thorne: for improvements to the default `Capfile` to fix some bad example syntax.
244
- * Erik Hetzner: for (what looks like great) work on the Mercurial (Hg) support. The Hg and Git
245
- source control mechanisms do not work the same way, but rather lean on the strengths of the
246
- underlying tools.
247
-
248
- (If I missed anyone, I'm sorry, your contributions have been awesome)
249
-
250
- The 2.x branch of code is now no longer maintained. Towards the end of it's
251
- useful life there were an increasing number of features and pieces of code
252
- which didn't make sense for certain groups of people, in certain situations,
253
- leading a to a ping-pong tennis effect with pull requests every few weeks
254
- "fixing" a use-case which had already been "fixed" shortly before. As many of
255
- the use-cases are outside the scope of the testing environments I (and by
256
- extension the trusted contributors and IRC regulars) were able to test for.
257
-
258
- There's a more extensive post about my failure to be able to keep up with the
259
- demands of maintaining v2 whilst trying to build something which is appropriate
260
- for the current landscape. If you are affected by the unsupported 2 branch,
261
- please contact me (Lee Hambley) to discuss how my company can help support you.
262
- Otherwise, please try v3, we're sure you'll like it, and the code is designed
263
- to be so simple that anyone can work on it.
264
-
265
- ## `3.0.0.pre14`
266
-
267
- * Thanks to numerous contributors, in particular (@teohm) for a series of improvements.
268
-
269
- ## `3.0.0.pre13`
270
-
271
- * Fixed typos in the Capfile. (@teohm)
272
- * Allow setting SSH options globally. (@korin)
273
- * Change the flow (and hooks) see http://www.capistranorb.com/documentation/getting-started/flow/ for more information. Requires min SSHKit 0.0.34 (@teohm)
274
- * Fix sorting releases in lexicographical order (@teohm)
275
-
276
- ## `3.0.0.pre12`
277
-
278
- * `capistrano/bundler` now runs bundle on all roles, this addresses the same
279
- issue as the related changes in `pre11`. (@leehambley)
280
-
281
- ## `3.0.0.pre11`
282
-
283
- * Some deploy.rake tasks now apply to all servers, not expecting a
284
- primary(:app) server which may not exist in all deploy environments.
285
- (@leehambley).
286
-
287
- ## `3.0.0.pre10`
288
-
289
- * Fixes pre9.
290
-
291
- ## `3.0.0.pre9`
292
-
293
- * Fixes a syntax error introduced with filtering (with tests) introduced in
294
- `pre8`. (@leehambley)
295
-
296
- ## `3.0.0.pre8`
297
-
298
- * Fixed a syntax where `roles(:foo, :bar)` was being mistaken as a filter
299
- (roles(:foo, :bar => nil). The correct syntax to use is: roles([:foo,:bar])
300
- (@leehambley)
301
-
302
- ## `3.0.0.pre7`
303
-
304
- * Fix Git https authentication. (@leehambley)
305
- * Capfile template fixes (repo/repo_url) (@teohm)
306
- * Readme Fixes (@ffmike, @kejadlen, @dwickwire)
307
- * Fix the positioning of the bundler hook, now immediately after finalize. (@teohm)
1
+ Release notes for this project are kept here: https://github.com/capistrano/capistrano/releases