-
Notifications
You must be signed in to change notification settings - Fork 4k
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(cli): stop cli argument defaults from overriding cdk.json settings #21891
fix(cli): stop cli argument defaults from overriding cdk.json settings #21891
Conversation
Linter fails saying a fix should make a change to a test file, unfortunately there was no test file that tests command-line parsing and integration with cdk.json. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The pull request linter has failed. See the aws-cdk-automation comment below for failure reasons. If you believe this pull request should receive an exemption, please comment and provide a justification.
Running through the test pipeline. |
AWS CodeBuild CI Report
Powered by github-codebuild-logs, available on the AWS Serverless Application Repository |
This PR has been in the CHANGES REQUESTED state for 3 weeks, and looks abandoned. To keep this PR from being closed, please continue work on it. If not, it will automatically be closed in a week. |
This PR has been deemed to be abandoned, and will be automatically closed. Please create a new PR for these changes if you think this decision has been made in error. |
The pull request linter fails with the following errors:
PRs must pass status checks before we can provide a meaningful review. |
Could we get this reopened? |
Previously, pathMetadata, assetMetadata, debug and staging could not be set in `cdk.json` as command-line parameters defaults would always overwrite this. In particular, this `cdk.json` would be ignored: ``` { "app": "npx ts-node --prefer-ts-exts bin/example", ... "pathMetadata": false, "assetMetadata": false } ``` The issue is this piece of code: ``` this.settings = this.defaultConfig .merge(userConfig) .merge(this.projectConfig) .merge(this.commandLineArguments) .makeReadOnly(); ``` `commandLineArguments` returns true for the above mentioned options. This commit is a copy of aws#21891 which fell through the cracks, so I'm picking up as this can potentially cause outages to resources that have drift under the hood, and adding metadata looks like an `Update` operation to CloudFormation.
Previously, pathMetadata, assetMetadata, debug and staging could not be set in `cdk.json` as command-line parameters defaults would always overwrite this. In particular, this `cdk.json` would be ignored: ``` { "app": "npx ts-node --prefer-ts-exts bin/example", ... "pathMetadata": false, "assetMetadata": false } ``` The issue is this piece of code: ``` this.settings = this.defaultConfig .merge(userConfig) .merge(this.projectConfig) .merge(this.commandLineArguments) .makeReadOnly(); ``` `commandLineArguments` returns true for the above mentioned options. This commit is a copy of aws#21891 which fell through the cracks, so I'm picking up as this can potentially cause outages to resources that have drift under the hood, and adding metadata looks like an `Update` operation to CloudFormation.
Previously, pathMetadata, assetMetadata, debug and staging could not be set in `cdk.json` as command-line parameters defaults would always overwrite this. In particular, this `cdk.json` would be ignored: ``` { "app": "npx ts-node --prefer-ts-exts bin/example", ... "pathMetadata": false, "assetMetadata": false } ``` The issue is this piece of code: ``` this.settings = this.defaultConfig .merge(userConfig) .merge(this.projectConfig) .merge(this.commandLineArguments) .makeReadOnly(); ``` `commandLineArguments` returns true for the above mentioned options. This commit is a copy of aws#21891 which fell through the cracks, so I'm picking up as this can potentially cause outages to resources that have drift under the hood, and adding metadata looks like an `Update` operation to CloudFormation.
Previously, pathMetadata, assetMetadata, debug and staging could not be set in `cdk.json` as command-line parameters defaults would always overwrite this. In particular, this `cdk.json` would be ignored: ``` { "app": "npx ts-node --prefer-ts-exts bin/example", ... "pathMetadata": false, "assetMetadata": false } ``` The issue is this piece of code: ``` this.settings = this.defaultConfig .merge(userConfig) .merge(this.projectConfig) .merge(this.commandLineArguments) .makeReadOnly(); ``` `commandLineArguments` returns true for the above mentioned options. This commit is a copy of aws#21891 which fell through the cracks, so I'm picking up as this can potentially cause outages to resources that have drift under the hood, and adding metadata looks like an `Update` operation to CloudFormation. There are already unit tests around the cli which show that the same behavior works, located here: https://github.com/aws/aws-cdk/blob/main/packages/%40aws-cdk-testing/cli-integ/tests/cli-integ-tests/cli.integtest.ts fixes aws#3573 shoutout to @berenddeboer who did the work, I'm just reviving it.
Previously, pathMetadata, assetMetadata, debug and staging could not be set in `cdk.json` as command-line parameters defaults would always overwrite this. In particular, this `cdk.json` would be ignored: ``` { "app": "npx ts-node --prefer-ts-exts bin/example", ... "pathMetadata": false, "assetMetadata": false } ``` The issue is this piece of code: ``` this.settings = this.defaultConfig .merge(userConfig) .merge(this.projectConfig) .merge(this.commandLineArguments) .makeReadOnly(); ``` `commandLineArguments` returns true for the above mentioned options. This commit is a copy of aws#21891 which fell through the cracks, so I'm picking up as this can potentially cause outages to resources that have drift under the hood, and adding metadata looks like an `Update` operation to CloudFormation. There are already unit tests around the cli which show that the same behavior works, located here: https://github.com/aws/aws-cdk/blob/main/packages/%40aws-cdk-testing/cli-integ/tests/cli-integ-tests/cli.integtest.ts fixes aws#3573 shoutout to @berenddeboer who did the work, I'm just reviving it.
Previously, pathMetadata, assetMetadata, debug and staging could not be set in `cdk.json` as command-line parameters defaults would always overwrite this. In particular, this `cdk.json` would be ignored: ``` { "app": "npx ts-node --prefer-ts-exts bin/example", ... "pathMetadata": false, "assetMetadata": false } ``` The issue is this piece of code: ``` this.settings = this.defaultConfig .merge(userConfig) .merge(this.projectConfig) .merge(this.commandLineArguments) .makeReadOnly(); ``` `commandLineArguments` returns true for the above mentioned options. This commit is a copy of aws#21891 which fell through the cracks, so I'm picking up as this can potentially cause outages to resources that have drift under the hood, and adding metadata looks like an `Update` operation to CloudFormation. There are already unit tests around the cli which show that the same behavior works, located here: https://github.com/aws/aws-cdk/blob/main/packages/%40aws-cdk-testing/cli-integ/tests/cli-integ-tests/cli.integtest.ts fixes aws#3573 shoutout to @berenddeboer who did the work, I'm just reviving it.
…d in cdk.json (#24533) Previously, pathMetadata, assetMetadata, debug and staging could not be set in `cdk.json` as command-line parameters defaults would always overwrite this. In particular, this `cdk.json` would be ignored: ``` { "app": "npx ts-node --prefer-ts-exts bin/example", ... "pathMetadata": false, "assetMetadata": false } ``` The issue is this piece of code: ``` this.settings = this.defaultConfig .merge(userConfig) .merge(this.projectConfig) .merge(this.commandLineArguments) .makeReadOnly(); ``` `commandLineArguments` returns true for the above mentioned options. This commit is a copy of #21891 which fell through the cracks, so I'm picking up as this can potentially cause outages to resources that have drift under the hood, and adding metadata looks like an `Update` operation to CloudFormation. There are already unit tests around the cli which show that the same behavior works, located here: https://github.com/aws/aws-cdk/blob/main/packages/%40aws-cdk-testing/cli-integ/tests/cli-integ-tests/cli.integtest.ts shoutout to @berenddeboer who did the work, I'm just reviving it. Closes #3573 ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
…d in cdk.json (aws#24533) Previously, pathMetadata, assetMetadata, debug and staging could not be set in `cdk.json` as command-line parameters defaults would always overwrite this. In particular, this `cdk.json` would be ignored: ``` { "app": "npx ts-node --prefer-ts-exts bin/example", ... "pathMetadata": false, "assetMetadata": false } ``` The issue is this piece of code: ``` this.settings = this.defaultConfig .merge(userConfig) .merge(this.projectConfig) .merge(this.commandLineArguments) .makeReadOnly(); ``` `commandLineArguments` returns true for the above mentioned options. This commit is a copy of aws#21891 which fell through the cracks, so I'm picking up as this can potentially cause outages to resources that have drift under the hood, and adding metadata looks like an `Update` operation to CloudFormation. There are already unit tests around the cli which show that the same behavior works, located here: https://github.com/aws/aws-cdk/blob/main/packages/%40aws-cdk-testing/cli-integ/tests/cli-integ-tests/cli.integtest.ts shoutout to @berenddeboer who did the work, I'm just reviving it. Closes aws#3573 ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
This PR fixes the problems mentioned in #3573. Previously pathMetadata, assetMetadata, debug, and staging could not be set in
cdk.json
as command-line parameters defaults would always overwrite this. In particular thiscdk.json
would be ignored:The issue is this piece of code:
commandLineArguments
returns true for the above mentioned options.All Submissions:
Adding new Unconventional Dependencies:
New Features
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