# CHANGELOG ## 0.15.0 (2021-04-27) NEW FEATURES: * add support for Terraform version `0.14.x` * add support for Terraform version `0.15.x` * add new subcommand `install` * generic component installation; presently only supports `terraform` - permits on-demand installation of any available Terraform binary * add new subcommand `upgrade` * performs a Terraform upgrade of the target stack * add support for native HCL Terraform contraints * terradactyl will now search for Terraform version contraints in the following files: `settings.tf`, `versions.tf` and `backend.tf` * update version expression parsing to match Terraform's own * terradactyl version expression parsing should now operate the same way Terraform's own does, including support for version ranges ## 0.13.2 (2020-12-09) BUG FIXES: * replace symlink to executable with identical copy - `gem build` produces broken symlinks; unsupported ## 0.13.1 (2020-12-09) BUG FIXES: * update README to include missing acknowledgments ## 0.13.0 (2020-11-26) NEW FEATURES: * update Gem version string to match supported Terraform revision * adds support for Terraform version 0.13.x * adds implicit Terraform version management - (i.e. pessimistic operator, ~> 0.12.1) * adds `defaults` sub-command BUG FIXES: * remove poor and non-critical defaults * add CHANGELOG, LICENSE * update README and provide examples * fix/refactor/re-org tests and ## 0.11.0 (2019-09-12) NEW FEATURES: * overhaul Terradactyl::Commands - create dynamic Module mix-in for Stack - ensure command revision module prepends Commands * overhaul Stack#plan and related code to use new Terraform::PlanFile class ## 0.10.0 (2019-09-06) NEW FEATURES: * update to work with `terradactyl-terraform`, `0.3.1` * trap SIGINT to quell stack dumps on ^C * hyphenate meta-subcommands, like `clean-all` * add CLI subcommands `validate` and `validate-all` * modularize Terraform subcommands by revision - add Terradactyl::Commands and revision sub-modules - add spec tests for both major revs * refactor method decoration routine ## 0.9.2 (2019-09-06) BUG FIXES: * update Filter classes - ensure all git-related ops are performed on relative path - conform the default class by giving it a `git_cmd` * update Stack - allow `decorate_cmds` to handle method args - make `validate_stack_name` err msg more generic * make Stacks target filter accessible via ivar ## 0.9.1 (2019-09-05) BUG FIXES: * add Stack#validation and Stack#checklist * update Stack filter classes with names and descriptions ## 0.9.0 (2019-09-03) NEW FEATURES: * update to work with supporting gem (`terradactyl-terraform`, `0.3.0`) - implement autoinstall (removed from supporting gem) - fix some spec tests * refactor `Stack` command methods; DRY code * cleanup some Rubocop violations ## 0.8.1 (2019-07-26) BUG FIXES: * rename method `has_plan?` to `planned?` * add method: `plan_file_obj`; refactor plan file related methods * refactor `common` and `config` - factor out early config loading for `String.disable_colorization` - fixes load failure when requiring the gem * fix & refactor `Stack` and `Stacks` validation - fix bug when `td audit` is passed a stack path - move the path to stack name conversion into `Stacks.validate` ## 0.8.0 (2019-07-19) NEW FEATURES: * jettison code that migrated to `terradactyl-terraform` gem * make `terradactyl-terraform` a dependency ## 0.6.1 (2019-03-12) BUG FIXES: * we can't parse "JSON-like" templates because they contain bare tokens * rescue `JSON::ParserError` on misidentified blobs in `TerraformPlan#normalize_line` ## 0.6.0 (2019-03-04) NEW FEATURES: * re-organize terraform related code into component files * add Gemfile.lock to .gitignore ## 0.5.9 (2019-02-05) NEW FEATURES: * add report feature to `auditall` ## 0.5.8 (2019-02-04) BUG FIXES: * re-classify stacks that error as errors, not dirty * only abort on errors, not dirty stacks ## 0.5.7 (2019-01-31) BUG FIXES: * mark stacks as `dirty` on error or changed * remove early exits (abort); throw `:error` as required * add `at_exit` handler to catch dirty/error stacks * new feature: support relative path to stack (tab-complete friendly), example: `td quickplan global/my-stack` * add validation routine to stack names; better error message * fix documentation ## 0.5.6 (2019-01-18) BUG FIXES: * change bundler pin posture to `>=` ## 0.5.5 (2018-07-09) BUG FIXES: * cosmetic: replace bold markdown with h4 header; better viz in Slack ## 0.5.4 (2018-07-05) BUG FIXES: * fix erroneous audit reporting ## 0.5.3 (2018-07-05) BUG FIXES: * fix CLI#auditall, rescue individual abort from CLI#audit * update README ## 0.5.2 (2018-07-04) BUG FIXES: * fix Stack#execute, full IO buffer bug ## 0.5.1 (2018-06-30) BUG FIXES: * add base_folder attribute to TerraformPlan class * fix JSON normalization routine in TerraformPlan class - was not handling lines that contained a mix of JSON blobs and regular Strings - refine the regex to add plain string handling ## 0.5.0 (2018-06-24) NEW FEATURES: * abandon Rake tasks as an interface * replace with Thor CLI * add `quickplan[NAME]` meta-task, per `terraenv` ## 0.4.1 (2018-06-18) BUG FIXES: * don't abort on empty Stacks for terradactyl:smartplan, just warn ## 0.4.0 (2018-06-18) NEW FEATURES: * permit cub-commands to be individually configured * make state locking a per-operation config ## 0.3.9 (2018-06-18) BUG FIXES: * do not lock state during an init operation ## 0.3.8 (2018-06-18) BUG FIXES: * fix JSON unescape operation ## 0.3.7 (2018-06-16) BUG FIXES: * fix condition inversion ## 0.3.6 (2018-06-16) BUG FIXES: * fix Git diff filters stack_name extrapolation ## 0.3.5 (2018-06-16) NEW FEATURES: * add plan filter: StackPlanFilterDiffOriginBranch * use new filter in PR planning operations ## 0.3.4 (2018-06-16) BUG FIXES: * fix missing dependency * flag plan object as modified when there are changes ## 0.3.3 (2018-06-15) BUG FIXES: * do not lock state during a plan operation ## 0.3.2 (2018-06-14) BUG FIXES: * add JSON normalization routine to TerraformPlan class that will hopefully prevent checksum drift from plan to plan ## 0.3.1 (2018-06-12) BUG FIXES: * fix missing summary condition