> ## Documentation Index
> Fetch the complete documentation index at: https://cdktn.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Releases

> We release CDK Terrain regularly. Find a link to the changelog and upgrade guides. Use feature flags to enable new behaviors.

We release CDK Terrain (CDKTN) regularly. The [CHANGELOG on Github](https://github.com/open-constructs/cdk-terrain/blob/main/CHANGELOG.md) contains details about bug fixes, new features, and deprecations.

## What's New

* [Function availability validation](/release/function-availability) — the `Fn`
  bindings cover Terraform and OpenTofu, and synthesis validates function usage
  against your project's declared `targetVersions`.
* [S3-native state locking](/release/s3-native-locking) — the `S3Backend` can now
  lock state with a native lock file via the `useLockfile` field, removing the
  need for a separate DynamoDB table.

## Feature Flags

Some new behaviors ship behind feature flags to preserve backwards
compatibility for existing projects. Projects created with `cdktn init` get
all current flags enabled in the `context` section of their `cdktf.json`;
existing projects can opt in by adding the entries manually. In the next major
release these behaviors become the default.

| Flag                              | Behavior when enabled                                                                                                                                                                |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `failOnConstructsOutsideOfStacks` | Synthesis throws if constructs are scoped directly to the `App` instead of a `TerraformStack`.                                                                                       |
| `validateFunctionVersions`        | Functions used through `Fn` are validated at synth time against the project's declared `targetVersions`, without executing any binary. [Learn more](/release/function-availability). |

## Upgrade Guides

CDKTN includes upgrade guides for releases that have breaking changes.

* [Upgrading to v0.23](/release/upgrade-guide-v0-23)
* [Upgrading to v0.22](/release/upgrade-guide-v0-22)
* [Upgrading to v0.19](/release/upgrade-guide-v0-19)
* [Upgrading to v0.17](/release/upgrade-guide-v0-17)
* [Upgrading to v0.15](/release/upgrade-guide-v0-15)
* [Upgrading to v0.13](/release/upgrade-guide-v0-13)
* [Upgrading to v0.12](/release/upgrade-guide-v0-12)
* [Upgrading to v0.11](/release/upgrade-guide-v0-11)
* [Upgrading to v0.10](/release/upgrade-guide-v0-10)
* [Upgrading to v0.9](/release/upgrade-guide-v0-9)
* [Upgrading to v0.7](/release/upgrade-guide-v0-7)
* [Upgrading to v0.6](/release/upgrade-guide-v0-6)
