Changelog History
Page 3
-
v3.6.1 Changes
August 23, 2016π Fixes:
- βͺ Restore compatibility with older versions of Rake (< 11.0.0) (@troelskn)
- π Fix
NoMethodError: undefined method gsubwhen setting:applicationto 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 - π Fix a bug where deploy would fail if
:local_usercontained a space; spaces are now replaced with dashes when computing the git-ssh suffix. (@will_in_wi)
-
v3.6.0 Changes
July 26, 2016Thank you to the many first-time contributors from the Capistrano community who π helped with this release!
π Deprecations:
- Deprecate
remote_filefeature (will be removed in Capistrano 3.7.0) (@lebedev-yury) - Deprecate
:git_strategy,:hg_strategy, and:svn_strategyvariables. These will be completely removed in 3.7.0. - Added warning about future deprecation of reinvocation behaviour (@troelskn)
β¬οΈ Refer to the [Capistrano 3.7.0 upgrade document](UPGRADING-3.7.md) if you are π affected by these deprecations.
π New features:
- Added a
doctor:serverssubtask that outputs a summary of servers, roles & properties (@irvingwashington) - Make path to git wrapper script configurable (@thickpaddy)
- Make name of current directory configurable via configuration variable
:current_directory(@websi) - It is now possible to rollback to a specific release using the
ROLLBACK_RELEASEenvironment variable. #1155 (@lanrion)
π Fixes:
doctorno longer erroneously warns that:git_strategyand other SCM options are "unrecognized" (@shanesaww)- Fix
NoMethodError: undefined method gsubwhen setting:applicationto a Proc. #1681 (@mattbrictson)
Other changes:
- Raise a better error when an βafterβ hook isnβt found (@jdelStrother)
- Change git wrapper path to work better with multiple users (@thickpaddy)
- Restrict the uploaded git wrapper script permissions to 700 (@irvingwashington)
- Add
net-sshgem version todoctor:gemsoutput (@lebedev-yury)
- Deprecate
-
v3.5.0 Changes
π You'll notice a big cosmetic change in this release: the default logging format has been changed to Airbrussh. For more details on what Airbrussh does π§ and how to configure it, visit the Airbrussh README.
- To opt out of the new format, simply add
set :format, :prettyto switch to the old default of Capistrano 3.4.0 and earlier. - π§ If you are already an Airbrussh user, note that the default configuration has changed, and the syntax for configuring Airbrussh has changed as well. This simple upgrade guide will walk you through it.
Potentially breaking changes:
- β¬οΈ Drop support for Ruby 1.9.3 (Capistrano does no longer work with 1.9.3)
- Git version 1.6.3 or greater is now required
- β Remove 'vendor/bundle' from default :linked_dirs (@ojab)
- π Old versions of SSHKit (before 1.9.0) are no longer supported
- SHA1 hash of current git revision written to REVISION file is no longer abbreviated
- Ensure task invocation within after hooks is namespace aware, which may require
you to change how your
afterhooks are declared in some cases; see #1652 for an example and how to correct it (@thickpaddy) - Validation of the
:applicationvariable forbids special characters such as slash, this may be a breaking change in case that you rely on using a/in your application name to deploy from a sub directory.
π New features:
- β Added a
doctortask that outputs helpful troubleshooting information. Try it like this:cap production doctor. (@mattbrictson) - β Added a
dry_run?helper method - π
removeDSL method for removing values like from arrays likelinked_dirs appendDSL method for pushing values likelinked_dirs#1447, #1586- β Added support for git shallow clone
- β Added new runtime option
--print-config-variablesthat inspect all defined config variables in order to assist development of new capistrano tasks (@gerardo-navarro) - β‘οΈ Prune dead tracking branches from git repositories while updating
- β Added options to set username and password when using Subversion as SCM (@dsthode)
- π Allow after() to refer to tasks that have not been loaded yet (@jcoglan)
- π Allow use "all" as string for server filtering (@theist)
- β Print a warning and abort if "load:defaults" is erroneously invoked after
capistrano is already loaded, e.g. when a plugin is loaded in
deploy.rbinstead ofCapfile. (@mattbrictson) - β Added option to set specific revision when using Subversion as SCM (@marcovtwout)
- Deduplicate list of linked directories
- π Integration with Harrow.io (See http://capistranorb.com/documentation/harrow/) when running
cap install - β Added validate method to DSL to allow validation of certain values (@Kriechi)
- validate values before assignment inside of
set(:key, value) - should raise a
Capistrano::ValidationErrorif invalid
- validate values before assignment inside of
- β Added default validation for Capistrano-specific variables (@Kriechi)
π Fixes:
- Capistrano is now fully-compatible with Rake 11.0. (@mattbrictson)
- π Fix filtering behaviour when using literal hostnames in on() block (@townsen)
- π Allow dot in :application name (@marcovtwout)
- π Fixed git-ssh permission error (@spight)
Other changes:
- Internal Rubocop cleanups.
- β Removed the post-install message (@Kriechi)
- π¨ Refactor
Configuration::Filterto use filtering strategies instead of case statements (@cshaffer) - π Clean up rubocop lint warnings (@cshaffer)
- To opt out of the new format, simply add
-
v3.4.0 Changes
- π Fixed fetch revision for annotated git tags. (@igorsokolov)
- π Fixed updating roles when custom user or port is specified. (@ayastreb)
Disables statistics collection.
bin/is not suggested to be inlinked_dirsanymore (@kirs)- bin/ is often checked out into repo
- https://github.com/capistrano/bundler/issues/45#issuecomment-69349237
π Bugfix:
- release_roles did not honour additional property filtering (@townsen)
- Refactored and simplified property filtering code (@townsen)
π₯ Breaking Changes
- Hosts with the same name are now consolidated into one irrespective of the user and port. This allows multiple declarations of a server to be made safely. The last declared properties will win. See capistranorb.com Properties documentation for details.
- Inside the on() block the host variable is now a copy of the host, so changes can be made within the block (such as dynamically overriding the user) that will not persist. This is very convenient for switching the SSH user temporarily to 'root' for example.
Minor changes
- Add role_properties() method (see capistrano.github.io PR for doc) (@townsen)
- Add equality syntax ( eg. port: 1234) for property filtering (@townsen)
- Add documentation regarding property filtering (@townsen)
- Clarify wording and recommendation in stage template. (@Kriechi)
- Both available syntaxes provide similar functionality, do not use both for the same server+role combination.
- Allow specification of repo_path using stage variable default is as before (@townsen)
-
v3.3.5 Changes
- π Fixed setting properties twice when creating new server. See issue #1214 (@ayastreb)
-
v3.3.4 Changes
- Minor changes:
- Rely on a newer version of capistrano-stats with better privacy (@leehambley)
- Fix cucumber spec for loading tasks from stage configs (@sponomarev)
- Minor documentation fixes (@deeeki, @seuros, @andresilveira)
- Spec improvements (@dimitrid, @sponomarev)
- Fix to CLI flags for git-ls-remote (@dimitrid)
- Minor changes:
-
v3.3.3 Changes
β¨ Enhancement (@townsen)
- Added the variable
:repo_treewhich allows the specification of a sub-tree that will be extracted from the repository. This is useful when deploying a project that lives in a subdirectory of a larger repository. Implemented only for git and hg. If not defined then the behaviour is as previously and the whole repository is extracted (subject to git-archive.gitattributesof course).
- Added the variable
β¨ Enhancement (@townsen): Remove unnecessary entries from default backtrace
When the
--backtrace(or--trace) command line option is not supplied Rake lowers the noise level in exception backtraces by building a regular expression containing all the system library paths and using it to exclude backtrace entries that match.This does not always go far enough, particularly in RVM environments when many gem paths are added. This commit reverses that approach and only include backtrace entries that fall within the Capfile and list of tasks imported thereafter. This makes reading exceptions much easier on the eye.
If the full unexpurgated backtrace is required then the --backtrace and --trace options supply it as before.
Disable loading stages configs on
cap -T(@sponomarev)β¨ Enhancements (@townsen)
- Fix matching on hosts with custom ports or users set
- Previously filtering would affect any generated configuration files so that files newly deployed would not be the same as those on the hosts previously deployed (and now excluded by filters). This is almost certainly not what is wanted: the filters should apply only to the on() method and thus any configuration files deployed will be identical across the set of servers making up the stage.
- Host and Role filtering now affects only
on()commands and not theroles(),release_roles()andprimary()methods. - This applies to filters defined via the command line, the environment and the :filter variable.
- Filtering now supports Regular expressions
- This change could cause existing scripts that use filtering and depend on the old behaviour to fail, though it is unlikely. Users who rely on filtering should check that generated configuration files are correct, and where not introduce server properties to do the filtering. For example, if a filter was used to specify an active subset of servers (by hostname), it should be removed and replaced with an 'active' property (set to true or false) on the server definitions. This keeps the stage file as the canonical model of the deployment environment.
- See the documentation in the README.md file
β¨ Enhancements (@townsen)
- Added set_if_empty method to DSL to allow conditional setting
- Altered standard Capistrano defaults so that they are not set at the start of a stage if they have been previously set. This allows variables like :default_env to be set in deploy.rb.
- Deep copy properties added using the 'roles' keyword
- If a property exists on a server when another definition is encountered and is an Array, Set or Hash then add the new values
This allows roles to specify properties common to all servers and then for individual servers to modify them, keeping things DRY
π₯ Breaking Changes:
- 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 and PR #1112 for more information. (@kaikuchn)
Track (anonymous) statistics, see https://github.com/capistrano/stats. This breaks automated deployment on continuous integration servers until the
.capistrano/metricsfile is created (with contentfullto simulate a "yes") via the interactive prompt or manually.- π Bug Fixes:
Fixed compatibility with FreeBSD tar (@robbertkl)
remote_file can be used inside a namespace (@mikz)
- Minor Changes
Remove -v flag from mkdir call. (@caligo-mentis)
Capistrano now allows to customize
local_userfor revision log. (@sauliusgrigaitis)Added tests for after/before hooks features (@juanibiapina, @miry)
Added
--forceflag tosvn exportcommand to fix errors when the release directory already exists.Improved the output of
cap --help. (@mbrictson)Cucumber suite now runs on the latest version of Vagrant (@tpett)
The
askmethod now supports theecho: falseoption. (@mbrictson, @kaikuchn)Cucumber scenario improvements (@bruno-)
Added suggestion to Capfile to use 'capistrano-passenger' gem, replacing suggestion in config/deploy.rb to re-implement 'deploy:restart' (@betesh)
Updated svn fetch_revision method to use
svnversioncap installno longer overwrites existing files. (@dmarkow)
-
v3.2.1 Changes
π Bug Fixes:
- 3.2.0 introduced some behaviour to modify the way before/after hooks were called, to allow the optional preservation of arguments to be passed to tasks. This release reverts that commit in order to restore original functionality, and fix (fairly serious) bugs introduced by the refactoring.
Minor changes:
- Update dsl#local_user method and add test for it. (@bruno-)
- Revert short sha1 revision with git. (@blaugueux)
- Changed asking question to more standard format (like common unix commandline tools) (@sponomarev)
- Fixed typos in the README. (@sponomarev)
- Added
keysmethod to Configuration to allow introspection of configuration options. (@juanibiapina) - Improve error message when git:check fails (raise instead of silently
exit 1) (@mbrictson)
-
v3.2.0 Changes
The changelog entries here are incomplete, because many authors choose not to be credited for their work, check the tag comparison link for Github.
- Minor changes:
- Added
keysmethod to Server properties to allow introspection of automatically added properties. - Compatibility with Rake 10.2.0 -
ensure_taskis now added to@top_level_tasksas a string. (@dmarkow) - Amended the git check command, "ls-remote", to use "-h", limiting the list to refs/heads
- Added
- Minor changes:
-
v3.1.0 Changes
π₯ Breaking changes:
deploy:restarttask is no longer run by default. From this version, developers who restart the app on each deploy need to declare it in their deploy flow (egafter 'deploy:publishing', 'deploy:restart') or, for passenger applications, use the capistrano-passenger gem.Please, check https://github.com/capistrano/capistrano/commit/4e6523e1f50707499cf75eb53dce37a89528a9b0 for more information. (@kirs)
- Minor changes
Tasks that used
linked_dirsandlinked_filesnow run on all roles, not just app roles (@mikespokefire)Tasks
deploy:linked_dirs,deploy:make_linked_dirs,deploy:linked_files,deploy:cleanup_rollback,deploy:log_revisionanddeploy:revert_releasenow userelease_roles()notroles()meaning that they will only run on servers where theno_releaseproperty is not falsy. (@leehambley)Fixed bug when
deploy:cleanupwas executed twice by default (@kirs)Config location can now be changed with
deploy_config_pathandstage_config_pathoptions (@seenmyfate)no_releaseoption is now available (@seenmyfate)Raise an error if developer tries to define
:allrole, which is reserved (@kirs)deploy:failedhook was added to add some custom behaviour on failed deploy (@seenmyfate)Correctly infer namespace in task enhancements (@seenmyfate)
Add SHA to revision log (@blackxored)
Allow configuration of multiple servers with same hostname but different ports (@rsslldnphy)
Add command line option to control role filtering (@andytinycat)
Make use of recent changes in Rake to over-ride the application name (@shime)
Readme corrections (@nathanstitt)
Allow roles to be fetched with a variable containing an array (@seenmyfate)
Improve console (@jage)
Add ability to filter tasks to specific servers (host filtering). (@andytinycat)
Add a command line option to control role filter (
--roles) (@andytinycat)Use an SCM object with a pluggable strategy (@coffeeaddict)
Big thanks to @Kriechi for his help.