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

refactor: update enum types to remove duplicate member values #19320

Merged
merged 7 commits into from
Jun 30, 2022

Conversation

yuth
Copy link
Contributor

@yuth yuth commented Mar 10, 2022

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

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
@gitpod-io
Copy link

gitpod-io bot commented Mar 10, 2022

@yuth yuth marked this pull request as ready for review March 11, 2022 15:34
@mergify mergify bot added the contribution/core This is a PR that came from AWS. label Mar 18, 2022
mergify bot pushed a commit to aws/jsii that referenced this pull request Jun 29, 2022
…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
@rix0rrr rix0rrr changed the base branch from v1-main to main June 30, 2022 08:04
@github-actions github-actions bot added the p2 label Jun 30, 2022
@rix0rrr rix0rrr changed the base branch from main to v1-main June 30, 2022 08:04
@rix0rrr
Copy link
Contributor

rix0rrr commented Jun 30, 2022

@Mergifyio backport main

@mergify
Copy link
Contributor

mergify bot commented Jun 30, 2022

backport main

🟠 Waiting for conditions to match

  • merged [:pushpin: backport requirement]

@mergify
Copy link
Contributor

mergify bot commented Jun 30, 2022

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-cdk-automation
Copy link
Collaborator

AWS CodeBuild CI Report

  • CodeBuild project: AutoBuildProject89A8053A-LhjRyN9kxr8o
  • Commit ID: fdefb39
  • 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 b0346a4 into aws:v1-main Jun 30, 2022
@mergify
Copy link
Contributor

mergify bot commented Jun 30, 2022

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

mergify bot pushed a commit that referenced this pull request Jun 30, 2022
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
@mergify
Copy link
Contributor

mergify bot commented Jun 30, 2022

backport main

✅ Backports have been created

mergify bot added a commit that referenced this pull request Jun 30, 2022
#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>
rix0rrr added a commit that referenced this pull request Jul 4, 2022
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.
mergify bot pushed a commit that referenced this pull request Jul 4, 2022
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*
mergify bot pushed a commit that referenced this pull request Jul 4, 2022
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
daschaa pushed a commit to daschaa/aws-cdk that referenced this pull request Jul 9, 2022
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>
daschaa pushed a commit to daschaa/aws-cdk that referenced this pull request Jul 9, 2022
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*
mergify bot pushed a commit that referenced this pull request Jul 14, 2022
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*
mergify bot pushed a commit that referenced this pull request Jul 14, 2022
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)
@HBobertz HBobertz mentioned this pull request Nov 10, 2022
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
@aws-cdk/aws-ec2 Related to Amazon Elastic Compute Cloud contribution/core This is a PR that came from AWS. p2
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants