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(cli): array arguments in cdk.json are ignored #33107

Merged
merged 3 commits into from
Jan 24, 2025
Merged

Conversation

kaizencc
Copy link
Contributor

Issue # (if applicable)

Closes #32814

Reason for this change

yargs treats arrays weirdly. setting default: undefined results in the default array as ['undefined']. So instead, I set the default to be default: []. However, this triggers an issue with the order of combining all arguments, and the CLI default was overriding any values in cdk.json for array types. So instead, we must omit the default property entirely for arrays, in order to achieve the desired behavior of undefined as default.

Description of changes

Updated code generation to generate NO default property for array types

Description of how you validated changes

tests in user-input-gen and the diff of parse-command-line-arguments.ts show that unless already defined, we are omitting defaults for arrays

Checklist


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

@kaizencc kaizencc requested a review from a team as a code owner January 23, 2025 20:46
@aws-cdk-automation aws-cdk-automation requested a review from a team January 23, 2025 20:46
@github-actions github-actions bot added bug This issue is a bug. effort/small Small work item – less than a day of effort p1 labels Jan 23, 2025
@mergify mergify bot added the contribution/core This is a PR that came from AWS. label Jan 23, 2025
Copy link
Contributor

@mrgrain mrgrain left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm missing an end to end test of some sort. Like config to PluginHost.

Copy link
Collaborator

@aws-cdk-automation aws-cdk-automation left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(This review is outdated)

@kaizencc kaizencc changed the title fix(aws-cdk): array arguments in cdk.json are ignored fix(cli): array arguments in cdk.json are ignored Jan 23, 2025
@kaizencc kaizencc added the pr-linter/exempt-integ-test The PR linter will not require integ test changes label Jan 23, 2025
@@ -112,3 +113,33 @@ test('Can specify the `quiet` key in the user config', async () => {

expect(config.settings.get(['quiet'])).toBe(true);
});

test('array settings are not overridden by yarg defaults', async () => {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mrgrain is this a reasonable end-to-end test?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is cdk ls --plugin [] really what we expect users to write for an empty array?

Copy link

codecov bot commented Jan 23, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 80.79%. Comparing base (39e5578) to head (6d3f051).
Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #33107      +/-   ##
==========================================
+ Coverage   80.77%   80.79%   +0.01%     
==========================================
  Files         232      232              
  Lines       14110    14110              
  Branches     2453     2453              
==========================================
+ Hits        11398    11400       +2     
+ Misses       2432     2430       -2     
  Partials      280      280              
Flag Coverage Δ
suite.unit 80.79% <ø> (+0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Components Coverage Δ
packages/aws-cdk 79.53% <ø> (+0.02%) ⬆️
packages/aws-cdk-lib/core 82.17% <ø> (ø)

@mrgrain mrgrain added the pr/do-not-merge This PR should not be merged at this time. label Jan 24, 2025
@mrgrain mrgrain force-pushed the conroy/fix-array-args branch from fc4917c to c5d4908 Compare January 24, 2025 19:31
@aws-cdk-automation
Copy link
Collaborator

➡️ PR build request submitted to test-main-pipeline ⬅️

A maintainer must now check the pipeline and add the pr-linter/cli-integ-tested label once the pipeline succeeds.

@mrgrain mrgrain added pr-linter/cli-integ-tested Assert that any CLI changes have been integ tested and removed pr/do-not-merge This PR should not be merged at this time. labels Jan 24, 2025
@aws-cdk-automation aws-cdk-automation dismissed their stale review January 24, 2025 21:57

✅ Updated pull request passes all PRLinter validations. Dismissing previous PRLinter review.

Copy link
Contributor

mergify bot commented Jan 24, 2025

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: AutoBuildv2Project1C6BFA3F-wQm2hXv2jqQv
  • Commit ID: 6d3f051
  • Result: SUCCEEDED
  • Build Logs (available for 30 days)

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

Copy link
Contributor

mergify bot commented Jan 24, 2025

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 mergify bot merged commit 2eff2bd into main Jan 24, 2025
19 of 20 checks passed
@mergify mergify bot deleted the conroy/fix-array-args branch January 24, 2025 23:02
Copy link

Comments on closed issues and PRs are hard for our team to see.
If you need help, please open a new issue that references this one.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jan 24, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug This issue is a bug. contribution/core This is a PR that came from AWS. effort/small Small work item – less than a day of effort p1 pr-linter/cli-integ-tested Assert that any CLI changes have been integ tested pr-linter/exempt-integ-test The PR linter will not require integ test changes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

cli: plugin option set in cdk.json is ignored
3 participants