Skip to content

fix(aws-cdk-migration): Construct imports not rewritten#17931

Merged
mergify[bot] merged 3 commits intomasterfrom
njlynch/migrate-rewrite-constructs
Dec 10, 2021
Merged

fix(aws-cdk-migration): Construct imports not rewritten#17931
mergify[bot] merged 3 commits intomasterfrom
njlynch/migrate-rewrite-constructs

Conversation

@njlynch
Copy link
Copy Markdown
Contributor

@njlynch njlynch commented Dec 9, 2021

The rewrite-imports-v2 tool is used to rewrite imports from CDK v1 apps and
libraries to CDK v2 compliant imports. The initial launch of this tool focused
solely on the conversion of CDKv1 to CDKv2 imports, but ignored the complexity
of 'constructs` now being used as its own independent library and the lack of
the Construct compatibility layer from v2.

This fix introduces rewrites for Constructs. All IConstruct and Construct
imports will be converted from @aws-cdk/core to constructs, and any
qualified references (e.g., cdk.Construct) will be renamed as well (e.g.,
constructs.Construct). Imports of the construct library will be added as
needed.

fixes #17826

Implementation note:
Apologies for the diff. The best way to be able to recursively visit the tree involved
converting the existing, simple ts.visitNode() approach to a
TransformerFactory-based approach so ts.visitEachChild() could be used. This
required a few method moves and the creation of a class to hold some context.


By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license

The `rewrite-imports-v2` tool is used to rewrite imports from CDK v1 apps and
libraries to CDK v2 compliant imports. The initial launch of this tool focused
solely on the conversion of CDKv1 to CDKv2 imports, but ignored the complexity
of 'constructs` now being used as its own independent library and the lack of
the Construct compatibility layer from v2.

This fix introduces rewrites for Constructs. All `IConstruct` and `Construct`
imports will be converted from `@aws-cdk/core` to `constructs`, and any
qualified references (e.g., `cdk.Construct`) will be renamed as well (e.g.,
`constructs.Construct`). Imports of the construct library will be added as
needed.

fixes #17826
@njlynch njlynch requested a review from a team December 9, 2021 18:02
@njlynch njlynch self-assigned this Dec 9, 2021
@gitpod-io
Copy link
Copy Markdown

gitpod-io bot commented Dec 9, 2021

@github-actions github-actions bot added the aws-cdk-lib Related to the aws-cdk-lib package label Dec 9, 2021
@mergify mergify bot added the contribution/core This is a PR that came from AWS. label Dec 9, 2021
@mergify
Copy link
Copy Markdown
Contributor

mergify bot commented Dec 10, 2021

Thank you for contributing! Your pull request will be updated from master and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork).

@aws-cdk-automation
Copy link
Copy Markdown
Collaborator

AWS CodeBuild CI Report

  • CodeBuild project: AutoBuildProject89A8053A-LhjRyN9kxr8o
  • Commit ID: 3d94b8c
  • Result: SUCCEEDED
  • Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

@mergify mergify bot merged commit f02fcb4 into master Dec 10, 2021
@mergify mergify bot deleted the njlynch/migrate-rewrite-constructs branch December 10, 2021 13:00
@mergify
Copy link
Copy Markdown
Contributor

mergify bot commented Dec 10, 2021

Thank you for contributing! Your pull request will be updated from master and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork).

TikiTDO pushed a commit to TikiTDO/aws-cdk that referenced this pull request Feb 21, 2022
The `rewrite-imports-v2` tool is used to rewrite imports from CDK v1 apps and
libraries to CDK v2 compliant imports. The initial launch of this tool focused
solely on the conversion of CDKv1 to CDKv2 imports, but ignored the complexity
of 'constructs` now being used as its own independent library and the lack of
the Construct compatibility layer from v2.

This fix introduces rewrites for Constructs. All `IConstruct` and `Construct`
imports will be converted from `@aws-cdk/core` to `constructs`, and any
qualified references (e.g., `cdk.Construct`) will be renamed as well (e.g.,
`constructs.Construct`). Imports of the construct library will be added as
needed.

fixes aws#17826

_Implementation note:_
Apologies for the diff. The best way to be able to recursively visit the tree involved
converting the existing, simple `ts.visitNode()` approach to a
`TransformerFactory`-based approach so `ts.visitEachChild()` could be used. This
required a few method moves and the creation of a class to hold some context.

----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

aws-cdk-lib Related to the aws-cdk-lib package contribution/core This is a PR that came from AWS.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

(aws-cdk-migration): Construct imports not rewritten

3 participants