Release Announcement: Garden 0.12.20

Garden 0.12.20 is out! :tada:

Garden now computes versions in a more granular fashion, which results in better caching in many circumstances. See the section below for more details.

Additionally, we’re introducing some nice additions to template strings: Template functions, and the this context.

See the changelog in the release notes for a full list of changes.

Finally, many thanks to everyone who’s been providing feedback and suggestions!

More granular version hashes

This release addresses a long-standing issue where changes to runtime configuration (e.g. services, test and tasks) would also impact build versions of container images.

We now tackle versioning more specifically for each entity within any given module. Module types can control which parts of a configuration should affect the build version, which is applied in different ways by different module type handlers.

This change does mean that service, task and test versions are always different from module (i.e. build) versions. This is because the versions are now computed with the service/test/task configuration hashed on top of the module configuration, even if there is no natural distinction between the build version and a runtime version for that particular module.

This generally has no practical downsides except that users might be expecting versions to match, which they would previously sometimes do, e.g. a container service would have the same version as its module—which is in fact the problem we’re solving here.

Template functions

This release adds a collection of helper functions to our template syntax.

Initially we’ve added a handful of specific helpers that users have requested, but we’ll be happy to add more since that generally is
very simple to do now that the basic structure and syntax support is in place.

See the added docs for the usage instructions and the helpers available in the first iteration.

this context for template strings

This adds ${}, ${this.buildPath} and ${this.path} to the template context when resolving modules.


Thank you for the amazing work :clap: :clap:

1 Like

Our pleasure, and thank you for the kind words :slight_smile: