Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 3 commits into from
Dec 10, 2021

Conversation

njlynch
Copy link
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

Verified

This commit was signed with the committer’s verified signature.
yyx990803 Evan You
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

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
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
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
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