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

chore(cli): simplify config with helper functions #32547

Merged
merged 3 commits into from
Dec 17, 2024

Conversation

mrgrain
Copy link
Contributor

@mrgrain mrgrain commented Dec 16, 2024

Reason for this change

Simplify the codegen for CLI config. Previously the generated function expected a number of arguments at call time.
Instead we now require a single helpers object at build time. This holds typewriter references to any function called during config parsing.

Additionally, some the helper functions for init and migrate are now just called at build time. This is fine because these values don't change dynamically unless a code change is made to the CLI.

Description of changes

  • Moved all helper functions into a single file
  • Created a typewriter proxy class for that file
  • Use the module proxy instead passing arguments at runtime
  • This allows us to get rid of the DynamicValue stuff all-together and instead we can just check if a value is a typewriter expression.

Description of how you validated changes

Existing tests cover this. Run additional manual verification as well.

Checklist


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

@mrgrain mrgrain requested a review from a team as a code owner December 16, 2024 19:48
@aws-cdk-automation aws-cdk-automation requested a review from a team December 16, 2024 19:49
@github-actions github-actions bot added the p2 label Dec 16, 2024
@mergify mergify bot added the contribution/core This is a PR that came from AWS. label Dec 16, 2024
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.

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.

A comment requesting an exemption should contain the text Exemption Request. Additionally, if clarification is needed add Clarification Request to a comment.

@aws-cdk-automation aws-cdk-automation added the pr/needs-cli-test-run This PR needs CLI tests run against it. label Dec 16, 2024
Now we either call helper functions at build time or declare the function call via a typewriter module proxy.
@mrgrain mrgrain force-pushed the mrgrain/chore/cli-gen-more-flexible branch from 2208129 to 38011d8 Compare December 16, 2024 20:51
Copy link

codecov bot commented Dec 16, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 78.85%. Comparing base (38116b0) to head (e58572e).

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #32547      +/-   ##
==========================================
+ Coverage   78.80%   78.85%   +0.04%     
==========================================
  Files         108      108              
  Lines        7159     7165       +6     
  Branches     1319     1319              
==========================================
+ Hits         5642     5650       +8     
+ Misses       1332     1330       -2     
  Partials      185      185              
Flag Coverage Δ
suite.unit 78.85% <100.00%> (+0.04%) ⬆️

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

Components Coverage Δ
packages/aws-cdk 78.85% <100.00%> (+0.04%) ⬆️

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

@rix0rrr rix0rrr added pr-linter/cli-integ-tested Assert that any CLI changes have been integ tested and removed pr-linter/cli-integ-tested Assert that any CLI changes have been integ tested labels Dec 17, 2024
@aws-cdk-automation
Copy link
Collaborator

AWS CodeBuild CI Report

  • CodeBuild project: AutoBuildv2Project1C6BFA3F-wQm2hXv2jqQv
  • Commit ID: e58572e
  • Result: SUCCEEDED
  • Build Logs (available for 30 days)

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

@mrgrain mrgrain added pr-linter/cli-integ-tested Assert that any CLI changes have been integ tested and removed pr/needs-cli-test-run This PR needs CLI tests run against it. labels Dec 17, 2024
@aws-cdk-automation aws-cdk-automation dismissed their stale review December 17, 2024 12:09

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

Copy link
Contributor

mergify bot commented Dec 17, 2024

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 506d210 into main Dec 17, 2024
22 of 24 checks passed
@mergify mergify bot deleted the mrgrain/chore/cli-gen-more-flexible branch December 17, 2024 12:10
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 Dec 17, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
contribution/core This is a PR that came from AWS. p2 pr-linter/cli-integ-tested Assert that any CLI changes have been integ tested
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants