capistrano 3.7.0 → 3.17.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +5 -5
  2. data/.circleci/config.yml +113 -0
  3. data/.github/pull_request_template.md +0 -4
  4. data/.github/release-drafter.yml +17 -0
  5. data/.github/workflows/push.yml +12 -0
  6. data/.rubocop.yml +13 -0
  7. data/CHANGELOG.md +1 -484
  8. data/CONTRIBUTING.md +2 -0
  9. data/DEVELOPMENT.md +5 -6
  10. data/Dangerfile +1 -54
  11. data/Gemfile +39 -3
  12. data/LICENSE.txt +1 -1
  13. data/README.md +10 -4
  14. data/RELEASING.md +3 -3
  15. data/Rakefile +13 -5
  16. data/UPGRADING-3.7.md +1 -12
  17. data/capistrano.gemspec +9 -8
  18. data/features/deploy.feature +34 -1
  19. data/features/installation.feature +8 -3
  20. data/features/step_definitions/assertions.rb +31 -3
  21. data/features/step_definitions/cap_commands.rb +10 -0
  22. data/features/step_definitions/setup.rb +37 -1
  23. data/features/subdirectory.feature +9 -0
  24. data/features/support/remote_command_helpers.rb +4 -0
  25. data/features/support/vagrant_helpers.rb +15 -8
  26. data/lib/Capfile +0 -4
  27. data/lib/capistrano/application.rb +11 -3
  28. data/lib/capistrano/configuration/filter.rb +1 -1
  29. data/lib/capistrano/configuration/host_filter.rb +1 -2
  30. data/lib/capistrano/configuration/question.rb +22 -3
  31. data/lib/capistrano/configuration/role_filter.rb +1 -2
  32. data/lib/capistrano/configuration/scm_resolver.rb +8 -3
  33. data/lib/capistrano/configuration/server.rb +1 -0
  34. data/lib/capistrano/configuration/servers.rb +16 -8
  35. data/lib/capistrano/configuration/variables.rb +2 -2
  36. data/lib/capistrano/configuration.rb +7 -3
  37. data/lib/capistrano/defaults.rb +1 -1
  38. data/lib/capistrano/doctor/servers_doctor.rb +1 -1
  39. data/lib/capistrano/doctor/variables_doctor.rb +12 -3
  40. data/lib/capistrano/dsl/paths.rb +3 -16
  41. data/lib/capistrano/dsl.rb +10 -2
  42. data/lib/capistrano/i18n.rb +7 -2
  43. data/lib/capistrano/immutable_task.rb +3 -2
  44. data/lib/capistrano/scm/git.rb +34 -7
  45. data/lib/capistrano/scm/hg.rb +8 -1
  46. data/lib/capistrano/scm/svn.rb +9 -0
  47. data/lib/capistrano/scm/tasks/git.rake +10 -9
  48. data/lib/capistrano/scm/tasks/hg.rake +1 -1
  49. data/lib/capistrano/tasks/deploy.rake +22 -10
  50. data/lib/capistrano/templates/deploy.rb.erb +10 -4
  51. data/lib/capistrano/templates/stage.rb.erb +1 -1
  52. data/lib/capistrano/version.rb +1 -1
  53. data/spec/integration/dsl_spec.rb +5 -3
  54. data/spec/lib/capistrano/application_spec.rb +16 -40
  55. data/spec/lib/capistrano/configuration/filter_spec.rb +1 -1
  56. data/spec/lib/capistrano/configuration/host_filter_spec.rb +10 -5
  57. data/spec/lib/capistrano/configuration/plugin_installer_spec.rb +1 -1
  58. data/spec/lib/capistrano/configuration/question_spec.rb +47 -11
  59. data/spec/lib/capistrano/configuration/role_filter_spec.rb +2 -2
  60. data/spec/lib/capistrano/configuration/scm_resolver_spec.rb +55 -0
  61. data/spec/lib/capistrano/configuration/server_spec.rb +1 -1
  62. data/spec/lib/capistrano/configuration/servers_spec.rb +6 -5
  63. data/spec/lib/capistrano/configuration_spec.rb +2 -2
  64. data/spec/lib/capistrano/doctor/environment_doctor_spec.rb +1 -1
  65. data/spec/lib/capistrano/doctor/gems_doctor_spec.rb +1 -1
  66. data/spec/lib/capistrano/doctor/servers_doctor_spec.rb +1 -1
  67. data/spec/lib/capistrano/doctor/variables_doctor_spec.rb +9 -1
  68. data/spec/lib/capistrano/dsl/paths_spec.rb +30 -0
  69. data/spec/lib/capistrano/dsl/task_enhancements_spec.rb +6 -6
  70. data/spec/lib/capistrano/dsl_spec.rb +48 -7
  71. data/spec/lib/capistrano/immutable_task_spec.rb +1 -1
  72. data/spec/lib/capistrano/plugin_spec.rb +2 -2
  73. data/spec/lib/capistrano/scm/git_spec.rb +54 -1
  74. data/spec/lib/capistrano/scm/hg_spec.rb +6 -1
  75. data/spec/lib/capistrano/scm/svn_spec.rb +21 -0
  76. data/spec/lib/capistrano/version_validator_spec.rb +23 -0
  77. data/spec/spec_helper.rb +13 -0
  78. data/spec/support/Vagrantfile +1 -1
  79. data/spec/support/test_app.rb +28 -14
  80. metadata +20 -80
  81. data/.travis.yml +0 -26
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: ce22b5f5826e88b5fd92b3369c02344f20e2191e
4
- data.tar.gz: 491397aab719879777bec4153c3125575f86e62a
2
+ SHA256:
3
+ metadata.gz: 99671d269dca096fd99e25e1990a89ebb3241875e1f5bad7c09b6d31ee89181f
4
+ data.tar.gz: ce19a13c14d57456bdcc00077a68d908e8433e7995fe24b7eeaa96f4a32463b8
5
5
  SHA512:
