Breaking Changes
Namespaced AWS Provider Resources #1248
We iterated on the namespacing for the AWS provider which got introduced in #1101. Our goal was, to enable custom L2 / L3 abstractions being built with jsii, improve the general jsii support for the namespacing and last but not least to allow both namespace and barrel imports in Typescript. A welcome side effect is a 5x performance gain when building packages via jsii for Python (from ~ 16 minutes to ~ 3 minutes) and likely other targets such as Java or C#
As a result, there are a few minor breaking changes:
- Namespaces are all lowercased now, without a separating character
- Namespaces are all a single word now (e.g.
DynamoDb
used to bedynamo_db
in Python - it's now justdynamodb
) CloudwatchEventBridge
namespace got renamed toeventbridge
Typescript Example
Before
This was pretty much the only way to use the namespaced provider classes.
import { CloudFront } from "@cdktf/provider-aws";
new CloudFront.CloudfrontDistribution(this, "cloudfront", {});
After
Now it's possible to either import the entire namespace, or a resource class directly.
// Similar to before, but namespace is lowercased
import { cloudfront } from "@cdktf/provider-aws";
new cloudfront.CloudfrontDistribution(this, "cloudfront", {});
// new option
import { CloudfrontDistribution } from "@cdktf/provider-aws/lib/cloudfront";
new CloudfrontDistribution(this, "cloudfront", {});
See this Pull Request for more details.
Other Changes
fix
- fix(provider-generator): Fix private registry module generation #1361
- fix(lib): Fix incorrect parseInt casing #1359
- fix(lib): fix documentation link for lookup #1347
- fix(provider-generator): Mutating complex objects #1331
- fix(provider-generator): attributes on resources should not be undefined #1310
- fix(examples): Make sure we're using pipenv #1272
- fix(lib): Increased --max-old-space-size value #1265
- fix(examples): temporarily set fixed AWS provider version for Java #1261
- fix(cli): fix bug that required cdktf.json in parent directory when running convert #1256
- fix(provider-generator): escape hyphens in provider names for Go package identifiers #1252
- fix(lib): Rework AWS Provider Namespacing #1248
- fix(lib): escape newlines in terraform functions #1233
- fix(lib): Also separate Token Map and symbols for interoperability with AWS CDK Tokens #1176
- fix(release): only include prs since last version in the changelog #1171
chore
- chore(docs): Fix broken anchor links #1345
- chore(docs): link and layout fixes #1344
- chore(docs): document list escape hatches #1342
- chore(tests): remove jsii version from snapshot #1341
- chore(docs): Add constructs documentation to website #1338
- chore(deps): upgrade jsii versions and unpin AWS TF provider version for Java example #1336
- chore(docs): Move examples up in sidebar, list out tutorials #1291
- chore(deps): yarn upgrade #1283
- chore(cli): upgrade React version #1259
- chore(release): Pre-releases should use next version #1257
- chore(docs): Fix docs nits like images, headings, and contractions #1245
- chore(deps): remove obsolete dependency
json-schema-to-typescript
#1232 - chore(deps): fix dependabot config #1220
- chore(deps): re-enable dependabot #1219
- chore(docs): document escape hatch for dynamic blocks #1215
- chore(docs): copy over aspects #1214
- chore(docs): revert link change #1177
- chore(docs): Laura fix docs nits #1172
- chore(examples): Use AWS provider 3.0 #1155
Other
- chore: add website release automation #1255
- fix: Fix EC2 Instance creation example #1254
- fix: Minor typo in error message about missing providers #1240
feat
- feat(cli): use ts-node to compile main.ts #1253
- feat(docs): add link to new deploy apps tutorial #1236
- feat(lib): Add
staticId
option to TerraformOutput (uses construct id as synthesized output name)" #1213 - feat(lib): throw error when a token is used in a construct name #1181
- feat(hcl2cdk): document providers with missing type information #1174
- feat(lib): Expand Output value types #1145