Scalable by Default
Major Update by @aeroastro
The main objective of this update is scalable by default. You can enjoy the scalability and fine-tuned settings just out of the box.
New Features:
:net_storage_multi_app_mode
(default:false
) has been introduced to deploy a repository with multiple applications (#14)- This mode is more convenient than
repo_tree
when there is a dependency among subdirectories.
- This mode is more convenient than
- Plugin style is now officially supported for Capistrano >= 3.7 (#22)
- Officially supported task hook point is introduced
after 'net_storage:prepare_archive'
(#22) :net_storage_keep_remote_archives
has been introduced to control the number of remote archives (#24)
Changes
- Default archiver is now
.tar.gz
instead of.zip
to improve integrity (#19) - Default value of
:net_storage_config_files
has been changed fromnil
to[]
(#20) - Minimum required Ruby version is now 2.7 (#21)
- Minimum required Bundler version is now 2.1 (#21)
- Minimum required Capistrano version is now 3.7.0 (#22)
:net_storage_archive_on_missing
has been renamed to:net_storage_reuse_archive
(#22)- Default value of
:net_storage_max_parallels
is now 1000 (#22) - Default value of
:net_storage_local_base_path
is now.local_net_storage
(#22) :net_storage_local_#{mirror,releases,bundle,archives}_path
has been removed from settings (#22):net_storage_with_bundle
is renamed to:net_storage_skip_bundle
(#22)- Default value of
:net_storage_skip_bundle
is changed to conductbundle install
(#22) - Default value of
:net_storage_upload_files_by_rsync
is nowtrue
(#22)
Bug Fixes:
IOError: closed stream
error from SSHKit has been fixed. (#13)- Deprecation warning of
bundle install --path
and other option have been fixed (#14) - Fix bug when
config_files
is an empty array (#14) - Fix deprecation warning coming from Bundler.with_clean_env (#21)
- Allow Capistrano::NetStorage to deploy different Ruby versions (#28)
Improvement:
- The speed of config file deployment is dramatically improved by reducing
rsync
to 1 command (#13) - The need of
.bundle/config
deployment is properly removed, and deployment becomes faster. (#14) - Jitter duration has been introduced to increase stability for
rsync
and transport layer. (#22)
Internal Improvement (mainly for maintainers and plugin developers):
- Delegation system has been improved.
file_extension
is delegated to:archiver
class (#14)- Checking
local_bundle_path
is delegated to:bundler
class (#14)
rsync
mechanism between cache and install directory has been improved (#14)- Caching at
Capistrano::NetStorage::Config
has been removed to remove potential bugs (#14) Capistrano::NetStorage::Transport#cleanup
is now mandatory (#15)- GitHub Actions have been introduced for CI (#16, #17, #18)
:net_storage_archiver
class must implementCapistrano::NetStorage::Archiver::SomeClass#.file_extension
(#22)Capistrano::NetStorage::Config#archive_suffix
now shows deprecation warnings. (#22)- All the default settings can be consulted via
Capistrano::NetStorage::Plugin#set_defaults
(#22) :net_storage_servers
has been removed (#22)- Large-scale refactoring (#22)
NotImplementedError
message has been improved to ease debugging for plugin developers (#25)
Fix Bug:
- Fix a cleanup issue reported at #9 (#12) @naro143
- Before:
- Archives such as
.tar.gz
and.zip
are handled inreleases
directory of each server. - Incomplete deployment leads to uncollected garbage directory under
releases
.
- Archives such as
- After:
- Archives are handled within
#{deploy_to}/net_storage_archives
directory of each server. - NetStorage cleanup
net_storage_archives
directory just as Capistrano do inreleases
directory. - One successful deployment can cleanup old archives and there is no more Capistrano warnings.
- Archives are handled within
- This includes the same cleanup policy for
local_releases_path
andlocal_archives_path
of NetStorage.
- Before:
Changes:
- Change task name
net_storage:cleanup_remote_release
tonet_storage:cleanup_archives_on_remote_storage
Fix Bug:
- Use Capistrano::Configuration.env.filter (#8) @SpringMT
Fix Bug:
- Enable HOSTS settings when using cap deploy --hosts (#6) @SpringMT
Improve:
- Support capistrano's SCM plugin system (#4) @progrhyme
Minor Modify:
- Use
git rev-list
instead ofgit rev-parse
to handle annotated tag better (#3) @aeroastro
Feature:
- Add a framework task
net_storage:cleanup_remote_release
to clean up old archives on remote storage (#2) @progrhyme
Internal Change:
- Use
run_locally
instead ofon :local
(#1) @progrhyme
Initial release.