# Configuration Edition History

Atmos occasionally changes its configuration defaults. By default, upgrading Atmos adopts those newer defaults.
A **configuration edition** lets you pin your project to a specific date, preserving the defaults from that date
until you choose to adopt newer ones by advancing the pin.

Use [`atmos config set`](/cli/commands/config/config-set) to save your chosen edition in `atmos.yaml`.
For example, to keep the defaults as of October 25, 2026:

```shell
atmos config set edition 2026-10-25
```

Set a later date when you are ready to adopt newer defaults. Values you explicitly configure take precedence over edition defaults.

- [Configure your edition](/cli/configuration/edition) — date formats, precedence, and how pinning works.
- [`atmos list editions`](/cli/commands/list/editions) — list changes or compare dates with `--from` and `--to`.
- [`atmos describe edition`](/cli/commands/describe/edition) — inspect your active edition and the defaults it preserves.

The history below lists every recorded default and behavior change. Your installed Atmos version includes the entries available when it was built.
Quoted values are strings; unquoted values are booleans or numbers.

## 2026-10-26

### `templates.settings.enabled`

**Default change.**

Stack templates are enabled when omitted from CLI configuration; earlier editions preserve the disabled default for projects with an atmos.yaml.

| Before | After |
| --- | --- |
| `false` | `true` |

[Source](https://github.com/cloudposse/atmos/pull/3473)

### `templates.settings.gomplate.enabled`

**Default change.**

Gomplate template functions are enabled when omitted from CLI configuration; earlier editions preserve the disabled default for projects with an atmos.yaml.

| Before | After |
| --- | --- |
| `false` | `true` |

[Source](https://github.com/cloudposse/atmos/pull/3473)

### `templates.settings.sprig.enabled`

**Default change.**

Sprig template functions are enabled when omitted from CLI configuration; earlier editions preserve the disabled default for projects with an atmos.yaml.

| Before | After |
| --- | --- |
| `false` | `true` |

[Source](https://github.com/cloudposse/atmos/pull/3473)

## 2026-10-20

### `yaml_functions.explicit_tags`

**Behavior transition.**

Quoted YAML function expressions remain literal strings; earlier editions retain legacy string-prefix evaluation.

| Before | After |
| --- | --- |
| `"evaluate supported YAML function prefixes in strings"` | `"evaluate only explicit YAML function tags"` |

[Source](https://atmos.tools/changelog/explicit-yaml-function-tags)

## 2026-10-19

### `templates.step_delimiters`

**Behavior transition.**

Workflow, custom-command, and lifecycle-hook step templates honor the configured templates.settings.delimiters; earlier pins keep the default \{\{ }} for steps.

| Before | After |
| --- | --- |
| `"workflow, custom-command, and hook step templates always use {{ }}"` | `"step templates use templates.settings.delimiters"` |

[Source](https://github.com/cloudposse/atmos/pull/3436)

## 2026-10-17

### `docs.terraform.formatter_settings`

**Behavior transition.**

README generation honors explicit section visibility, hide\_empty, and indent\_level; earlier pins retain the legacy formatter output.

| Before | After |
| --- | --- |
| `"terraform-docs formatter defaults"` | `"configured Terraform documentation formatting"` |

[Source](https://github.com/cloudposse/atmos/pull/3404)

## 2026-10-13

### `terraform.plan_diff.show_computed_attributes`

**Behavior transition.**

Plan comparisons display content hashes and encoded response bodies unless explicitly excluded; earlier editions retain display-only suppression.

| Before | After |
| --- | --- |
| `"hide seven computed attributes from resource diffs; still compare them"` | `"show all non-excluded resource attributes; still compare them"` |

[Source](https://atmos.tools/changelog/plan-diff-ignore-changes)

## 2026-10-09

### `toolchain.install`

**Default change.**

Component runs install their own pinned command from .tool-versions; pinned projects install only explicit dependencies. Every command inherits installed project selections under every policy.

| Before | After |
| --- | --- |
| `"declared"` | `"auto"` |

[Source](https://github.com/cloudposse/atmos/pull/3346)

## 2026-10-01

### `components.terraform.mocks.mode`

**Default change.**

With --use-mocks, Terraform lookups use real state when it exists and fall back to component mocks only when the state isn't provisioned or the output is missing.

| Before | After |
| --- | --- |
| `"always"` | `"fallback"` |

[Source](https://atmos.tools/changelog/terraform-component-mocks-fallback)

## 2026-09-15

### `vendor.max_concurrency`

**Default change.**

Vendor downloads and upstream version checks run with four workers; destination writes remain ordered.

| Before | After |
| --- | --- |
| `1` | `4` |

[Source](https://github.com/cloudposse/atmos/pull/3169)

## 2026-09-14

### `settings.experimental`

**Default change.**

Experimental warnings are shown once per feature every 24 hours using the shared local cache.

| Before | After |
| --- | --- |
| `"warn"` | `"warn-daily"` |

[Source](https://github.com/cloudposse/atmos/pull/3164)

## 2026-09-12

### `components.terraform.init.mode`

**Default change.**

terraform init only runs when something that affects it changed, instead of unconditionally before every command.

| Before | After |
| --- | --- |
| `"always"` | `"auto"` |

[Source](https://github.com/cloudposse/atmos/pull/3127)

### `components.terraform.init.upgrade`

**Default change.**

Atmos adds -upgrade to terraform init automatically when Terraform/OpenTofu reports one is required, instead of requiring it to be typed by hand.

| Before | After |
| --- | --- |
| `"never"` | `"auto"` |

[Source](https://github.com/cloudposse/atmos/pull/3127)

## 2026-08-05

### `toolchain.use_lock_file`

**Default change.**

The toolchain writes toolchain.lock.yaml by default, pinning resolved tool versions and checksums for reproducible installs across platforms and CI.

| Before | After |
| --- | --- |
| `false` | `true` |

[Source](https://atmos.tools/changelog/toolchain-lockfile-default)

## 2026-07-17

### `describe.component.filter`

**Default change.**

Component descriptions show only stack-manifest sections; set the filter to full for computed internals.

| Before | After |
| --- | --- |
| `"full"` | `"schema"` |

[Source](https://atmos.tools/changelog/config-editions)

## 2026-07-16

### `describe.provenance`

**Default change.**

Component descriptions include provenance annotations (which stack file set each value) by default.

| Before | After |
| --- | --- |
| `false` | `true` |

[Source](https://atmos.tools/changelog/config-editions)

## 2026-07-13

### `describe.error_mode`

**Default change.**

Describe commands substitute (computed) for unresolved YAML function values and continue instead of aborting.

| Before | After |
| --- | --- |
| `"strict"` | `"warn"` |

[Source](https://atmos.tools/changelog/list-describe-graceful-degradation)

### `list.error_mode`

**Default change.**

List commands substitute (computed) for unresolved YAML function values and continue instead of aborting.

| Before | After |
| --- | --- |
| `"strict"` | `"warn"` |

[Source](https://atmos.tools/changelog/list-describe-graceful-degradation)

## 2026-07-06

### `settings.terminal.help.filter`

**Default change.**

Bare --help shows a focused view without the GLOBAL FLAGS section; --help=all prints the full output.

| Before | After |
| --- | --- |
| `false` | `true` |

[Source](https://github.com/cloudposse/atmos/pull/2696)

## 2026-02-10

### `components.helmfile.use_eks`

**Default change.**

Helmfile EKS integration is opt-in; kubeconfig is no longer downloaded automatically before Helmfile commands.

| Before | After |
| --- | --- |
| `true` | `false` |

[Source](https://github.com/cloudposse/atmos/pull/1903)

## 2025-12-06

### `stacks.inherit.metadata`

**Default change.**

Component metadata is inherited from base components like vars and settings; previously metadata was per-component only.

| Before | After |
| --- | --- |
| `false` | `true` |

[Source](https://atmos.tools/changelog/metadata-inheritance)

## 2025-10-16

### `settings.terminal.pager`

**Default change.**

The built-in pager is disabled by default; long output prints directly to the terminal.

| Before | After |
| --- | --- |
| `"true"` | `"false"` |

[Source](https://github.com/cloudposse/atmos/pull/1642)

## 2025-09-23

### `logs.level`

**Default change.**

The default log level is Warning; informational log messages are hidden unless requested.

| Before | After |
| --- | --- |
| `"Info"` | `"Warning"` |

[Source](https://github.com/cloudposse/atmos/pull/1430)

## 2025-02-11

### `logs.file`

**Default change.**

Logs are written to stderr so they never contaminate pipeable command output on stdout.

| Before | After |
| --- | --- |
| `"/dev/stdout"` | `"/dev/stderr"` |

[Source](https://github.com/cloudposse/atmos/pull/1050)
