-
Notifications
You must be signed in to change notification settings - Fork 3.9k
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
refactor: update enum types to remove duplicate member values #19320
Conversation
CDK has some enums which use the same value for different enum members. This is done to support friendly names for EC2 instance and Subnet type. Having same value for differnt members causes the typescript compiler to ignore the members with same value and causes JSII not to generate the enum members in other languages. To fix this [JSII will throw an error](aws/jsii#3412) when enum members have the same value. Updating CDK code to ensure the build pass when this change lands in JSII re #aws/jsii#3412
…al (#3412) If two enum members have the same value, only the first one will be retained. This is a bit of an issue as we are renaming enum members: the named version will never appear in the assembly, and so not work over jsii. What's worse, if we deprecate-and-strip the original one, neither of the enum members will appear. Addressing the issue by failing the compilation by adding validation for enum values Related change in CDK aws/aws-cdk#19320 Fixes #2782. --- By submitting this pull request, I confirm that my contribution is made under the terms of the [Apache 2.0 license]. [Apache 2.0 license]: https://www.apache.org/licenses/LICENSE-2.0
@Mergifyio backport main |
🟠 Waiting for conditions to match
|
Thank you for contributing! Your pull request will be updated from main and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork). |
AWS CodeBuild CI Report
Powered by github-codebuild-logs, available on the AWS Serverless Application Repository |
Thank you for contributing! Your pull request will be updated from main and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork). |
CDK has some enums which use the same value for different enum members. This is done to support friendly names for EC2 instance and Subnet type. Having same value for differnt members causes the typescript compiler to ignore the members with same value and causes JSII not to generate the enum members in other languages. To fix this [JSII will throw an error](aws/jsii#3412) when enum members have the same value. Updating CDK code to ensure the build pass when this change lands in JSII re #aws/jsii#3412 ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* (cherry picked from commit b0346a4) # Conflicts: # packages/@aws-cdk/aws-ec2/lib/vpc.ts # packages/@aws-cdk/aws-ec2/lib/windows-versions.ts
✅ Backports have been created
|
#19320) (#20932) This is an automatic backport of pull request #19320 done by [Mergify](https://mergify.com). Cherry-pick of b0346a4 has failed: ``` On branch mergify/bp/main/pr-19320 Your branch is up to date with 'origin/main'. You are currently cherry-picking commit b0346a4. (fix conflicts and run "git cherry-pick --continue") (use "git cherry-pick --skip" to skip this patch) (use "git cherry-pick --abort" to cancel the cherry-pick operation) Changes to be committed: modified: packages/@aws-cdk/aws-ec2/lib/instance-types.ts modified: packages/@aws-cdk/aws-ec2/lib/machine-image.ts modified: packages/@aws-cdk/aws-ec2/lib/port.ts modified: packages/@aws-cdk/aws-ec2/lib/util.ts modified: packages/@aws-cdk/aws-ec2/test/instance.test.ts Unmerged paths: (use "git add <file>..." to mark resolution) both modified: packages/@aws-cdk/aws-ec2/lib/vpc.ts both modified: packages/@aws-cdk/aws-ec2/lib/windows-versions.ts ``` To fix up this pull request, you can check it out locally. See documentation: https://docs.github.com/en/github/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally --- <details> <summary>Mergify commands and options</summary> <br /> More conditions and actions can be found in the [documentation](https://docs.mergify.com/). You can also trigger Mergify actions by commenting on this pull request: - `@Mergifyio refresh` will re-evaluate the rules - `@Mergifyio rebase` will rebase this PR on its base branch - `@Mergifyio update` will merge the base branch into this PR - `@Mergifyio backport <destination>` will backport this PR on `<destination>` branch Additionally, on Mergify [dashboard](https://dashboard.mergify.com/) you can: - look at your merge queues - generate the Mergify configuration with the config editor. Finally, you can contact us on https://mergify.com </details>
This is a follow-up to #19320: there are more duplicate enum values that need to be removed, in anticipation of a jsii release that will make these duplicate values illegal.
This is a follow-up to #19320: there are more duplicate enum values that need to be removed, in anticipation of a jsii release that will make these duplicate values illegal. ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
This is a follow-up to #19320: there are more duplicate enum values that need to be removed, in anticipation of a jsii release that will make these duplicate values illegal. ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* (cherry picked from commit 7f4f150) # Conflicts: # packages/@aws-cdk/aws-secretsmanager/lib/secret.ts
aws#19320) (aws#20932) This is an automatic backport of pull request aws#19320 done by [Mergify](https://mergify.com). Cherry-pick of b0346a4 has failed: ``` On branch mergify/bp/main/pr-19320 Your branch is up to date with 'origin/main'. You are currently cherry-picking commit b0346a4. (fix conflicts and run "git cherry-pick --continue") (use "git cherry-pick --skip" to skip this patch) (use "git cherry-pick --abort" to cancel the cherry-pick operation) Changes to be committed: modified: packages/@aws-cdk/aws-ec2/lib/instance-types.ts modified: packages/@aws-cdk/aws-ec2/lib/machine-image.ts modified: packages/@aws-cdk/aws-ec2/lib/port.ts modified: packages/@aws-cdk/aws-ec2/lib/util.ts modified: packages/@aws-cdk/aws-ec2/test/instance.test.ts Unmerged paths: (use "git add <file>..." to mark resolution) both modified: packages/@aws-cdk/aws-ec2/lib/vpc.ts both modified: packages/@aws-cdk/aws-ec2/lib/windows-versions.ts ``` To fix up this pull request, you can check it out locally. See documentation: https://docs.github.com/en/github/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally --- <details> <summary>Mergify commands and options</summary> <br /> More conditions and actions can be found in the [documentation](https://docs.mergify.com/). You can also trigger Mergify actions by commenting on this pull request: - `@Mergifyio refresh` will re-evaluate the rules - `@Mergifyio rebase` will rebase this PR on its base branch - `@Mergifyio update` will merge the base branch into this PR - `@Mergifyio backport <destination>` will backport this PR on `<destination>` branch Additionally, on Mergify [dashboard](https://dashboard.mergify.com/) you can: - look at your merge queues - generate the Mergify configuration with the config editor. Finally, you can contact us on https://mergify.com </details>
This is a follow-up to aws#19320: there are more duplicate enum values that need to be removed, in anticipation of a jsii release that will make these duplicate values illegal. ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
In #19320, we changed the values of deprecated enums to include a `Deprecated_` prefix. This also meant we had to do some gymnastics in the code to change usages of the value to a switch case. However, there were also places in the code that do enum comparison, which uses the enum value. Those comparison points need to also explicitly consider the equivalent deprecated enums. Fixes #21131, Fixes #21138 ---- ### All Submissions: * [ ] Have you followed the guidelines in our [Contributing guide?](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md) ### Adding new Unconventional Dependencies: * [ ] This PR adds new unconventional dependencies following the process described [here](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md/#adding-new-unconventional-dependencies) ### New Features * [ ] Have you added the new feature to an [integration test](https://github.com/aws/aws-cdk/blob/main/INTEGRATION_TESTS.md)? * [ ] Did you use `yarn integ` to deploy the infrastructure and generate the snapshot (i.e. `yarn integ` without `--dry-run`)? *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
In #19320, we changed the values of deprecated enums to include a `Deprecated_` prefix. This also meant we had to do some gymnastics in the code to change usages of the value to a switch case. However, there were also places in the code that do enum comparison, which uses the enum value. Those comparison points need to also explicitly consider the equivalent deprecated enums. Fixes #21131, Fixes #21138 ---- ### All Submissions: * [ ] Have you followed the guidelines in our [Contributing guide?](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md) ### Adding new Unconventional Dependencies: * [ ] This PR adds new unconventional dependencies following the process described [here](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md/#adding-new-unconventional-dependencies) ### New Features * [ ] Have you added the new feature to an [integration test](https://github.com/aws/aws-cdk/blob/main/INTEGRATION_TESTS.md)? * [ ] Did you use `yarn integ` to deploy the infrastructure and generate the snapshot (i.e. `yarn integ` without `--dry-run`)? *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* (cherry picked from commit 0b5123a)
CDK has some enums which use the same value for different enum members. This is done to support friendly names for EC2 instance and Subnet type. Having same value for differnt members causes the typescript compiler to ignore the members with same value and causes JSII not to generate the enum members in other languages. To fix this JSII will throw an error when enum members have the same value. Updating CDK code to ensure the build pass when this change lands in JSII
re #aws/jsii#3412
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license