Skip to content

fix(imagebuilder): AmiDistributionConfiguration renders empty #20045

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

Merged
merged 1 commit into from
Apr 22, 2022

Conversation

rix0rrr
Copy link
Contributor

@rix0rrr rix0rrr commented Apr 22, 2022

Certain fields of the ImageBuilder service used to be typed as
Json (i.e., arbitrary data).

  • In TypeScript, you would pass that data as an object literal with
    capitalized properties.
  • In Python, you would pass it as a dict
  • In Java, you would pass it as a HashMap
  • etc

In the new CloudFormation spec, it is now typed as a struct. This
adds type information that didn't use to be there. CDK now generates
classes for it.

  • In TypeScript, you must now pass an object literal with
    lowercased properties.
  • In Python, you must now pass it as an instance of a class.
  • In Java, you must now use a builder to construct the object.

Because of this, adding types to properties is a breaking change to the
L1 layer. If you don't pass the information correctly, an empty object
comes out the other end, probably not rendering what you expected.

This is disastrous for construct libraries that are using L1s, as they
are not in control when users upgrade their libraries but they may all
of a sudden be broken with no recourse. Case in point:
ParallelCluster3


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

Certain fields of the `ImageBuilder` service used to be typed as
`Json` (i.e., arbitrary data).

- In TypeScript, you would pass that data as an object literal with
  *capitalized* properties.
- In Python, you would pass it as a `dict`
- In Java, you would pass it as a `HashMap`
- etc

In the new CloudFormation spec, it is now typed as a struct. This
adds type information that didn't use to be there. CDK now generates
classes for it.

- In TypeScript, you must now pass an object literal with
  *lowercased* properties.
- In Python, you must now pass it as an instance of a class.
- In Java, you must now use a builder to construct the object.

Because of this, adding types to properties is a breaking change to the
L1 layer. If you don't pass the information correctly, an empty object
comes out the other end, probably not rendering what you expected.

This is disastrous for construct libraries that are using L1s, as they
are not in control when users upgrade their libraries but they may all
of a sudden be broken with no recourse. Case in point:
[ParallelCluster3](https://github.com/aws/aws-parallelcluster)
@rix0rrr rix0rrr added the p0 label Apr 22, 2022
@rix0rrr rix0rrr requested a review from a team April 22, 2022 19:44
@rix0rrr rix0rrr self-assigned this Apr 22, 2022
@gitpod-io
Copy link

gitpod-io bot commented Apr 22, 2022

@github-actions github-actions bot added p2 and removed p0 labels Apr 22, 2022
@aws-cdk-automation aws-cdk-automation requested a review from a team April 22, 2022 19:44
@mergify mergify bot added the contribution/core This is a PR that came from AWS. label Apr 22, 2022
@rix0rrr rix0rrr added pr-linter/exempt-test The PR linter will not require test changes pr-linter/exempt-integ-test The PR linter will not require integ test changes labels Apr 22, 2022
@rix0rrr rix0rrr added the p0 label Apr 22, 2022
@kaizencc kaizencc removed the p2 label Apr 22, 2022
@aws-cdk-automation
Copy link
Collaborator

AWS CodeBuild CI Report

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

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

@mergify
Copy link
Contributor

mergify bot commented Apr 22, 2022

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

@mergify mergify bot merged commit 7bd7139 into master Apr 22, 2022
@mergify mergify bot deleted the huijbers/revert-imagebuilder branch April 22, 2022 20:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
contribution/core This is a PR that came from AWS. p0 pr-linter/exempt-integ-test The PR linter will not require integ test changes pr-linter/exempt-test The PR linter will not require test changes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants