---
name: CDK for Terraform
slug: cdk-for-terraform
type: github
source_url: https://github.com/hashicorp/terraform-cdk
changelog_url: https://github.com/hashicorp/terraform-cdk/blob/HEAD/CHANGELOG.md
organization: HashiCorp
organization_slug: hashicorp
total_releases: 100
latest_version: v0.21.0
latest_date: 2025-06-04
last_updated: 2026-04-18
tracking_since: 2020-05-08
canonical: https://releases.sh/hashicorp/cdk-for-terraform
organization_url: https://releases.sh/hashicorp
---

<Release version="v0.21.0" date="June 4, 2025" published="2025-06-04T16:46:50.000Z" url="https://github.com/hashicorp/terraform-cdk/releases/tag/v0.21.0">
**Breaking Changes**

### Minimum required Node version updated to 20.9

Since long-term support for Node.js 18 has ended, we updated our minimum compatible node version to 20.9.

### fix

- fix: Stop escaping quotes within HEREDOC [\#3890](https://github.com/hashicorp/terraform-cdk/pull/3890)
- fix: Pass migrate-state flag through to terraform init [\#3887](https://github.com/hashicorp/terraform-cdk/pull/3887)
- fix: #3630 Slightly improve HCL rendering for skipped attributes [\#3878](https://github.com/hashicorp/terraform-cdk/pull/3878)
- fix: issue where archive was being closed before the file finished writing causing corrupt TerraformAssets [\#3873](https://github.com/hashicorp/terraform-cdk/pull/3873)

### feat

- feat!: update minimum required Node.js version to 20.19 [\#3888](https://github.com/hashicorp/terraform-cdk/pull/3888)
- feat: Skip Provider Locking on request [\#3879](https://github.com/hashicorp/terraform-cdk/pull/3879)

### chore

- chore(deps): bump tar-fs from 2.1.2 to 2.1.3 [\#3897](https://github.com/hashicorp/terraform-cdk/pull/3897)
- chore: Upgrade base image for docker image used in building CDKTF [\#3872](https://github.com/hashicorp/terraform-cdk/pull/3872)
- chore: Upgrading dependencies [\#3871](https://github.com/hashicorp/terraform-cdk/pull/3871)
- chore(deps): bump the github-actions-backward-compatible group with 6 updates [\#3869](https://github.com/hashicorp/terraform-cdk/pull/3869)
- chore(ci): use Dependabot to keep GitHub Actions updated [\#3867](https://github.com/hashicorp/terraform-cdk/pull/3867)
- chore: add comments to docs [\#3863](https://github.com/hashicorp/terraform-cdk/pull/3863)

</Release>

<Release version="v0.20.12" date="April 17, 2025" published="2025-04-17T12:17:53.000Z" url="https://github.com/hashicorp/terraform-cdk/releases/tag/v0.20.12">
### feat

- feat: Upgrade JSII [\#3837](https://github.com/hashicorp/terraform-cdk/pull/3837)

### chore

- chore: add missing dependency on `fs-extra` to `@cdktf/hcl-tools` [\#3854](https://github.com/hashicorp/terraform-cdk/pull/3854)
- chore: Upgrade node-pty-prebuilt to support Node LTS [\#3851](https://github.com/hashicorp/terraform-cdk/pull/3851)
- chore(deps): pin trusted workflows based on HashiCorp TSCCR [\#3847](https://github.com/hashicorp/terraform-cdk/pull/3847)
- chore(docs): Update example for remote backend to show cloud backend [\#3833](https://github.com/hashicorp/terraform-cdk/pull/3833)
- chore(deps): pin trusted workflows based on HashiCorp TSCCR [\#3828](https://github.com/hashicorp/terraform-cdk/pull/3828)
- chore: Update docker container with latest version of node and JSII [\#3821](https://github.com/hashicorp/terraform-cdk/pull/3821)
- chore: Upgrade archiver version to 7.0.1 [\#3818](https://github.com/hashicorp/terraform-cdk/pull/3818)
- chore: Upgrade dependencies for lib [\#3815](https://github.com/hashicorp/terraform-cdk/pull/3815)
- chore: Use tmccombs/hcl2json and fix go examples [\#3814](https://github.com/hashicorp/terraform-cdk/pull/3814)
- chore: Remove web team from CODEOWNERS for content directories [\#3811](https://github.com/hashicorp/terraform-cdk/pull/3811)
- chore: Upgrade dependencies for all [\#3800](https://github.com/hashicorp/terraform-cdk/pull/3800)
- chore: update changelog [\#3798](https://github.com/hashicorp/terraform-cdk/pull/3798)
- chore(deps): pin trusted workflows based on HashiCorp TSCCR [\#3795](https://github.com/hashicorp/terraform-cdk/pull/3795)
- chore: Upgrade dependencies for all [\#3789](https://github.com/hashicorp/terraform-cdk/pull/3789)
- chore: Upgrade dependencies for lib [\#3776](https://github.com/hashicorp/terraform-cdk/pull/3776)
- chore: Upgrade dependencies for util [\#3767](https://github.com/hashicorp/terraform-cdk/pull/3767)
- chore: Upgrade dependencies for cli [\#3765](https://github.com/hashicorp/terraform-cdk/pull/3765)

### fix

- fix: Upgrade dependencies to remove vulnerable version of micromatch [\#3844](https://github.com/hashicorp/terraform-cdk/pull/3844)
- fix: Upgrade version of esbuild without security vuln [\#3843](https://github.com/hashicorp/terraform-cdk/pull/3843)
- fix: Security warning on version of Axios [\#3841](https://github.com/hashicorp/terraform-cdk/pull/3841)
- fix(examples): The Complex iterators example for C# that has been broken for a while [\#3840](https://github.com/hashicorp/terraform-cdk/pull/3840)
- fix: Update slack action usage for slack action v2 [\#3802](https://github.com/hashicorp/terraform-cdk/pull/3802)
- fix: always save terraform credentials [\#3785](https://github.com/hashicorp/terraform-cdk/pull/3785)
- fix(lib): correct the concat method in TokenizedStringFragments [\#3772](https://github.com/hashicorp/terraform-cdk/pull/3772)

</Release>

<Release version="v0.20.11" date="January 6, 2025" published="2025-01-06T10:12:42.000Z" url="https://github.com/hashicorp/terraform-cdk/releases/tag/v0.20.11">
## 0.20.11

### fix

- fix: punycode deprecation warning [\#3792](https://github.com/hashicorp/terraform-cdk/pull/3792)

### chore

- chore: Add web presence ability to approve PRs to website files [\#3788](https://github.com/hashicorp/terraform-cdk/pull/3788)
- chore: release 0.20.11 [\#3786](https://github.com/hashicorp/terraform-cdk/pull/3786)
- chore: Upgrade dependencies for all [\#3780](https://github.com/hashicorp/terraform-cdk/pull/3780)
- chore(deps): pin trusted workflows based on HashiCorp TSCCR [\#3770](https://github.com/hashicorp/terraform-cdk/pull/3770)
- chore: Upgrade dependencies for all [\#3768](https://github.com/hashicorp/terraform-cdk/pull/3768)

</Release>

<Release version="v0.20.10" date="November 11, 2024" published="2024-11-11T09:43:52.000Z" url="https://github.com/hashicorp/terraform-cdk/releases/tag/v0.20.10">
### fix

- fix(provider-generator): Skip attributes for oracle/oci provider that use the unsupported mapmapmap type [\#3749](https://github.com/hashicorp/terraform-cdk/pull/3749)
- fix: use 'go env GOROOT' when GOROOT env is missing [\#3745](https://github.com/hashicorp/terraform-cdk/pull/3745)
- fix: run lint in Docker image to use same Node version as in other CI jobs [\#3742](https://github.com/hashicorp/terraform-cdk/pull/3742)

### chore

- chore(deps): pin trusted workflows based on HashiCorp TSCCR [\#3757](https://github.com/hashicorp/terraform-cdk/pull/3757)
- chore: Upgrade dependencies for all [\#3756](https://github.com/hashicorp/terraform-cdk/pull/3756)
- chore: update version of docs conversion tool [\#3750](https://github.com/hashicorp/terraform-cdk/pull/3750)
- chore: increase time the docs conversion might take [\#3748](https://github.com/hashicorp/terraform-cdk/pull/3748)
- chore: Upgrade dependencies for all [\#3709](https://github.com/hashicorp/terraform-cdk/pull/3709)

</Release>

<Release version="v0.20.9" date="September 23, 2024" published="2024-09-23T09:51:54.000Z" url="https://github.com/hashicorp/terraform-cdk/releases/tag/v0.20.9">
### feat

- feat(provider-generator): Skip definition attribute for aws_quicksight_analysis.definition data source [\#3725](https://github.com/hashicorp/terraform-cdk/pull/3725)

### fix

- fix(lib): render empty string as quotes [\#3683](https://github.com/hashicorp/terraform-cdk/pull/3683)
- fix(lib): Correct types for allowedAccountIds & forbiddenAccountIds in S3Backend [\#3669](https://github.com/hashicorp/terraform-cdk/pull/3669)
- fix(provider-generator): fix collision for Go for resources named version [\#3670](https://github.com/hashicorp/terraform-cdk/pull/3670)
- fix(release): Don't validate single commit for semanticity [\#3715](https://github.com/hashicorp/terraform-cdk/pull/3715)

### chore

- chore(deps): pin trusted workflows based on HashiCorp TSCCR [\#3714](https://github.com/hashicorp/terraform-cdk/pull/3714)
- chore(deps): pin trusted workflows based on HashiCorp TSCCR [\#3700](https://github.com/hashicorp/terraform-cdk/pull/3700)
- chore: add extra pr for a catch-all package update [\#3699](https://github.com/hashicorp/terraform-cdk/pull/3699)
- chore(deps): pin trusted workflows based on HashiCorp TSCCR [\#3693](https://github.com/hashicorp/terraform-cdk/pull/3693)
- chore: Upgrade dependencies for JSII [\#3692](https://github.com/hashicorp/terraform-cdk/pull/3692)
- chore: Upgrade dependencies for util [\#3691](https://github.com/hashicorp/terraform-cdk/pull/3691)
- chore: Upgrade dependencies for cli [\#3690](https://github.com/hashicorp/terraform-cdk/pull/3690)
- chore: Upgrade dependencies for lib [\#3689](https://github.com/hashicorp/terraform-cdk/pull/3689)
- chore(deps): pin trusted workflows based on HashiCorp TSCCR [\#3682](https://github.com/hashicorp/terraform-cdk/pull/3682)
- chore: Upgrade dependencies for JSII [\#3679](https://github.com/hashicorp/terraform-cdk/pull/3679)
- chore(deps): pin trusted workflows based on HashiCorp TSCCR [\#3672](https://github.com/hashicorp/terraform-cdk/pull/3672)
- chore: added index pages for each library to the docs [\#3671](https://github.com/hashicorp/terraform-cdk/pull/3671)
- chore: reorganize API documentation [\#3668](https://github.com/hashicorp/terraform-cdk/pull/3668)
- chore(deps): pin trusted workflows based on HashiCorp TSCCR [\#3666](https://github.com/hashicorp/terraform-cdk/pull/3666)
- chore: Upgrade dependencies for util [\#3650](https://github.com/hashicorp/terraform-cdk/pull/3650)
- chore: Upgrade dependencies for cli [\#3649](https://github.com/hashicorp/terraform-cdk/pull/3649)
- chore: Upgrade dependencies for JSII [\#3648](https://github.com/hashicorp/terraform-cdk/pull/3648)
- chore: Upgrade dependencies for lib [\#3647](https://github.com/hashicorp/terraform-cdk/pull/3647)
- chore(hcl2cdk): fix yarn command in Readme.md [\#3624](https://github.com/hashicorp/terraform-cdk/pull/3624)

</Release>

<Release version="v0.20.8" date="July 1, 2024" published="2024-07-01T08:46:04.000Z" url="https://github.com/hashicorp/terraform-cdk/releases/tag/v0.20.8">
### feat

- feat: add validation to TerraformModule [\#3608](https://github.com/hashicorp/terraform-cdk/pull/3608)

### fix

- fix: Empty string, booleans, and zero numbers in hcl rendering [\#3655](https://github.com/hashicorp/terraform-cdk/pull/3655)
- fix: explicitly listen on ipv4 address for verdaccio due to Github runner image regression [\#3654](https://github.com/hashicorp/terraform-cdk/pull/3654)

### chore

- chore: manifest.json should have stable json [\#3584](https://github.com/hashicorp/terraform-cdk/pull/3584)
- chore: update JSII [\#3616](https://github.com/hashicorp/terraform-cdk/pull/3616)
- chore: remove dependency on jsii-srcmak [\#3607](https://github.com/hashicorp/terraform-cdk/pull/3607)
- chore: Fix a small documentation typo [\#3629](https://github.com/hashicorp/terraform-cdk/pull/3629)
- chore: Use single-label runner for custom-linux-xl [\#3623](https://github.com/hashicorp/terraform-cdk/pull/3623)
- chore: fix branch cleanup [\#3644](https://github.com/hashicorp/terraform-cdk/pull/3644)
- chore: remove Homebrew link and publishing step [\#3605](https://github.com/hashicorp/terraform-cdk/pull/3605)
- chore: Upgrade dependencies for lib [\#3618](https://github.com/hashicorp/terraform-cdk/pull/3618)
- chore: Upgrade dependencies for util [\#3599](https://github.com/hashicorp/terraform-cdk/pull/3599)
- chore: Upgrade dependencies for util [\#3589](https://github.com/hashicorp/terraform-cdk/pull/3589)
- chore: Upgrade dependencies for util [\#3612](https://github.com/hashicorp/terraform-cdk/pull/3612)
- chore: Upgrade dependencies for cli [\#3613](https://github.com/hashicorp/terraform-cdk/pull/3613)
- chore: Upgrade dependencies for cli [\#3598](https://github.com/hashicorp/terraform-cdk/pull/3598)
- chore: Add links and headers [\#3594](https://github.com/hashicorp/terraform-cdk/pull/3594)
- chore(deps): pin trusted workflows based on HashiCorp TSCCR [\#3614](https://github.com/hashicorp/terraform-cdk/pull/3614)
- chore(deps): pin trusted workflows based on HashiCorp TSCCR [\#3606](https://github.com/hashicorp/terraform-cdk/pull/3606)
- chore(deps): pin trusted workflows based on HashiCorp TSCCR [\#3652](https://github.com/hashicorp/terraform-cdk/pull/3652)

</Release>

<Release version="v0.20.7" date="April 15, 2024" published="2024-04-15T08:57:12.000Z" url="https://github.com/hashicorp/terraform-cdk/releases/tag/v0.20.7">
### fix

- fix(provider-generator): refactor logic to determine if a block is optional or required [\#3580](https://github.com/hashicorp/terraform-cdk/pull/3580)

### chore

- chore(deps): pin trusted workflows based on HashiCorp TSCCR [\#3583](https://github.com/hashicorp/terraform-cdk/pull/3583)
- chore: Upgrade dependencies for cli [\#3588](https://github.com/hashicorp/terraform-cdk/pull/3588)
- chore: Upgrade dependencies for cli [\#3574](https://github.com/hashicorp/terraform-cdk/pull/3574)
- chore: Upgrade dependencies for util [\#3573](https://github.com/hashicorp/terraform-cdk/pull/3573)
- chore: Upgrade dependencies for lib [\#3572](https://github.com/hashicorp/terraform-cdk/pull/3572)

</Release>

<Release version="v0.20.6" date="April 2, 2024" published="2024-04-02T10:13:12.000Z" url="https://github.com/hashicorp/terraform-cdk/releases/tag/v0.20.6">
### fix

- fix(cli): sanitize type arrays [\#3578](https://github.com/hashicorp/terraform-cdk/pull/3578)
- fix(lib): Correctly render string tokens that contain plain objects [\#3545](https://github.com/hashicorp/terraform-cdk/pull/3545)
- fix: hcl rendering nested maps [\#3536](https://github.com/hashicorp/terraform-cdk/pull/3536)
- fix(docs): Italics broken [\#3490](https://github.com/hashicorp/terraform-cdk/pull/3490)

### chore

- chore: fix typo [\#3553](https://github.com/hashicorp/terraform-cdk/pull/3553)
- chore: add separate workflow for JSII upgrades [\#3552](https://github.com/hashicorp/terraform-cdk/pull/3552)
- chore(deps): pin trusted workflows based on HashiCorp TSCCR [\#3549](https://github.com/hashicorp/terraform-cdk/pull/3549)
- chore: Upgrade dependencies for util [\#3548](https://github.com/hashicorp/terraform-cdk/pull/3548)
- chore: Upgrade dependencies for util [\#3543](https://github.com/hashicorp/terraform-cdk/pull/3543)
- chore(deps): pin trusted workflows based on HashiCorp TSCCR [\#3534](https://github.com/hashicorp/terraform-cdk/pull/3534)
- chore: Upgrade dependencies for util [\#3533](https://github.com/hashicorp/terraform-cdk/pull/3533)
- chore: run doc conversions on one runner [\#3522](https://github.com/hashicorp/terraform-cdk/pull/3522)
- chore: Upgrade dependencies for cli [\#3517](https://github.com/hashicorp/terraform-cdk/pull/3517)
- chore: Upgrade dependencies for lib [\#3516](https://github.com/hashicorp/terraform-cdk/pull/3516)
- chore: update-project-board-issue calls different repo [\#3513](https://github.com/hashicorp/terraform-cdk/pull/3513)

</Release>

<Release version="v0.20.5" date="March 18, 2024" published="2024-03-18T12:23:55.000Z" url="https://github.com/hashicorp/terraform-cdk/releases/tag/v0.20.5">
### fix

- fix(lib): Correctly render string tokens that contain plain objects [\#3545](https://github.com/hashicorp/terraform-cdk/pull/3545)
- fix: hcl rendering nested maps [\#3536](https://github.com/hashicorp/terraform-cdk/pull/3536)
- fix(docs): Italics broken [\#3490](https://github.com/hashicorp/terraform-cdk/pull/3490)

### chore

- chore: fix typo [\#3553](https://github.com/hashicorp/terraform-cdk/pull/3553)
- chore: add separate workflow for JSII upgrades [\#3552](https://github.com/hashicorp/terraform-cdk/pull/3552)
- chore(deps): pin trusted workflows based on HashiCorp TSCCR [\#3549](https://github.com/hashicorp/terraform-cdk/pull/3549)
- chore: Upgrade dependencies for util [\#3548](https://github.com/hashicorp/terraform-cdk/pull/3548)
- chore: Upgrade dependencies for util [\#3543](https://github.com/hashicorp/terraform-cdk/pull/3543)
- chore(deps): pin trusted workflows based on HashiCorp TSCCR [\#3534](https://github.com/hashicorp/terraform-cdk/pull/3534)
- chore: Upgrade dependencies for util [\#3533](https://github.com/hashicorp/terraform-cdk/pull/3533)
- chore: run doc conversions on one runner [\#3522](https://github.com/hashicorp/terraform-cdk/pull/3522)
- chore: Upgrade dependencies for cli [\#3517](https://github.com/hashicorp/terraform-cdk/pull/3517)
- chore: Upgrade dependencies for lib [\#3516](https://github.com/hashicorp/terraform-cdk/pull/3516)
- chore: update-project-board-issue calls different repo [\#3513](https://github.com/hashicorp/terraform-cdk/pull/3513)

</Release>

<Release version="v0.20.4" date="February 26, 2024" published="2024-02-26T14:25:39.000Z" url="https://github.com/hashicorp/terraform-cdk/releases/tag/v0.20.4">
### fix

- fix: Make `CDKTF_LOG_FILE_DIRECTORY` a common flag available on all commands [\#3495](https://github.com/hashicorp/terraform-cdk/pull/3495)
- fix(cli): opening browser using CLI hangs the shell process forever [\#3480](https://github.com/hashicorp/terraform-cdk/pull/3480)

### chore

- chore: Upgrade dependencies for util [\#3518](https://github.com/hashicorp/terraform-cdk/pull/3518)
- chore: npm-check-updates && yarn upgrade [\#3511](https://github.com/hashicorp/terraform-cdk/pull/3511)
- chore: Upgrade dependencies for cli [\#3510](https://github.com/hashicorp/terraform-cdk/pull/3510)
- chore: Upgrade dependencies for lib [\#3509](https://github.com/hashicorp/terraform-cdk/pull/3509)
- chore: change schedule time to be before our week starts [\#3508](https://github.com/hashicorp/terraform-cdk/pull/3508)
- chore: Upgrade dependencies for cli [\#3507](https://github.com/hashicorp/terraform-cdk/pull/3507)
- chore: Upgrade dependencies for util [\#3506](https://github.com/hashicorp/terraform-cdk/pull/3506)
- chore: Upgrade dependencies for lib [\#3505](https://github.com/hashicorp/terraform-cdk/pull/3505)
- chore(deps): pin trusted workflows based on HashiCorp TSCCR [\#3504](https://github.com/hashicorp/terraform-cdk/pull/3504)
- chore: Upgrade dependencies for lib [\#3498](https://github.com/hashicorp/terraform-cdk/pull/3498)
- chore: Upgrade dependencies for util [\#3497](https://github.com/hashicorp/terraform-cdk/pull/3497)
- chore: Upgrade dependencies for cli [\#3496](https://github.com/hashicorp/terraform-cdk/pull/3496)
- chore: fix yarn upgrade for cdktf [\#3494](https://github.com/hashicorp/terraform-cdk/pull/3494)
- chore: Upgrade dependencies for cli [\#3493](https://github.com/hashicorp/terraform-cdk/pull/3493)
- chore: Upgrade dependencies for util [\#3492](https://github.com/hashicorp/terraform-cdk/pull/3492)
- chore(deps): pin trusted workflows based on HashiCorp TSCCR [\#3491](https://github.com/hashicorp/terraform-cdk/pull/3491)
- chore: bundle smaller packages together [\#3481](https://github.com/hashicorp/terraform-cdk/pull/3481)
- chore(deps): pin trusted workflows based on HashiCorp TSCCR [\#3479](https://github.com/hashicorp/terraform-cdk/pull/3479)
- chore: Upgrade dependencies for @cdktf/provider-schema [\#3476](https://github.com/hashicorp/terraform-cdk/pull/3476)
- chore: Upgrade dependencies for @cdktf/hcl2cdk [\#3475](https://github.com/hashicorp/terraform-cdk/pull/3475)
- chore: Upgrade dependencies for @cdktf/hcl2json [\#3474](https://github.com/hashicorp/terraform-cdk/pull/3474)
- chore: Upgrade dependencies for @cdktf/commons [\#3473](https://github.com/hashicorp/terraform-cdk/pull/3473)

</Release>

<Release version="v0.20.3" date="January 26, 2024" published="2024-01-26T13:55:33.000Z" url="https://github.com/hashicorp/terraform-cdk/releases/tag/v0.20.3">
### feat

- feat(cli): add console logs to better surface correct workflow for creating go projects [\#3466](https://github.com/hashicorp/terraform-cdk/pull/3466)
- feat(docs): Document how outdir works when passed to App and while using CDKTF CLI [\#3463](https://github.com/hashicorp/terraform-cdk/pull/3463)

### fix

- fix: corrected formating for java provider dependencies [\#3468](https://github.com/hashicorp/terraform-cdk/pull/3468)
- fix: Map keys not being quoted when they are not valid identifiers [\#3464](https://github.com/hashicorp/terraform-cdk/pull/3464)

### chore

- chore: Improve locals output - Group all locals into one locals block [\#3465](https://github.com/hashicorp/terraform-cdk/pull/3465)
- chore: Update HCL Interoperability docs to include HCL synthesis [\#3462](https://github.com/hashicorp/terraform-cdk/pull/3462)

</Release>

<Release version="v0.20.2" date="January 23, 2024" published="2024-01-23T13:48:35.000Z" url="https://github.com/hashicorp/terraform-cdk/releases/tag/v0.20.2">
### feat

- feat(provider-generator): support renaming provider names in order to allow using two providers sharing the same name at the same time [\#3442](https://github.com/hashicorp/terraform-cdk/pull/3442)
- feat(provider-generator): Ensure we have unique names for modules [\#3439](https://github.com/hashicorp/terraform-cdk/pull/3439)
- feat(docs): Mention Maven examples in note on project setup page [\#3437](https://github.com/hashicorp/terraform-cdk/pull/3437)

### fix

- fix(docs): Run prettier [\#3445](https://github.com/hashicorp/terraform-cdk/pull/3445)
- fix(lib): support dot-seperated nested accessors [\#3444](https://github.com/hashicorp/terraform-cdk/pull/3444)
- fix(docs): Update CLI docs to refer to Gradle instead of Maven [\#3434](https://github.com/hashicorp/terraform-cdk/pull/3434)
- fix(lib): Print a warning with manual steps to move a module when UpgradeIds aspect encounters modules [\#3432](https://github.com/hashicorp/terraform-cdk/pull/3432)
- fix(cli): don't prompt for providers during convert [\#3431](https://github.com/hashicorp/terraform-cdk/pull/3431)
- fix(lib): inline zip creation [\#3428](https://github.com/hashicorp/terraform-cdk/pull/3428)

### chore

- chore: Upgrade dependencies for @cdktf/hcl2cdk [\#3452](https://github.com/hashicorp/terraform-cdk/pull/3452)
- chore: Upgrade dependencies for @cdktf/hcl2json [\#3451](https://github.com/hashicorp/terraform-cdk/pull/3451)
- chore: Upgrade dependencies for @cdktf/provider-schema [\#3450](https://github.com/hashicorp/terraform-cdk/pull/3450)
- chore: Upgrade dependencies for @cdktf/commons [\#3449](https://github.com/hashicorp/terraform-cdk/pull/3449)
- chore: add CodeTabs component [\#3443](https://github.com/hashicorp/terraform-cdk/pull/3443)
- chore(docs): update stacks documentation [\#3440](https://github.com/hashicorp/terraform-cdk/pull/3440)
- chore: upgrade registry docs tool [\#3430](https://github.com/hashicorp/terraform-cdk/pull/3430)
- chore: Upgrade dependencies for @cdktf/commons [\#3424](https://github.com/hashicorp/terraform-cdk/pull/3424)
- chore(docs): fix currently-404 link to built-in templates [\#3418](https://github.com/hashicorp/terraform-cdk/pull/3418)
- chore: Rk/suggestions for error codes [\#3417](https://github.com/hashicorp/terraform-cdk/pull/3417)
- chore: fix updating script [\#3396](https://github.com/hashicorp/terraform-cdk/pull/3396)

</Release>

<Release version="v0.20.1" date="January 16, 2024" published="2024-01-16T15:50:23.000Z" url="https://github.com/hashicorp/terraform-cdk/releases/tag/v0.20.1">
**AWS Provider changes (breaking)**

The AWS pre-built provider for Go is currently too large to be installed due to a hard limit in Go. This release adds skipping the `statement` block in the `rule` block of the `aws_wafv2_web_acl` and `aws_wafv2_rule_group` resources. Our [resource docs page](https://developer.hashicorp.com/terraform/cdktf/concepts/resources#special-cases) previously already mentioned that these resources have skipped attributes but they weren't actually skipped. This almost doubled AWS provider bindings in size due to the recursive nature of the `statement` block.  
If you are using any of these two resources, the `statement` now has to be passed as a plain object instead and its keys have to be snake-cased (e.g. `and_statement` or `regex_match_statement`).

### feat

- feat(hcl2cdk): support import blocks in cdktf convert [\#3415](https://github.com/hashicorp/terraform-cdk/pull/3415)

### fix

- fix(provider-generator): Skip `statement` block for `rule` block in `aws_wafv2_web_acl` and `aws_wafv2_rule_group` resources [\#3414](https://github.com/hashicorp/terraform-cdk/pull/3414)
- fix(cli): Fix version range matching for 0.x version ranges with the ~> operator [\#3403](https://github.com/hashicorp/terraform-cdk/pull/3403)
- fix(docs): fix complex iterator example [\#3410](https://github.com/hashicorp/terraform-cdk/pull/3410)
- fix(docs): product relative links [\#3401](https://github.com/hashicorp/terraform-cdk/pull/3401)

### chore

- chore: Upgrade dependencies for @cdktf/provider-generator [\#3423](https://github.com/hashicorp/terraform-cdk/pull/3423)
- chore: break loop properly [\#3413](https://github.com/hashicorp/terraform-cdk/pull/3413)
- chore: abort rebase when retrying pushing doc updates [\#3412](https://github.com/hashicorp/terraform-cdk/pull/3412)
- chore: update registry docs tool [\#3407](https://github.com/hashicorp/terraform-cdk/pull/3407)
- chore: update registry docs tool [\#3406](https://github.com/hashicorp/terraform-cdk/pull/3406)
- chore: update provider docs tool [\#3404](https://github.com/hashicorp/terraform-cdk/pull/3404)

</Release>

<Release version="v0.20.0" date="January 10, 2024" published="2024-01-10T10:18:06.000Z" url="https://github.com/hashicorp/terraform-cdk/releases/tag/v0.20.0">
**Breaking changes**

### Module names / import paths changing

To resolve [\#3026](https://github.com/hashicorp/terraform-cdk/issues/3026) we improved the logic for generating names for [Terraform Modules](https://developer.hashicorp.com/terraform/cdktf/concepts/modules). This makes the default module names nicer, but also leads to breaking changes for Python, C#, and Java. When updating CDKTF, please generate the new bindings with `cdktf get` after updating the CLI and update your module imports.

### Removal of deprecated backends

We have removed deprecated backends artifactory, etcd, etcdv3, manta, and swift. CDK for Terraform v0.14 deprecated these backends initially. Terraform removed these backends in v1.3. For migration paths from these removed backends, refer to [Upgrading to Terraform v1.3](/terraform/language/v1.3.x/upgrade-guides).

### Python 3.7 is no longer supported

We have dropped support for Python 3.7, please update to Python 3.8 or higher.

### feat

- feat: Synthesis in HCL [\#3365](https://github.com/hashicorp/terraform-cdk/pull/3365)
- feat(lib): update backend options [\#3352](https://github.com/hashicorp/terraform-cdk/pull/3352)
- feat: add Terraform 1.6.5 to Docker image [\#3336](https://github.com/hashicorp/terraform-cdk/pull/3336)
- feat(docs): Add note to address having the same name as new Terraform stacks feature [\#3333](https://github.com/hashicorp/terraform-cdk/pull/3333)
- feat(lib): Add support for the built-in Terraform data resource [\#3317](https://github.com/hashicorp/terraform-cdk/pull/3317)
- feat(lib): add `.allWithMapKey` iterator to lists [\#3299](https://github.com/hashicorp/terraform-cdk/pull/3299)
- feat(lib): Add DynamicListTerraformIterator with support for lists or sets with objects that have properties that are only known at apply time [\#3273](https://github.com/hashicorp/terraform-cdk/pull/3273)
- feat(lib): allow chaining of TerraformIterator created resources [\#3272](https://github.com/hashicorp/terraform-cdk/pull/3272)
- feat(lib): add move workflows for specifying ids directly [\#3231](https://github.com/hashicorp/terraform-cdk/pull/3231)

### fix

- fix pipenv build [\#3364](https://github.com/hashicorp/terraform-cdk/pull/3364)
- fix(cli): Handle overlapping resource names in augmented logs [\#3343](https://github.com/hashicorp/terraform-cdk/pull/3343)
- fix: Terraform Modules relatively referencing each other with generated bindings [\#3341](https://github.com/hashicorp/terraform-cdk/pull/3341)
- fix(lib): respect AppOption.outdir before env var [\#3334](https://github.com/hashicorp/terraform-cdk/pull/3334)
- fix(provider-generator): use module name that does not collide commonly [\#3332](https://github.com/hashicorp/terraform-cdk/pull/3332)
- fix(lib): Fix handling of replaceTriggeredBy lifecycle attribute [\#3322](https://github.com/hashicorp/terraform-cdk/pull/3322)
- fix(cli): error message for non-existent tf cloud orgs [\#3308](https://github.com/hashicorp/terraform-cdk/pull/3308)
- fix(provider-generator): provided name does not need to match name in source [\#3305](https://github.com/hashicorp/terraform-cdk/pull/3305)
- fix(provider-generator): don't require attributes to be set on nested_type [\#3304](https://github.com/hashicorp/terraform-cdk/pull/3304)
- fix(lib): improve error messages for token resolution [\#3300](https://github.com/hashicorp/terraform-cdk/pull/3300)
- fix: Use unique names to see if Github filters can pick it up [\#3291](https://github.com/hashicorp/terraform-cdk/pull/3291)
- fix(tests): Update provider version in C# snapshot test [\#3289](https://github.com/hashicorp/terraform-cdk/pull/3289)
- fix: Use an additional results step to ensure dynamic matrix jobs can… [\#3288](https://github.com/hashicorp/terraform-cdk/pull/3288)
- fix(provider-generator): fix oci provider by skipping attributes that conflict after being camel cased [\#3285](https://github.com/hashicorp/terraform-cdk/pull/3285)
- fix(lib): expose `conditional` [\#3264](https://github.com/hashicorp/terraform-cdk/pull/3264)
- fix: lower cache usage by reusing more of the yarn caches [\#3162](https://github.com/hashicorp/terraform-cdk/pull/3162)

### chore

- chore: cd into dist/python [\#3400](https://github.com/hashicorp/terraform-cdk/pull/3400)
- chore: simplify python release [\#3399](https://github.com/hashicorp/terraform-cdk/pull/3399)
- chore: remove set in gh action script [\#3398](https://github.com/hashicorp/terraform-cdk/pull/3398)
- chore: fix python publishing [\#3397](https://github.com/hashicorp/terraform-cdk/pull/3397)
- chore: Upgrade dependencies for @cdktf/hcl2json [\#3392](https://github.com/hashicorp/terraform-cdk/pull/3392)
- chore: Upgrade dependencies for @cdktf/provider-schema [\#3391](https://github.com/hashicorp/terraform-cdk/pull/3391)
- chore: Upgrade dependencies for cdktf [\#3390](https://github.com/hashicorp/terraform-cdk/pull/3390)
- chore: Upgrade dependencies for @cdktf/cli-core [\#3389](https://github.com/hashicorp/terraform-cdk/pull/3389)
- chore: Upgrade dependencies for @cdktf/commons [\#3388](https://github.com/hashicorp/terraform-cdk/pull/3388)
- chore: Upgrade dependencies for @cdktf/provider-generator [\#3387](https://github.com/hashicorp/terraform-cdk/pull/3387)
- chore: set include-system-site-packages=true for python release [\#3386](https://github.com/hashicorp/terraform-cdk/pull/3386)
- chore: set include-system-site-packages=true for python release [\#3385](https://github.com/hashicorp/terraform-cdk/pull/3385)
- chore: activate virtual env in same shell [\#3384](https://github.com/hashicorp/terraform-cdk/pull/3384)
- chore(deps): pin trusted workflows based on HashiCorp TSCCR [\#3383](https://github.com/hashicorp/terraform-cdk/pull/3383)
- chore: use publib for releases [\#3382](https://github.com/hashicorp/terraform-cdk/pull/3382)
- chore: enable python virtual environment before releasing [\#3381](https://github.com/hashicorp/terraform-cdk/pull/3381)
- chore: run python tests in virtual env [\#3379](https://github.com/hashicorp/terraform-cdk/pull/3379)
- chore: npm-check-updates && yarn upgrade [\#3377](https://github.com/hashicorp/terraform-cdk/pull/3377)
- chore: Upgrade dependencies for @cdktf/commons [\#3375](https://github.com/hashicorp/terraform-cdk/pull/3375)
- chore: Upgrade dependencies for @cdktf/cli-core [\#3373](https://github.com/hashicorp/terraform-cdk/pull/3373)
- chore: Upgrade dependencies for cdktf [\#3371](https://github.com/hashicorp/terraform-cdk/pull/3371)
- chore: run prettier [\#3369](https://github.com/hashicorp/terraform-cdk/pull/3369)
- chore: update required python version in examples [\#3368](https://github.com/hashicorp/terraform-cdk/pull/3368)
- chore: use --break-system-packages to install pipenv and pipx globally [\#3367](https://github.com/hashicorp/terraform-cdk/pull/3367)
- chore: use activated virtual env in docker [\#3366](https://github.com/hashicorp/terraform-cdk/pull/3366)
- chore: update docker base image [\#3363](https://github.com/hashicorp/terraform-cdk/pull/3363)
- chore: fix aspects documentation [\#3362](https://github.com/hashicorp/terraform-cdk/pull/3362)
- chore: Use locally built bindings for ts provider doc example [\#3359](https://github.com/hashicorp/terraform-cdk/pull/3359)
- chore: add a subshell [\#3357](https://github.com/hashicorp/terraform-cdk/pull/3357)
- chore: full checkout and deal with empty lists [\#3356](https://github.com/hashicorp/terraform-cdk/pull/3356)
- chore: disable test for TF 1.5.5 [\#3354](https://github.com/hashicorp/terraform-cdk/pull/3354)
- chore: delete old branches before docs rollout [\#3353](https://github.com/hashicorp/terraform-cdk/pull/3353)
- chore(deps): pin trusted workflows based on HashiCorp TSCCR [\#3351](https://github.com/hashicorp/terraform-cdk/pull/3351)
- chore: Upgrade dependencies for @cdktf/provider-generator [\#3347](https://github.com/hashicorp/terraform-cdk/pull/3347)
- chore(deps): pin trusted workflows based on HashiCorp TSCCR [\#3346](https://github.com/hashicorp/terraform-cdk/pull/3346)
- chore: document correct environment variable [\#3344](https://github.com/hashicorp/terraform-cdk/pull/3344)
- chore: pin all dependencies [\#3340](https://github.com/hashicorp/terraform-cdk/pull/3340)
- chore: update CI to run against TF 1.6.5 and 1.5.5 [\#3338](https://github.com/hashicorp/terraform-cdk/pull/3338)
- chore: update CI to run against TF 1.5 and 1.4 [\#3335](https://github.com/hashicorp/terraform-cdk/pull/3335)
- chore: Upgrade dependencies for @cdktf/provider-generator [\#3330](https://github.com/hashicorp/terraform-cdk/pull/3330)
- chore: Upgrade dependencies for @cdktf/provider-schema [\#3324](https://github.com/hashicorp/terraform-cdk/pull/3324)
- chore: update terraform functions [\#3319](https://github.com/hashicorp/terraform-cdk/pull/3319)
- chore(provider-generator): fix typo in docstring [\#3316](https://github.com/hashicorp/terraform-cdk/pull/3316)
- chore: remove label action [\#3315](https://github.com/hashicorp/terraform-cdk/pull/3315)
- chore(tests): re-enable provider schema tests [\#3314](https://github.com/hashicorp/terraform-cdk/pull/3314)
- chore(lib): Formalize error messages in lib [\#3312](https://github.com/hashicorp/terraform-cdk/pull/3312)
- chore: ignore nx cache [\#3303](https://github.com/hashicorp/terraform-cdk/pull/3303)
- chore: re-enable operator example [\#3302](https://github.com/hashicorp/terraform-cdk/pull/3302)
- chore: remove reference to mergeLists [\#3301](https://github.com/hashicorp/terraform-cdk/pull/3301)
- chore(deps): pin trusted workflows based on HashiCorp TSCCR [\#3293](https://github.com/hashicorp/terraform-cdk/pull/3293)
- chore: Run all tests per PR unless skipped [\#3286](https://github.com/hashicorp/terraform-cdk/pull/3286)
- chore: remove tabs in documentation [\#3284](https://github.com/hashicorp/terraform-cdk/pull/3284)
- chore: Upgrade dependencies for @cdktf/hcl2json [\#3283](https://github.com/hashicorp/terraform-cdk/pull/3283)
- chore: Upgrade dependencies for @cdktf/commons [\#3282](https://github.com/hashicorp/terraform-cdk/pull/3282)
- chore(deps): pin trusted workflows based on HashiCorp TSCCR [\#3279](https://github.com/hashicorp/terraform-cdk/pull/3279)
- chore: add depcheck for cdktf lib [\#3276](https://github.com/hashicorp/terraform-cdk/pull/3276)
- chore: add depcheck for hcl2cdk [\#3275](https://github.com/hashicorp/terraform-cdk/pull/3275)
- chore: add depcheck for hcl2json [\#3274](https://github.com/hashicorp/terraform-cdk/pull/3274)
- chore: fix dependencies for provider packages [\#3271](https://github.com/hashicorp/terraform-cdk/pull/3271)
- chore: dependency check commons package [\#3270](https://github.com/hashicorp/terraform-cdk/pull/3270)
- chore: Upgrade dependencies for @cdktf/commons [\#3268](https://github.com/hashicorp/terraform-cdk/pull/3268)
- chore: Upgrade dependencies for @cdktf/provider-schema [\#3267](https://github.com/hashicorp/terraform-cdk/pull/3267)
- chore: Upgrade dependencies for @cdktf/cli-core [\#3266](https://github.com/hashicorp/terraform-cdk/pull/3266)
- chore: Upgrade dependencies for @cdktf/hcl2json [\#3265](https://github.com/hashicorp/terraform-cdk/pull/3265)
- chore(deps): pin trusted workflows based on HashiCorp TSCCR [\#3263](https://github.com/hashicorp/terraform-cdk/pull/3263)
- chore: update registry conversion tool [\#3261](https://github.com/hashicorp/terraform-cdk/pull/3261)
- chore: Upgrade dependencies for cdktf [\#3252](https://github.com/hashicorp/terraform-cdk/pull/3252)
- chore: Upgrade dependencies for @cdktf/cli-core [\#3244](https://github.com/hashicorp/terraform-cdk/pull/3244)

</Release>

<Release version="v0.19.2" date="November 30, 2023" published="2023-11-30T17:51:18.000Z" url="https://github.com/hashicorp/terraform-cdk/releases/tag/v0.19.2">
### feat

- feat(lib): add move workflows for specifying ids directly [\#3231](https://github.com/hashicorp/terraform-cdk/pull/3231)

### fix

- fix(provider-generator): fix oci provider by skipping attributes that conflict after being camel cased [\#3285](https://github.com/hashicorp/terraform-cdk/pull/3285)

</Release>

<Release version="v0.19.1" date="November 8, 2023" published="2023-11-08T09:30:42.000Z" url="https://github.com/hashicorp/terraform-cdk/releases/tag/v0.19.1">
### feat

- feat(cli): Include provider info in cdktf debug [\#3190](https://github.com/hashicorp/terraform-cdk/pull/3190)

### fix

- fix(cli): Don't send telemetry events if request body is larger than 8KB [\#3255](https://github.com/hashicorp/terraform-cdk/pull/3255)

### chore

- chore: disable provider schema tests [\#3257](https://github.com/hashicorp/terraform-cdk/pull/3257)
- chore: update cdktf version being used in documentation tool [\#3256](https://github.com/hashicorp/terraform-cdk/pull/3256)
- chore: fix provider-schema tests [\#3254](https://github.com/hashicorp/terraform-cdk/pull/3254)
- chore: update registry docs version [\#3249](https://github.com/hashicorp/terraform-cdk/pull/3249)
- chore: Upgrade dependencies for @cdktf/hcl2json [\#3248](https://github.com/hashicorp/terraform-cdk/pull/3248)
- chore: Upgrade dependencies for cdktf [\#3247](https://github.com/hashicorp/terraform-cdk/pull/3247)
- chore: Upgrade dependencies for @cdktf/provider-schema [\#3246](https://github.com/hashicorp/terraform-cdk/pull/3246)
- chore: Upgrade dependencies for @cdktf/provider-generator [\#3245](https://github.com/hashicorp/terraform-cdk/pull/3245)
- chore: Upgrade dependencies for @cdktf/commons [\#3241](https://github.com/hashicorp/terraform-cdk/pull/3241)
- chore: use no scope for commit message [\#3240](https://github.com/hashicorp/terraform-cdk/pull/3240)
- chore: run yarn upgrade per package [\#3212](https://github.com/hashicorp/terraform-cdk/pull/3212)
- chore: fix link to refactoring guide [\#3211](https://github.com/hashicorp/terraform-cdk/pull/3211)
- chore: add tags to jsii-terraform image [\#3210](https://github.com/hashicorp/terraform-cdk/pull/3210)
- chore(deps): pin trusted workflows based on HashiCorp TSCCR [\#3208](https://github.com/hashicorp/terraform-cdk/pull/3208)
- chore: add @cdktf/provider-schema tests to CI [\#3203](https://github.com/hashicorp/terraform-cdk/pull/3203)
- chore: update zod [\#3200](https://github.com/hashicorp/terraform-cdk/pull/3200)

</Release>

<Release version="v0.19.0" date="October 16, 2023" published="2023-10-16T18:38:36.000Z" url="https://github.com/hashicorp/terraform-cdk/releases/tag/v0.19.0">
**Breaking changes**

### Minimum required Node.js version updated to 18.12

Since the long-term support for Node.js 16 ended on 2023-09-11, we updated our minimum compatible Node.js version to 18.12.

### Potential provider naming collision with instance function `moveTo` on `TerraformResource`

We have added support for resource refactoring and renaming with the addition of the instance function `moveTo` on `TerraformResource`. We forsee the potential for naming collision with providers using `moveTo` as an attribute. In instances where provider bindings fail to compile due to the collision, regenerate your provider bindings and replace the provider related usage of `moveTo` to `moveToAttribute` in your configuration if applicable.

### Java: `codeMakerOutput` needs to be set to a company identifier

We did not honor the `codeMakerOutput` setting in the `cdktf.json` previously, this is fixed now.
To have no changes in the generated code you can set `codeMakerOutput: "imports"`.
If you like, you can now set it to your company name, e.g. `codeMakerOutput: "com.hashicorp"` so that the provider is generated under the `com.hashicorp.aws` namespace for example. Omitting the `codeMakerOutput` will lead to the default value `.gen` being used and results in an error.

### feat

- feat(lib): add resource move functionality [\#3152](https://github.com/hashicorp/terraform-cdk/pull/3152)
- feat: add import capabilities to cdktf [\#2972](https://github.com/hashicorp/terraform-cdk/pull/2972)
- feat!: update minimum required Node.js version to 18.12 (LTS) [\#3181](https://github.com/hashicorp/terraform-cdk/pull/3181)

### fix

- fix(provider-generator): java akamai provider generation [\#3185](https://github.com/hashicorp/terraform-cdk/pull/3185)
- fix: use codemaker output in java [\#3000](https://github.com/hashicorp/terraform-cdk/pull/3000)

### chore

- chore(examples): change debian image version in gcp example [\#3186](https://github.com/hashicorp/terraform-cdk/pull/3186)
- chore: upgrade node-pty dependency to add support for Node.js 20 [\#3182](https://github.com/hashicorp/terraform-cdk/pull/3182)
- chore(deps): pin trusted workflows based on HashiCorp TSCCR [\#3180](https://github.com/hashicorp/terraform-cdk/pull/3180)

</Release>

<Release version="v0.18.2" date="October 5, 2023" published="2023-10-05T10:14:29.000Z" url="https://github.com/hashicorp/terraform-cdk/releases/tag/v0.18.2">
Fixes a bug in 0.18.1 that broke crash reporting due to a partial dependency upgrade.

### fix

- fix: Fix partial dependency update for Sentry [\#3172](https://github.com/hashicorp/terraform-cdk/pull/3172)

</Release>

<Release version="v0.18.1" date="October 4, 2023" published="2023-10-04T10:54:42.000Z" url="https://github.com/hashicorp/terraform-cdk/releases/tag/v0.18.1">
### fix

- fix(docs): Fix typo in example of using TF*VAR* to set TerraformVariable [\#3116](https://github.com/hashicorp/terraform-cdk/pull/3116)
- fix(provider-generator): make sanitize comments function robust against diverse inputs [\#3131](https://github.com/hashicorp/terraform-cdk/pull/3131)
- fix(cli): fix help template spelling [\#3146](https://github.com/hashicorp/terraform-cdk/pull/3146)
- fix(cli): ensure terraform output fails with a proper error [\#3135](https://github.com/hashicorp/terraform-cdk/pull/3135)
- fix: make sure noColor option is honored [\#3138](https://github.com/hashicorp/terraform-cdk/pull/3138)
- fix(hcl2cdk): Try to fix TF checksum errors in tests by running them in band [\#3163](https://github.com/hashicorp/terraform-cdk/pull/3163)
- fix: use whl to install local python [\#3119](https://github.com/hashicorp/terraform-cdk/pull/3119)
- fix: fix Github workflow caches to restore successfully more often [\#3154](https://github.com/hashicorp/terraform-cdk/pull/3154)
- fix: set specific copywrite tool version to fix CI [\#3150](https://github.com/hashicorp/terraform-cdk/pull/3150)
- fix: unpin version of copywrite [\#3151](https://github.com/hashicorp/terraform-cdk/pull/3151)

### chore

- chore: Upgrade docker image to use Node 18 [\#3107](https://github.com/hashicorp/terraform-cdk/pull/3107)
- chore: fix passing additional providers [\#3092](https://github.com/hashicorp/terraform-cdk/pull/3092)
- chore(docs): fix grammar and spelling on Performance page [\#3098](https://github.com/hashicorp/terraform-cdk/pull/3098)
- chore: fix typo [\#3091](https://github.com/hashicorp/terraform-cdk/pull/3091)
- chore(cli): fixes typo (#3120) [\#3121](https://github.com/hashicorp/terraform-cdk/pull/3121)
- chore: fix typo in registry workflow [\#3100](https://github.com/hashicorp/terraform-cdk/pull/3100)
- chore: fix remove-waiting-on-answer workflow [\#3097](https://github.com/hashicorp/terraform-cdk/pull/3097)
- chore: ensure GitHub treats us as a TypeScript project [\#3099](https://github.com/hashicorp/terraform-cdk/pull/3099)
- chore: update registry tool [\#3101](https://github.com/hashicorp/terraform-cdk/pull/3101)
- chore: update dependencies for @cdktf/commons [\#3096](https://github.com/hashicorp/terraform-cdk/pull/3096)
- chore: update cdktf version [\#3090](https://github.com/hashicorp/terraform-cdk/pull/3090)
- chore: remove obsolete comment [\#3137](https://github.com/hashicorp/terraform-cdk/pull/3137)

### refactor

- refactor: move schema reading logic into package [\#3124](https://github.com/hashicorp/terraform-cdk/pull/3124)

</Release>

<Release version="v0.18.0" date="August 17, 2023" published="2023-08-17T12:35:00.000Z" url="https://github.com/hashicorp/terraform-cdk/releases/tag/v0.18.0">
### chore

- chore: Disable windows integration tests temporarily [\#3086](https://github.com/hashicorp/terraform-cdk/pull/3086)
- chore: update jsii-srcmak [\#3081](https://github.com/hashicorp/terraform-cdk/pull/3081)
- chore: fix assertion of java tests [\#3079](https://github.com/hashicorp/terraform-cdk/pull/3079)
- chore: add wget [\#3075](https://github.com/hashicorp/terraform-cdk/pull/3075)
- chore: use gh cli to create PRs [\#3074](https://github.com/hashicorp/terraform-cdk/pull/3074)
- chore(deps): roll back trusted workflow updates [\#3073](https://github.com/hashicorp/terraform-cdk/pull/3073)
- chore: add gradle as a dependency for our tests [\#3066](https://github.com/hashicorp/terraform-cdk/pull/3066)
- chore: new lookup functionality changes assertion [\#3065](https://github.com/hashicorp/terraform-cdk/pull/3065)
- chore: update terraform versions we test again [\#3064](https://github.com/hashicorp/terraform-cdk/pull/3064)
- chore: add link to performance page [\#3060](https://github.com/hashicorp/terraform-cdk/pull/3060)
- chore(examples): update TS examples to use explicit imports [\#3053](https://github.com/hashicorp/terraform-cdk/pull/3053)
- chore: update tfe docs as well [\#3050](https://github.com/hashicorp/terraform-cdk/pull/3050)
- chore: remove waiting-on-answer label on comments [\#3046](https://github.com/hashicorp/terraform-cdk/pull/3046)
- chore(deps): pin trusted workflows based on HashiCorp TSCCR [\#3040](https://github.com/hashicorp/terraform-cdk/pull/3040)
- chore: add workflow to rollout provider documentation [\#3039](https://github.com/hashicorp/terraform-cdk/pull/3039)
- chore: clean up code a bit [\#3037](https://github.com/hashicorp/terraform-cdk/pull/3037)
- chore: fix links in README [\#3016](https://github.com/hashicorp/terraform-cdk/pull/3016)

### fix

- fix: provider add java integration test failures due to test setup [\#3083](https://github.com/hashicorp/terraform-cdk/pull/3083)
- fix: Gradle related provider add/list/upgrade [\#3080](https://github.com/hashicorp/terraform-cdk/pull/3080)
- fix(cli): cdktf debug to read gradle package versions [\#3077](https://github.com/hashicorp/terraform-cdk/pull/3077)
- fix(provider-generator): Handle \*/ in docstrings better, try 3 [\#3076](https://github.com/hashicorp/terraform-cdk/pull/3076)
- fix(lib): improve error message for passing an app to a construct [\#3062](https://github.com/hashicorp/terraform-cdk/pull/3062)
- fix(tests): remove only in test suite :sweat_smile: [\#3055](https://github.com/hashicorp/terraform-cdk/pull/3055)
- fix: install pipenv in Docker [\#3052](https://github.com/hashicorp/terraform-cdk/pull/3052)
- fix: install python3-venv and pin base image [\#3049](https://github.com/hashicorp/terraform-cdk/pull/3049)
- fix: correctly handle if version constraint is defined as star [\#3045](https://github.com/hashicorp/terraform-cdk/pull/3045)
- fix: fix single quote escaping [\#3018](https://github.com/hashicorp/terraform-cdk/pull/3018)
- fix(hcl2cdk): correctly keep escape sequences for interpolations in template expressions [\#3017](https://github.com/hashicorp/terraform-cdk/pull/3017)
- fix(examples): Properly set the Aspect on the stack instead of on the S3Bucket only [\#3003](https://github.com/hashicorp/terraform-cdk/pull/3003)

### feat

- feat(hcl2cdk): use Fn.lookupNested() instead of propertyAccess() [\#3056](https://github.com/hashicorp/terraform-cdk/pull/3056)
- feat(cli): move java template to gradle [\#3048](https://github.com/hashicorp/terraform-cdk/pull/3048)
- feat(cli): support gradle projects in provider add and list [\#3047](https://github.com/hashicorp/terraform-cdk/pull/3047)
- feat(docs): Link Registry docs blog post [\#3043](https://github.com/hashicorp/terraform-cdk/pull/3043)
- feat: remove root-level import of all modules in python [\#3030](https://github.com/hashicorp/terraform-cdk/pull/3030)
- feat(provider-generator): handle 'tuple' type for variable [\#2964](https://github.com/hashicorp/terraform-cdk/pull/2964)

**Breaking changes**

### Python performance improvements disable root-level provider imports

When using a Provider in python one could previously import the resource and data source namespaces on the root level. This is no longer possible and the namespaces must be imported through specifying the paht in the import. The syntax was supported before as well, so you can change your code within `0.17.x` and then upgrade to `0.18.x`.

Before:

```python
from constructs import Construct
from cdktf import App, TerraformStack
from imports.aws import provider, sns_topic, lambda_function, iam_role

class MyStack(TerraformStack):
    def __init__(self, scope: Construct, ns: str):
        super().__init__(scope, ns)

        provider.AwsProvider(self, 'Aws', region='eu-central-1')

        sns_topic.SnsTopic(self, 'Topic', display_name='my-first-sns-topic')
        role = iam_role.IamRole(self, 'Role', name='lambda-role',
                       assume_role_policy='{}')
        lambda_function.LambdaFunction(self, 'Lambda', function_name='my-first-lambda-function',
                       role=role.arn, handler='index.handler', runtime='python3.6')

app = App()
MyStack(app, "before-change")
app.synth()
```

After:

```python
from constructs import Construct
from cdktf import App, TerraformStack
from imports.aws.provider import AwsProvider
from imports.aws.sns_topic import SnsTopic
from imports.aws.lambda_function import LambdaFunction
from imports.aws.iam_role import IamRole

class MyStack(TerraformStack):
    def __init__(self, scope: Construct, ns: str):
        super().__init__(scope, ns)

        AwsProvider(self, 'Aws', region='eu-central-1')

        SnsTopic(self, 'Topic', display_name='my-first-sns-topic')
        role = IamRole(self, 'Role', name='lambda-role',
                       assume_role_policy='{}')
        LambdaFunction(self, 'Lambda', function_name='my-first-lambda-function',
                       role=role.arn, handler='index.handler', runtime='python3.6')


app = App()
MyStack(app, "after-change")
app.synth()
```

</Release>

<Pagination page="1" total-pages="5" total-items="100" next="https://releases.sh/hashicorp/cdk-for-terraform.md?page=2" />