6
- metadata.gz: 37864d78dd2d14478f0e9edcb316ac5e68fe5dc83b02bfd4017b1790350b26d1c929f6b94890fe351101fd05257f4bf8ce427fb8f5be0d1758e36e48fcc70fd5
7
- data.tar.gz: 6eec3f49c1e4867137d3d266d533c44bcba2bc076d1e8d003e51bcc8735a14f613ef8c49a86f69417cd40deca95b2827115885289113e490ea8bf0940639c50b
6
+ metadata.gz: 6fa979409c1e6e5e9ff293b97a4341ded24c4ab5e1a788f0b782ce6be010572851266aabb7ada7b8c955cb5a5d044fb1a28f4e97cfc2f7acfa742ccb1141cfc5
7
+ data.tar.gz: 57b9f530d593e32f64085e4b90e17ae5d23371382c91bbaa73e96268597d9d1ddf9bbd509806e955f3771d2a4cedd2a1fde300ea33ba470c0a4b46d9a5150247
@@ -0,0 +1,113 @@
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
+
36
+ jobs:
37
+ danger:
38
+ executor: ruby
39
+ steps:
40
+ - checkout
41
+ - bundle_install
42
+ - run: bundle exec danger
43
+
44
+ rubocop:
45
+ executor: ruby
46
+ steps:
47
+ - checkout
48
+ - bundle_install
49
+ - run: bundle exec rubocop
50
+
51
+ spec:
52
+ parameters:
53
+ version:
54
+ description: "Ruby version number"
55
+ default: "3.1"
56
+ type: string
57
+ executor:
58
+ name: ruby
59
+ version: << parameters.version >>
60
+ steps:
61
+ - checkout
62
+ - bundle_install:
63
+ version: << parameters.version >>
64
+ - run: bundle exec rake spec
65
+
66
+ workflows:
67
+ version: 2
68
+ commit-workflow:
69
+ jobs:
70
+ - danger
71
+ - rubocop
72
+ - spec:
73
+ matrix:
74
+ parameters:
75
+ version:
76
+ [
77
+ "2.0",
78
+ "2.1",
79
+ "2.2",
80
+ "2.3",
81
+ "2.4",
82
+ "2.5",
83
+ "2.6",
84
+ "2.7",
85
+ "3.0",
86
+ "3.1",
87
+ ]
88
+ cron-workflow:
89
+ jobs:
90
+ - rubocop
91
+ - spec:
92
+ matrix:
93
+ parameters:
94
+ version:
95
+ [
96
+ "2.0",
97
+ "2.1",
98
+ "2.2",
99
+ "2.3",
100
+ "2.4",
101
+ "2.5",
102
+ "2.6",
103
+ "2.7",
104
+ "3.0",
105
+ "3.1",
106
+ ]
107
+ triggers:
108
+ - schedule:
109
+ cron: "0 13 * * 6"
110
+ filters:
111
+ branches:
112
+ only:
113
+ - master
@@ -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!
@@ -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/.rubocop.yml CHANGED
@@ -3,12 +3,25 @@ AllCops:
3
3
  DisplayStyleGuide: true
