Skip to content

Releases: terramate-io/terramate

v0.14.5

05 Sep 16:01
v0.14.5
79758f8
Compare
Choose a tag to compare

Added

  • Add tm_unslug() function: New stdlib function that maps slugs back to their original human-readable strings using a provided dictionary. Supports both string and list(string) inputs, with the output shape mirroring the input. Features include:

    • Dictionary-based reverse mapping for reliable unslugging
    • Normalization of input slugs (lowercase, collapsed separators, trailing separator removal)
    • Collision detection with typed error (UnslugErrorIndeterministic)
    • Round-trip guarantee: tm_unslug(tm_slug(word), dictionary) == word for all words in dictionary
    • Extensive special character support (Unicode, emoji, punctuation, etc.)
  • Add tm_slug() function: New stdlib function that converts strings to URL-safe slugs. Accepts both string and list(string) inputs, returning the appropriately typed slugified result. Properly handles null values in list or tuple elements without panics.

    tm_slug("Hello World!")
    # Returns: "hello-world"
    
    tm_slug(["Feature/Branch", "Bug Fix", "Release 2.0"])
    # Returns: ["feature-branch", "bug-fix", "release-2-0"]
  • Add tm_joinlist() function for joining nested lists of strings with a separator.

    tm_joinlist("/", [["root"], ["root", "child"], ["root", "child", "leaf"]])
    # Returns: ["root", "root/child", "root/child/leaf"]
  • Add tm_tree() function for constructing hierarchical paths from parent-child relationships.

  tm_tree([[null, "root"], ["root", "child1"], ["root", "child2"], ["child1", "leaf"]])
  # Returns: [["root"], ["root", "child1"], ["root", "child1", "leaf"], ["root", "child2"]]
  • Add support for slashes (/) in tags.

v0.14.4

15 Aug 13:18
v0.14.4
96767eb
Compare
Choose a tag to compare

Fixed

  • Fix ANSI escape codes that are printed to the console when running terragrunt commands with the --parallel flag.

v0.14.4-rc1

14 Aug 13:02
v0.14.4-rc1
64dea1d
Compare
Choose a tag to compare
v0.14.4-rc1 Pre-release
Pre-release

Fixed

  • Fix ANSI escape codes that are printed to the console when running terragrunt commands with the --parallel flag.

v0.14.3

12 Aug 11:10
v0.14.3
f83705f
Compare
Choose a tag to compare

Added

  • Add option --plan-render-timeout to run, and the corresponding script command option plan_render_timeout.
    • This configures the maximum time to wait (in seconds) for rendering change summaries from plan files, which will be sent to Terramate Cloud.
    • The previous default value was hardcoded at 300 seconds. In most scenarios this is more than enough,
      but there have been reported cases where rendering the changes took longer.
    • Exceeding the timeout will skip sending the change summaries, but the command status and logs are still sent.

v0.14.2

30 Jul 09:42
v0.14.2
05d7ff7
Compare
Choose a tag to compare

Fixed

  • Fix crash in the terramate cloud login --sso command.

v0.14.1

25 Jul 13:24
v0.14.1
fcdb6e8
Compare
Choose a tag to compare

Fixed

  • Fix crash in the terramate install-completions command.
  • Fix error on duplicate Terragrunt dependencies in create --all-terragrunt.
    • Duplicates are now removed and the command will no longer fail.
  • Fix mistakenly detecting stacks as changed on changes in referenced Terraform modules.
    • A change in a module that is referenced by stack-a would also mark stack-aa as changed (and other stacks with a common name prefix).

v0.14.0

02 Jul 16:01
v0.14.0
6b405a4
Compare
Choose a tag to compare

Fixed

  • BREAKING CHANGE Massively improve stack order evaluation performance.

    This affects and improves commands that use the stack order, i.e. run, run script, list --run-order.
    As a consequence, the evaluation order of unrelated stacks may change.

    • Example 1:
      Nested stacks a must be executed after their parent stacks, but /stack1 and /stack2 are independent.

      Old run order:

      /stack1
      /stack1/a
      /stack2
      /stack2/a
      

      New run order:

      /stack1
      /stack2
      /stack1/a
      /stack2/a
      
    • Example 2:
      stack2 must be executed after stack1, but stack1 and stack3 are independent in the follwing configuration:

      /stack1 
      /stack2 (after=[stack1])
      /stack3
      

      Old run order:

      /stack1
      /stack2
      /stack3
      

      New run order:

      /stack1
      /stack3
      /stack2
      

    The new rule recursively aligns stacks that are independent into groups.

    • The first group contains all initially independent stacks.
    • The second group contains all stacks that just depended on stacks in the first group.
    • The third group contains all stacks that just depended on stacks in both previous groups.
    • The fourth group and following groups continue in the same way.

    Stacks in each group are ordered lexicographically and returned as the order of execution when running sequentially.

    The run order when using the --parallel flag is not affected by this change.

v0.14.0-rc1

26 Jun 10:03
v0.14.0-rc1
005217b
Compare
Choose a tag to compare
v0.14.0-rc1 Pre-release
Pre-release

Fixed

  • (BREAKING CHANGE) Improve stack order evaluation performance.
    This affects commands that use the stack order, i.e. run, run script, list --run-order.
    As a consequence, the evaluation order of unrelated stacks may change.

    • Example 1

      /stack1
      /stack1/a
      /stack2
      /stack2/a
      

      Sub-stacks a must be executed after their parent stacks, but /stack1 and /stack2 are unrelated.

      Old run order:

        /stack1
        /stack1/a
        /stack2
        /stack2/a
      

      New run order:

        /stack1
        /stack2
        /stack1/a
        /stack2/a
      
    • Example 2

      /stack1 
      /stack2 (after=[stack1])
      /stack3
      

      stack2 must be executed after stack1, but stack3 is unrelated.

      Old run order:

        /stack1
        /stack2
        /stack3
      

      New run order:

        /stack1
        /stack3
        /stack2
      

    The new rule first runs stacks that have no dependencies in group 1,
    then those in group 2 that depend on stacks in group 1,
    then those in group 3 that depend on stacks in group 1 and group 2, and so on.
    Stacks in each group are ordered lexicographically.

    The run order when using the --parallel flag is not affected by this.

v0.13.3

20 Jun 13:07
v0.13.3
a96a75e
Compare
Choose a tag to compare

Added

  • Support tag:<query> selectors in stack attributes wants and wanted_by.
  • Add support for creating previews and detecting merge request metadata in Gitlab merged results pipelines.

v0.13.2

02 Jun 17:48
v0.13.2
e89f1f4
Compare
Choose a tag to compare

Fixed

  • Upgrade dependency github.com/cli/go-gh/v2 from v2.11.1 to v2.12.1.
    • Previous version had vulnerabilities that did not affect terramate, but would show up in security reports.