All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Resolve lint issues identified by RuboCop. (#401)
2.18.0 - 2026-02-02
- Improve message when CloudFormation claims there are no changes to apply, even when a template diff is present. (#398)
- Display Tags diff (stack tags) in
stack_master diffandstack_master applycommands. (#397) - Resolve style issues identified by RuboCop. (#396)
- Test on Ruby 4.0 in the CI build (#399).
- Minor fixups in gem metadata (#400).
2.17.1 - 2025-12-19
- Always treat default parameter values from CloudFormation templates as strings. Avoids erroneous diffs being presented. (#394)
- Resolve layout issues identified by RuboCop (#393)
2.17.0 - 2025-07-11
- Add a parameter resolver for AWS SSO/IIC mapping group display name to id (#390)
group_id:
sso_group_id: "us-east-1:d-123456bf8/SSO Group Display Name"2.16.0 - 2024-08-01
- Resolve parameters from stack outputs with non-camel-case names (#386)
2.15.0 - 2024-07-15
- Always report at least a small fragment of the backtrace. (#381)
2.14.1 - 2024-03-07
-
Improve the error reporting from invalid format. (#379, #380).
-
Internal readability improvement. (#378).
2.14.0 - 2024-02-05
-
Test on Ruby 3.3 in the CI build (#376).
-
Introduce
user_data_file,user_data_file_as_lines, andinclude_fileconvenience methods to the YAML ERB template compiler (#377).
2.13.4 - 2023-08-02
- Resolve SparkleFormation template error caused by
SortedSetclass being removed from thesetlibrary in Ruby 3 (#374).
2.13.3 - 2023-02-01
- Pass an options hash to the AWS SDK, instead of keyword arguments (#371).
- Widen the version constraint on the
cfn-nagruntime dependency (#364). Allow >= 0.6.7 and < 0.9.0.
- Resolve Ruby deprecation: replace
File.exists?withFile.exist?(#372).
2.13.2 - 2022-01-25
- Add support for ActiveSupport 7 (#368)
2.13.1 - 2021-10-11
- Avoid an API call to check account aliases if all
allowed_accountslook like AWS account IDs (#363) - Provide a more contextual error message if fetching account aliases failed during allowed accounts check (#363)
2.13.0 - 2021-02-10
- Use GitHub Actions for the CI build instead of Travis CI (#353).
- Update
cfn-nagrequirement from~> 0.6.7to>= 0.6.7, < 0.8.0(#354). - Templates compiled with
cfndslhave a pretty format (#356). - Update
cfndslrequirement from< 1.0to~> 1(#356). The changes in version 1 are potentially breaking for projects usingcfndsltemplates.
2.12.0 - 2020-10-22
- Added YAML/ERB support, allowing a YAML CloudFormation template to be pre-processed via ERB, with compile-time parameters. (#350)
2.11.0 - 2020-10-02
- Support for empty strings in compile time parameters.
2.10.0 - 2020-07-02
- A new command,
stack_master nag, uses the open-source cfn_nag tool to perform static analysis of templates for patterns that may indicate insecure infrastructure - Print available regions if the specified stack is not available in the chosen one.
2.9.0 - 2020-06-24
- Added
--timeout 120option to drift command with a default of 2 minutes.
2.8.0 - 2020-06-24
- A new command,
stack_master drift, uses the CloudFormation drift APIs to detect and display resources that have changed outside of the CloudFormation stack.
- The diff in
stack_master applyandstack_master diffhas been improved to no longer display temporary file path context, and remove the empty newline
2.7.0 - 2020-06-15
parameters_diris now configurable to match the existingtemplate_dir.parameter_filesconfigures an array of parameter files relative toparameters_dirthat will be used instead of automatic parameter file globs based on region and stack name.parametersconfigures stack parameters directly on the stack definition rather than requiring an external parameter file.
- JSON template bodies with whitespace on leading lines would incorrectly be
identified as YAML, leading to
diffissues. (#335)
2.6.0 - 2020-05-15
- Replaced GPL-licensed
colorizedependency with MIT-licensedrainbowgem (#333).
2.5.0 - 2020-05-08
-
Include the license document in the gem package (#328).
-
Add an option
stack_master validate --no-validate-template-parametersthat disables the validation of template parameters (#331).
2.4.0 - 2020-04-03
-
stack_master validatechecks for missing parameter values (#323). -
stack_master applyprints names of parameters with missing values (#322). -
allowed_accountsstack definition property supports specifying account aliases along with account IDs (#325). This change requires theiam:ListAccountAliasespermission to work.
- Error assuming role when default aws region not configured in the environment (#324)
2.3.0 - 2020-03-19
- Print backtrace when given the
--traceoption, for in-process rescued errors (#319).StackMaster::TemplateCompiler::TemplateCompilationFailedandAws::CloudFormation::Errors::ServiceErrorare two such errors.
-
Load fewer Ruby files: remove several ActiveSupport core extensions and Rubygems
requires (#318). -
When a stack name includes a dash (
-), the corresponding parameter files can have either dash, or underscore (_) in the filename (#321).stack_master initwill use filenames that match the provided stack name.
-
stack_master applyprints list of parameter file locations if no stack parameters files found (#316). -
stack_master applyexits with status1if there are missing stack parameters (#317). -
Don't print unreadable error backtrace on template compilation errors (#319).
-
Exit status is now managed by the
StackMaster::CLIclass rather than thestack_masterbinstub (#310). The Cucumber test suite can now accurately validate the exit status of each command line invocation. -
Unpin and use the latest release of the
commandergem (#314). This latest release includes fixes for the global option parsing defect reported in #248. -
Speed up CI: Only run one build job on macOS (#315).
-
Add CAPABILITY_AUTO_EXPAND to support macros (#312).
-
stack_master --versionnow returns an exit status0(#310). -
delete,outputs, andresourcescommands now exit with a status1if the specified stack is not in AWS (#313). -
The
deletecommand now exits with status1if using a disallowed AWS account (#313).
2.1.0 - 2020-03-06
stack_master tidycommand (#305). This provides a way to identify unused parameter files or templates.
-
Updated README to be explicit about using underscores in parameter file names (#306).
-
Restrict
sparkle_formationto version 3 (#307). -
Build one gem for all Platforms (#309). This includes adding the
diff-lcsgem as dependency. Previously, this was only a dependency for the Windows release.
2.0.1 - 2020-01-22
- Pin cfndsl to below 1.0
2.0.0 - 2020-01-22
- Test against Ruby 2.7, (#296).
- Some method calls changed to be explicit about converting hashes to keyword arguments. Resolves warnings raised by Ruby 2.7, (#296).
- Bump the minimum required Ruby version from 2.1 to 2.4 (#297).
- Extracted GPG secret parameter resolving to a separate gem. Please add stack_master-gpg_parameter_resolver to your bundle to continue using this functionality (#295).
1.18.0 - 2019-12-23
-
A change log document (#293).
-
Project metadata to the gemspec (#293).
-
Enable cross-account parameter resolving (#292)
1.17.1 - 2019-10-3
- Fix error when the EJSON secret key can't be found (#291).
1.17.0 - 2019-8-20
-
Move
sparkle_pack_templatefrom the stack definition tocompiler_options(#289).stacks: us-east-1: sparkle_pack_test: template: template_with_dynamic_from_pack compiler: sparkle_formation compiler_options: sparkle_pack_template: true sparkle_packs: - my_sparkle_pack
-
Changed
TemplateCompilerinterface to take the template directory and the template (name), instead of the directory and the full path (#289).
- Improve
SparkleFormationcompiler specs. They were very brittle. Changed them to run SparkleFormation without stubbing it out (#289).
1.16.0 - 2019-8-16
- Enable reading templates from Sparkle packs (#286).
1.15.0 - 2019-8-9
-
Add a parameter resolver for EJSON files (#264).
my_param: ejson: "my_secret"
- Use the
hashdiff's v1 namespace:Hashdiff(#285).
1.14.0 - 2019-7-3
- Add ability to restrict in which AWS accounts a stack can be applied in (#283).
-
stack_master lintprovides helpful instruction ifcfn-lintis not installed (#281). -
Fixed Windows build Docker image (#284).
1.13.1 - 2019-3-20
-
stack_master applyexits with status code 0 when there are no changes (#280). -
stack_master validateexit status code reflects validity of stack (#280).
1.13.0 - 2019-2-17
- Return non-zero exit status when command fails (#276).
1.12.0 - 2019-1-11
- Add
--quietcommand line option to surpresses stack event output (#272).
-
Add Ruby 2.6 to the CI matrix, and remove 2.1 and 2.2 (#269).
-
Test against the latest versions of Rubygems and Bundler in the CI build (#271).
-
Output helpful error when container parameter provider finds no images matching the provided tag (#258).
-
Always convert underscores to hyphen in stack name in
stack_master deletecommand (#263).
1.11.1 - 2018-10-16
- Display changeset before asking for confirmation (#254).
1.11.0 - 2018-10-9
- Add
--yes-paramoption for single-param update auto-confim onapply(#252).
1.10.0 - 2018-9-14
1.9.1 - 2018-9-3
- Improve error reporting: print backtrace when template compilation fails (#251).
1.9.0 - 2018-8-24
-
Add parameter resolver for identifying the latest container image in an AWS ECR (#250).
container_image_id: latest_container: repository_name: "nginx" registry_id: "012345678910" region: "us-east-1" tag: "latest"
1.8.2 - 2018-8-24
- Fix
stack_master initproblem by includingstacktemplatesdirectory in the gem package (#247).
1.8.1 - 2018-8-17
- Pin
commandergem to<= 4.4.5to fix defect in the parsing of global options (#249).
1.8.0 - 2018-7-5
-
Add parameter resolver for AWS ACM certificates (#227).
cert: acm_certificate: "www.example.com"
-
Add
lintandcompilesub commands (#245).
1.7.2 - 2018-7-5
-
Fix
STDIN#getcherror on Windows (#241). -
Display informative message if
stack_master.ymlcannot be parsed (#243).
1.7.1 - 2018-6-8
-
Display informative message if the stack has
REVIEW_IN_PROGRESSstatus (#233). -
Fix diffing on Windows by adding a runtime dependency on the
diff-lcsgem (#240).
1.7.0 - 2018-5-15
-
Add 1Password parameter resolver (#220).
database_password: one_password: title: "production database" vault: "Shared" type: "password"
-
Add convenience scripts for building Windows release (#229, #230).
1.6.0 - 2018-5-11
-
Add release for Windows (#228).
gem install stack_master --platform x86-mingw32
1.5.0 - 2018-5-7
- Include the stack name in the AWS Cloudformation changeset name (#224).
1.4.0 - 2018-4-19
- Add a code of conduct (#212).
- Move from AWS SDK v2 to v3 (#222).
-
Ensure
SecureRandomhas been required (#200). -
Fix error when the
ojgem is installed. Configuremulti_jsonto use thejsongem (#215). -
Readme clean up (#218).
1.3.1 - 2018-3-18
- Support China-region S3 URLs (#217).
1.3.0 - 2018-3-1
- Support loading Sparkle Packs (#216).
1.2.1 - 2018-2-23
-
Add an 'AWS SSM Parameter Store' parameter resolver (#211).
stack_parameter: parameter_store: "ssm_name"
1.1.0 - 2018-2-21
-
Support
yamlfile extension for parameter files. Both.ymland.yamlnow work (#203). -
Test against Ruby 2.5 (#206) in CI build.
-
Add license, version and build status badges to the readme (#208).
-
Add an environment parameter resolver (#209).
db_username: env: "DB_USERNAME"
-
Make output more readable: separate proposed change set with whitespace and border (#210).
1.0.1 - 2017-12-15
- Don't leave behind failed changesets (#202).
1.0.0 - 2017-12-11
- First stable release!