4
4
  TargetRubyVersion: 2.0
5
5
 
6
+ Lint/AmbiguousBlockAssociation:
7
+ Enabled:
8
+ false
9
+ Metrics/BlockLength:
10
+ Exclude:
11
+ - "*.gemspec"
12
+ - "spec/**/*"
13
+ - "lib/**/*.rake"
6
14
  Style/BarePercentLiterals:
7
15
  EnforcedStyle: percent_q
8
16
  Style/ClassAndModuleChildren:
9
17
  Enabled: false
10
18
  Style/DoubleNegation:
11
19
  Enabled: false
20
+ Style/FileName:
21
+ Exclude:
22
+ - "Dangerfile"
23
+ Style/IndentHeredoc:
24
+ Enabled: false
12
25
  Style/SpaceAroundEqualsInParameterDefault:
13
26
  EnforcedStyle: no_space
14
27
  Style/StringLiterals:
data/CHANGELOG.md CHANGED
@@ -1,484 +1 @@
1
- # Capistrano 3.x Changelog
2
-
3
- Reverse Chronological Order:
4
-
5
- ## master
6
-
7
- https://github.com/capistrano/capistrano/compare/v3.7.0...HEAD
8
-
9
- * Your contribution here!
10
-
11
- ## `3.7.0` (2016-12-10)
12
-
13
- https://github.com/capistrano/capistrano/compare/v3.6.1...v3.7.0
14
-
15
- *Note: These release notes include all changes since 3.6.1, including the changes that were first published in 3.7.0.beta1.*
16
-
17
- ### Deprecations:
18
-
19
- * The `set :scm, ...` mechanism is now deprecated in favor of a new SCM plugin system. See the [UPGRADING-3.7](UPGRADING-3.7.md) document for details
20
-
21
- ### Potentially breaking changes:
22
-
23
- * The `:git_strategy`, `:hg_strategy`, and `:svn_strategy` settings have been removed with no replacement. If you have been using these to customize Capistrano's SCM behavior, you will need to rewrite your customization using the [new plugin system](http://capistranorb.com/documentation/advanced-features/custom-scm/)
24
- * `remote_file` feature has been removed and is no longer available to use @SaiVardhan
25
-
26
- ### New features:
27
-
28
- * The `tar` used by the Git SCM now honors the SSHKit command map, allowing an alternative tar binary to be used (e.g. gtar) #1787 (@caius)
29
- * Add support for custom on-filters [#1776](https://github.com/capistrano/capistrano/issues/1776)
30
-
31
- ### Fixes:
32
-
33
- * Fix test suite to work with Mocha 1.2.0 (@caius)
34
- * Fix bug where host_filter and role_filter were overly greedy [#1766](https://github.com/capistrano/capistrano/issues/1766) (@cseeger-epages)
35
- * Fix the removal of old releases `deploy:cleanup`. Logic is changed because of unreliable modification times on folders. Removal of directories is now decided by sorting on folder names (name is generated from current datetime format YmdHis). Cleanup is skipped, and a warning is given when a folder name is in a different format
36
-
37
- ## `3.7.0.beta1` (2016-11-02)
38
-
39
- https://github.com/capistrano/capistrano/compare/v3.6.1...v3.7.0.beta1
40
-
41
- ### Deprecations:
42
-
43
- * The `set :scm, ...` mechanism is now deprecated in favor of a new SCM plugin
44
- system. See the [UPGRADING-3.7](UPGRADING-3.7.md) document for details.
45
-
46
- ### Potentially breaking changes:
47
-
48
- * The `:git_strategy`, `:hg_strategy`, and `:svn_strategy` settings have been
49
- removed with no replacement. If you have been using these to customize
50
- Capistrano's SCM behavior, you will need to rewrite your customization using
51
- the [new plugin system](http://capistranorb.com/documentation/advanced-features/custom-scm/).
52
- * `remote_file` feature has been removed and is no longer available to use @SaiVardhan
53
-
54
- ### New features:
55
-
56
- * The `tar` used by the Git SCM now honors the SSHKit command map, allowing an alternative tar binary to be used (e.g. gtar) #1787 (@caius)
57
-
58
- ### Fixes:
59
-
60
- * Fix test suite to work with Mocha 1.2.0 (@caius)
61
- * Fix bug where host_filter and role_filter were overly greedy [#1766](https://github.com/capistrano/capistrano/issues/1766) (@cseeger-epages)
62
-
63
- ## `3.6.1` (2016-08-23)
64
-
65
- https://github.com/capistrano/capistrano/compare/v3.6.0...v3.6.1
66
-
67
- ### Fixes:
68
-
69
- * Restore compatibility with older versions of Rake (< 11.0.0) (@troelskn)
70
- * Fix `NoMethodError: undefined method gsub` when setting `:application` to a Proc. The original fix released in 3.6.0 worked for values specified with blocks, but not for those specified with procs or lambdas (the latter syntax is much more common). [#1681](https://github.com/capistrano/capistrano/issues/1681)
71
- * Fix a bug where deploy would fail if `:local_user` contained a space; spaces are now replaced with dashes when computing the git-ssh suffix. (@will_in_wi)
72
-
73
- ## `3.6.0` (2016-07-26)
74
-
75
- https://github.com/capistrano/capistrano/compare/v3.5.0...v3.6.0
76
-
77
- Thank you to the many first-time contributors from the Capistrano community who
78
- helped with this release!
79
-
80
- ### Deprecations:
81
-
82
- * Deprecate `remote_file` feature (will be removed in Capistrano 3.7.0) (@lebedev-yury)
83
- * Deprecate `:git_strategy`, `:hg_strategy`, and `:svn_strategy` variables.
84
- These will be completely removed in 3.7.0.
85
- * Added warning about future deprecation of reinvocation behaviour (@troelskn)
86
-
87
- Refer to the [Capistrano 3.7.0 upgrade document](UPGRADING-3.7.md) if you are
88
- affected by these deprecations.
89
-
90
- ### New features:
91
-
92
- * Added a `doctor:servers` subtask that outputs a summary of servers, roles & properties (@irvingwashington)
93
- * Make path to git wrapper script configurable (@thickpaddy)
94
- * Make name of current directory configurable via configuration variable `:current_directory` (@websi)
95
- * It is now possible to rollback to a specific release using the
96
- `ROLLBACK_RELEASE` environment variable.
97
- [#1155](https://github.com/capistrano/capistrano/issues/1155) (@lanrion)
98
-
99
- ### Fixes:
100
-
101
- * `doctor` no longer erroneously warns that `:git_strategy` and other SCM options are "unrecognized" (@shanesaww)
102
- * Fix `NoMethodError: undefined method gsub` when setting `:application` to a
103
- Proc. [#1681](https://github.com/capistrano/capistrano/issues/1681)
104
- (@mattbrictson)
105
-
106
- ### Other changes:
107
-
108
- * Raise a better error when an ‘after’ hook isn’t found (@jdelStrother)
109
- * Change git wrapper path to work better with multiple users (@thickpaddy)
110
- * Restrict the uploaded git wrapper script permissions to 700 (@irvingwashington)
111
- * Add `net-ssh` gem version to `doctor:gems` output (@lebedev-yury)
112
-
113
- ## `3.5.0`
114
-
115
- https://github.com/capistrano/capistrano/compare/v3.4.1...v3.5.0
116
-
117
- **You'll notice a big cosmetic change in this release: the default logging
118
- format has been changed to
119
- [Airbrussh](https://github.com/mattbrictson/airbrussh).** For more details on
120
- what Airbrussh does
121
- and how to configure it, visit the
122
- [Airbrussh README](https://github.com/mattbrictson/airbrussh#readme).
123
-
124
- * To opt out of the new format, simply add `set :format, :pretty` to switch to
125
- the old default of Capistrano 3.4.0 and earlier.
126
- * If you are already an Airbrussh user, note that the default configuration has
127
- changed, and the syntax for configuring Airbrussh has changed as well.
128
- [This simple upgrade guide](https://github.com/mattbrictson/airbrussh/blob/master/UPGRADING-CAP-3.5.md)
129
- will walk you through it.
130
-
131
- ### Potentially breaking changes:
132
-
133
- * Drop support for Ruby 1.9.3 (Capistrano does no longer work with 1.9.3)
134
- * Git version 1.6.3 or greater is now required
135
- * Remove 'vendor/bundle' from default :linked_dirs (@ojab)
136
- * Old versions of SSHKit (before 1.9.0) are no longer supported
137
- * SHA1 hash of current git revision written to REVISION file is no longer abbreviated
138
- * Ensure task invocation within after hooks is namespace aware, which may require
139
- you to change how your `after` hooks are declared in some cases; see
140
- [#1652](https://github.com/capistrano/capistrano/issues/1652) for an example
141
- and how to correct it (@thickpaddy)
142
- * Validation of the `:application` variable forbids special characters such as slash,
143
- this may be a breaking change in case that you rely on using a `/` in your application
144
- name to deploy from a sub directory.
145
-
146
- ### New features:
147
-
148
- * Added a `doctor` task that outputs helpful troubleshooting information. Try it like this: `cap production doctor`. (@mattbrictson)
149
- * Added a `dry_run?` helper method
150
- * `remove` DSL method for removing values like from arrays like `linked_dirs`
151
- * `append` DSL method for pushing values like `linked_dirs`
152
- [#1447](https://github.com/capistrano/capistrano/pull/1447),
153
- [#1586](https://github.com/capistrano/capistrano/pull/1586)
154
- * Added support for git shallow clone
155
- * Added new runtime option `--print-config-variables` that inspect all defined config variables in order to assist development of new capistrano tasks (@gerardo-navarro)
156
- * Prune dead tracking branches from git repositories while updating
157
- * Added options to set username and password when using Subversion as SCM (@dsthode)
158
- * Allow after() to refer to tasks that have not been loaded yet (@jcoglan)
159
- * Allow use "all" as string for server filtering (@theist)
160
- * Print a warning and abort if "load:defaults" is erroneously invoked after
161
- capistrano is already loaded, e.g. when a plugin is loaded in `deploy.rb`
162
- instead of `Capfile`. (@mattbrictson)
163
- * Added option to set specific revision when using Subversion as SCM (@marcovtwout)
164
- * Deduplicate list of linked directories
165
- * Integration with Harrow.io (See http://capistranorb.com/documentation/harrow/) when running `cap install`
166
- * Added validate method to DSL to allow validation of certain values (@Kriechi)
167
- * validate values before assignment inside of `set(:key, value)`
168
- * should raise a `Capistrano::ValidationError` if invalid
169
- * Added default validation for Capistrano-specific variables (@Kriechi)
170
-
171
- ### Fixes:
172
-
173
- * Capistrano is now fully-compatible with Rake 11.0. (@mattbrictson)
174
- * Fix filtering behaviour when using literal hostnames in on() block (@townsen)
175
- * Allow dot in :application name (@marcovtwout)
176
- * Fixed git-ssh permission error (@spight)
177
-
178
- ### Other changes:
179
-
180
- * Internal Rubocop cleanups.
181
- * Removed the post-install message (@Kriechi)
182
- * Refactor `Configuration::Filter` to use filtering strategies instead
183
- of case statements (@cshaffer)
184
- * Clean up rubocop lint warnings (@cshaffer)
185
-
186
- ## `3.4.0`
187
-
188
- https://github.com/capistrano/capistrano/compare/v3.3.5...v3.4.0
189
-
190
- * Fixed fetch revision for annotated git tags. (@igorsokolov)
191
- * Fixed updating roles when custom user or port is specified. (@ayastreb)
192
- * Disables statistics collection.
193
-
194
- * `bin/` is not suggested to be in `linked_dirs` anymore (@kirs)
195
- * bin/ is often checked out into repo
196
- * https://github.com/capistrano/bundler/issues/45#issuecomment-69349237
197
-
198
- * Bugfix:
199
- * release_roles did not honour additional property filtering (@townsen)
200
- * Refactored and simplified property filtering code (@townsen)
201
-
202
- * Breaking Changes
203
- * Hosts with the same name are now consolidated into one irrespective of the
204
- user and port. This allows multiple declarations of a server to be made safely.
205
- The last declared properties will win. See capistranorb.com Properties documentation
206
- for details.
207
- * Inside the on() block the host variable is now a copy of the host, so changes can be
208
- made within the block (such as dynamically overriding the user) that will not persist.
209
- This is very convenient for switching the SSH user temporarily to 'root' for example.
210
-
211
- * Minor changes
212
- * Add role_properties() method (see capistrano.github.io PR for doc) (@townsen)
213
- * Add equality syntax ( eg. port: 1234) for property filtering (@townsen)
214
- * Add documentation regarding property filtering (@townsen)
215
- * Clarify wording and recommendation in stage template. (@Kriechi)
216
- * Both available syntaxes provide similar functionality, do not use both for the same server+role combination.
217
- * Allow specification of repo_path using stage variable
218
- default is as before (@townsen)
219
-
220
- ## `3.3.5`
221
-
222
- https://github.com/capistrano/capistrano/compare/v3.3.4...v3.3.5
223
-
224
- * Fixed setting properties twice when creating new server. See [issue
225
- #1214](https://github.com/capistrano/capistrano/issues/1214) (@ayastreb)
226
-
227
- ## `3.3.4`
228
-
229
- https://github.com/capistrano/capistrano/compare/v3.3.3...v3.3.4
230
-
231
- * Minor changes:
232
- * Rely on a newer version of capistrano-stats with better privacy (@leehambley)
233
- * Fix cucumber spec for loading tasks from stage configs (@sponomarev)
234
- * Minor documentation fixes (@deeeki, @seuros, @andresilveira)
235
- * Spec improvements (@dimitrid, @sponomarev)
236
- * Fix to CLI flags for git-ls-remote (@dimitrid)
237
-
238
- ## `3.3.3`
239
-
240
- https://github.com/capistrano/capistrano/compare/v3.2.1...v3.3.3
241
-
242
- * Enhancement (@townsen)
243
- * Added the variable `:repo_tree` which allows the specification of a sub-tree that
244
- will be extracted from the repository. This is useful when deploying a project
245
- that lives in a subdirectory of a larger repository.
246
- Implemented only for git and hg.
247
- If not defined then the behaviour is as previously and the whole repository is
248
- extracted (subject to git-archive `.gitattributes` of course).
249
-
250
- * Enhancement (@townsen): Remove unnecessary entries from default backtrace
251
-
252
- When the `--backtrace` (or `--trace`) command line option is not supplied
253
- Rake lowers the noise level in exception backtraces by building
254
- a regular expression containing all the system library paths and
255
- using it to exclude backtrace entries that match.
256
-
257
- This does not always go far enough, particularly in RVM environments when
258
- many gem paths are added. This commit reverses that approach and _only_
259
- include backtrace entries that fall within the Capfile and list of tasks
260
- imported thereafter. This makes reading exceptions much easier on the eye.
261
-
262
- If the full unexpurgated backtrace is required then the --backtrace
263
- and --trace options supply it as before.
264
-
265
- * Disable loading stages configs on `cap -T` (@sponomarev)
266
-
267
- * Enhancements (@townsen)
268
- * Fix matching on hosts with custom ports or users set
269
- * Previously filtering would affect any generated configuration files so that
270
- files newly deployed would not be the same as those on the hosts previously
271
- deployed (and now excluded by filters). This is almost certainly not what is
272
- wanted: the filters should apply only to the on() method and thus any
273
- configuration files deployed will be identical across the set of servers
274
- making up the stage.
275
- * Host and Role filtering now affects only `on()` commands
276
- and not the `roles()`, `release_roles()` and `primary()` methods.
277
- * This applies to filters defined via the command line, the environment
278
- and the :filter variable.
279
- * Filtering now supports Regular expressions
280
- * This change _could_ cause existing scripts that use filtering and depend on
281
- the old behaviour to fail, though it is unlikely. Users who rely on
282
- filtering should check that generated configuration files are correct, and
283
- where not introduce server properties to do the filtering. For example, if a
284
- filter was used to specify an active subset of servers (by hostname), it should
285
- be removed and replaced with an 'active' property (set to true or false) on the
286
- server definitions. This keeps the stage file as the canonical model of the
287
- deployment environment.
288
-
289
- * See the documentation in the README.md file
290
-
291
- * Enhancements (@townsen)
292
- * Added set_if_empty method to DSL to allow conditional setting
293
- * Altered standard Capistrano defaults so that they are not set
294
- at the start of a stage if they have been previously set. This
295
- allows variables like :default_env to be set in deploy.rb.
296
- * Deep copy properties added using the 'roles' keyword
297
- * If a property exists on a server when another definition is
298
- encountered and is an Array, Set or Hash then add the new values
299
-
300
- This allows roles to specify properties common to all servers and
301
- then for individual servers to modify them, keeping things DRY
302
-
303
- Breaking Changes:
304
- * 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)
305
- * 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.
306
-
307
- * Bug Fixes:
308
- * Fixed compatibility with FreeBSD tar (@robbertkl)
309
- * remote_file can be used inside a namespace (@mikz)
310
-
311
- * Minor Changes
312
- * Remove -v flag from mkdir call. (@caligo-mentis)
313
- * Capistrano now allows to customize `local_user` for revision log. (@sauliusgrigaitis)
314
- * Added tests for after/before hooks features (@juanibiapina, @miry)
315
- * Added `--force` flag to `svn export` command to fix errors when the release directory already exists.
316
- * Improved the output of `cap --help`. (@mbrictson)
317
- * Cucumber suite now runs on the latest version of Vagrant (@tpett)
318
- * The `ask` method now supports the `echo: false` option. (@mbrictson, @kaikuchn)
319
- * Cucumber scenario improvements (@bruno-)
320
- * Added suggestion to Capfile to use 'capistrano-passenger' gem, replacing suggestion in config/deploy.rb to re-implement 'deploy:restart' (@betesh)
321
- * Updated svn fetch_revision method to use `svnversion`
322
- * `cap install` no longer overwrites existing files. (@dmarkow)
323
-
324
- ## `3.2.1`
325
-
326
- https://github.com/capistrano/capistrano/compare/v3.2.0...v3.2.1
327
-
328
- * Bug Fixes:
329
- * 3.2.0 introduced some behaviour to modify the way before/after hooks were called, to allow the optional
330
- preservation of arguments to be passed to tasks. This release reverts that commit in order to restore
331
- original functionality, and fix (fairly serious) bugs introduced by the refactoring.
332
-
333
- * Minor changes:
334
- * Update dsl#local_user method and add test for it. (@bruno-)
335
- * Revert short sha1 revision with git. (@blaugueux)
336
- * Changed asking question to more standard format (like common unix commandline tools) (@sponomarev)
337
- * Fixed typos in the README. (@sponomarev)
338
- * Added `keys` method to Configuration to allow introspection of configuration options. (@juanibiapina)
339
- * Improve error message when git:check fails (raise instead of silently `exit 1`) (@mbrictson)
340
-
341
- ## `3.2.0`
342
-
343
- The changelog entries here are incomplete, because many authors choose not to
344
- be credited for their work, check the tag comparison link for Github.
345
-
346
- https://github.com/capistrano/capistrano/compare/v3.1.0...v3.2.0
347
-
348
- * Minor changes:
349
- * Added `keys` method to Server properties to allow introspection of automatically added
350
- properties.
351
- * Compatibility with Rake 10.2.0 - `ensure_task` is now added to `@top_level_tasks` as a string. (@dmarkow)
352
- * Amended the git check command, "ls-remote", to use "-h", limiting the list to refs/heads
353
-
354
- ## `3.1.0`
355
-
356
- https://github.com/capistrano/capistrano/compare/v3.0.1...v3.1.0
357
-
358
- Breaking changes:
359
-
360
- * `deploy:restart` task **is no longer run by default**.
361
- 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'`)
362
- or, for passenger applications, use the capistrano-passenger gem.
363
-
364
- Please, check https://github.com/capistrano/capistrano/commit/4e6523e1f50707499cf75eb53dce37a89528a9b0 for more information. (@kirs)
365
-
366
- * Minor changes
367
- * Tasks that used `linked_dirs` and `linked_files` now run on all roles, not just app roles (@mikespokefire)
368
- * Tasks `deploy:linked_dirs`, `deploy:make_linked_dirs`, `deploy:linked_files`, `deploy:cleanup_rollback`,
369
- `deploy:log_revision` and `deploy:revert_release` now use `release_roles()` not `roles()` meaning that they
370
- will only run on servers where the `no_release` property is not falsy. (@leehambley)
371
- * Fixed bug when `deploy:cleanup` was executed twice by default (@kirs)
372
- * Config location can now be changed with `deploy_config_path` and `stage_config_path` options (@seenmyfate)
373
- * `no_release` option is now available (@seenmyfate)
374
- * Raise an error if developer tries to define `:all` role, which is reserved (@kirs)
375
- * `deploy:failed` hook was added to add some custom behaviour on failed deploy (@seenmyfate)
376
- * Correctly infer namespace in task enhancements (@seenmyfate)
377
- * Add SHA to revision log (@blackxored)
378
- * Allow configuration of multiple servers with same hostname but different ports (@rsslldnphy)
379
- * Add command line option to control role filtering (@andytinycat)
380
- * Make use of recent changes in Rake to over-ride the application name (@shime)
381
- * Readme corrections (@nathanstitt)
382
- * Allow roles to be fetched with a variable containing an array (@seenmyfate)
383
- * Improve console (@jage)
384
- * Add ability to filter tasks to specific servers (host filtering). (@andytinycat)
385
- * Add a command line option to control role filter (`--roles`) (@andytinycat)
386
- * Use an SCM object with a pluggable strategy (@coffeeaddict)
387
-
388
- Big thanks to @Kriechi for his help.
389
-
390
- ## `3.0.1`
391
-
392
- https://github.com/capistrano/capistrano/compare/v3.0.0...v3.0.1
393
-
394
- * `capify` not listed as executable (@leehambley)
395
- * Confirm license as MIT (@leehambley)
396
- * Move the git ssh helper to application path (@mpapis)
397
-
398
- ## `3.0.0`
399
-
400
- https://github.com/capistrano/capistrano/compare/2.15.5...v3.0.0
401
-
402
- If you are coming here to wonder why your Capfile doesn't work anymore, please
403
- vendor lock your Capistrano at 2.x, whichever version was working for you
404
- until today.
405
-
406
- Capistrano 3 is a ground-up rewrite with modularity, stability, speed and
407
- future proofing in mind. It's a big change, but now the code is 10x smaller,
408
- runs faster, is easier to read, and quicker to extend. In the reduction we've
409
- come up with a great gem based modular system for plugins and we're really
410
- proud of this release.
411
-
412
- The 3.0.0 release contains 38 patches from the following amazing people:
413
-
414
- * Tom `seenmyfate` Clements: more than 28 patches including cucumber integration tests! Not to
415
- mention Rails asset pipeline code, and bundler integrations.
416
- * Lee Hambley: Small changes around compatibility and log formatting
417
- * Kir Shatrov: for improvements in the core to make it easier to write extensions, for
418
- improving documentation, and for effectively building the chruby, rvm and rbenv integrations.
419
- * Michael Nikitochkin: Fixing a bug around linked files and directories.
420
- * Jack Thorne: for improvements to the default `Capfile` to fix some bad example syntax.
421
- * Erik Hetzner: for (what looks like great) work on the Mercurial (Hg) support. The Hg and Git
422
- source control mechanisms do not work the same way, but rather lean on the strengths of the
423
- underlying tools.
424
-
425
- (If I missed anyone, I'm sorry, your contributions have been awesome)
426
-
427
- The 2.x branch of code is now no longer maintained. Towards the end of it's
428
- useful life there were an increasing number of features and pieces of code
429
- which didn't make sense for certain groups of people, in certain situations,
430
- leading a to a ping-pong tennis effect with pull requests every few weeks
431
- "fixing" a use-case which had already been "fixed" shortly before. As many of
432
- the use-cases are outside the scope of the testing environments I (and by
433
- extension the trusted contributors and IRC regulars) were able to test for.
434
-
435
- There's a more extensive post about my failure to be able to keep up with the
436
- demands of maintaining v2 whilst trying to build something which is appropriate
437
- for the current landscape. If you are affected by the unsupported 2 branch,
438
- please contact me (Lee Hambley) to discuss how my company can help support you.
439
- Otherwise, please try v3, we're sure you'll like it, and the code is designed
440
- to be so simple that anyone can work on it.
441
-
442
- ## `3.0.0.pre14`
443
-
444
- * Thanks to numerous contributors, in particular (@teohm) for a series of improvements.
445
-
446
- ## `3.0.0.pre13`
447
-
448
- * Fixed typos in the Capfile. (@teohm)
449
- * Allow setting SSH options globally. (@korin)
450
- * Change the flow (and hooks) see http://www.capistranorb.com/documentation/getting-started/flow/ for more information. Requires min SSHKit 0.0.34 (@teohm)
451
- * Fix sorting releases in lexicographical order (@teohm)
452
-
453
- ## `3.0.0.pre12`
454
-
455
- * `capistrano/bundler` now runs bundle on all roles, this addresses the same
456
- issue as the related changes in `pre11`. (@leehambley)
457
-
458
- ## `3.0.0.pre11`
459
-
460
- * Some deploy.rake tasks now apply to all servers, not expecting a
461
- primary(:app) server which may not exist in all deploy environments.
462
- (@leehambley).
463
-
464
- ## `3.0.0.pre10`
465
-
466
- * Fixes pre9.
467
-
468
- ## `3.0.0.pre9`
469
-
470
- * Fixes a syntax error introduced with filtering (with tests) introduced in
471
- `pre8`. (@leehambley)
472
-
473
- ## `3.0.0.pre8`
474
-
475
- * Fixed a syntax where `roles(:foo, :bar)` was being mistaken as a filter
476
- (roles(:foo, :bar => nil). The correct syntax to use is: roles([:foo,:bar])
477
- (@leehambley)
478
-
479
- ## `3.0.0.pre7`
480
-
481
- * Fix Git https authentication. (@leehambley)
482
- * Capfile template fixes (repo/repo_url) (@teohm)
483
- * Readme Fixes (@ffmike, @kejadlen, @dwickwire)
484
- * 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