Skip to content

Conversation

@MEPalma
Copy link
Contributor

@MEPalma MEPalma commented Jun 16, 2025

Motivation

The introduction of the CloudFormation v2 engine laid the foundation for a redesigned engine capable of accurately determining update requirements between CloudFormation deployments, while also enabling parallel execution during updates. However, the current implementation does not support global macros.

Changes

  • added integrations to v1 utils for the execution of global macros
  • resolved issues with the computation of stack parameters, which resulted in sometimes malformed parameter objects during the transformation step (see compatibility requirements with v1 utils)
  • resolved an issue with the normalization of transform parameters, which did not support some definition format
  • added change set update test using macros (see in-code limitations)
  • updated the CFNV2 test annotations

Future work

  • unblock v1 tests by porting the create stack provider logic to use the v2 engine
  • investigate some issue for which in our test setup a delete request for the template carrying the macro is registered before later events
  • add further change set lifecycle tests involving global transformations

@MEPalma MEPalma added this to the 4.6 milestone Jun 16, 2025
@MEPalma MEPalma requested a review from simonrw June 16, 2025 11:42
@MEPalma MEPalma self-assigned this Jun 16, 2025
@MEPalma MEPalma added the semver: minor Non-breaking changes which can be included in minor releases, but not in patch releases label Jun 16, 2025
@github-actions
Copy link

Test Results - Preflight, Unit

21 621 tests  ±0   19 964 ✅ ±0   6m 19s ⏱️ +7s
     1 suites ±0    1 657 💤 ±0 
     1 files   ±0        0 ❌ ±0 

Results for commit 398bece. ± Comparison against base commit df9ebe9.

@github-actions
Copy link

Test Results (amd64) - Acceptance

7 tests  ±0   5 ✅ ±0   3m 6s ⏱️ -3s
1 suites ±0   2 💤 ±0 
1 files   ±0   0 ❌ ±0 

Results for commit 398bece. ± Comparison against base commit df9ebe9.

@github-actions
Copy link

LocalStack Community integration with Pro

  2 files  ±    0    2 suites  ±0   21m 29s ⏱️ - 1h 22m 2s
886 tests  - 3 988  323 ✅  - 3 774  563 💤  - 214  0 ❌ ±0 
888 runs   - 3 988  323 ✅  - 3 774  565 💤  - 214  0 ❌ ±0 

Results for commit 398bece. ± Comparison against base commit df9ebe9.

This pull request removes 3989 and adds 1 tests. Note that renamed tests count towards both.
tests.aws.scenario.bookstore.test_bookstore.TestBookstoreApplication ‑ test_lambda_dynamodb
tests.aws.scenario.bookstore.test_bookstore.TestBookstoreApplication ‑ test_opensearch_crud
tests.aws.scenario.bookstore.test_bookstore.TestBookstoreApplication ‑ test_search_books
tests.aws.scenario.bookstore.test_bookstore.TestBookstoreApplication ‑ test_setup
tests.aws.scenario.kinesis_firehose.test_kinesis_firehose.TestKinesisFirehoseScenario ‑ test_kinesis_firehose_s3
tests.aws.scenario.lambda_destination.test_lambda_destination_scenario.TestLambdaDestinationScenario ‑ test_destination_sns
tests.aws.scenario.lambda_destination.test_lambda_destination_scenario.TestLambdaDestinationScenario ‑ test_infra
tests.aws.scenario.loan_broker.test_loan_broker.TestLoanBrokerScenario ‑ test_prefill_dynamodb_table
tests.aws.scenario.loan_broker.test_loan_broker.TestLoanBrokerScenario ‑ test_stepfunctions_input_recipient_list[step_function_input0-SUCCEEDED]
tests.aws.scenario.loan_broker.test_loan_broker.TestLoanBrokerScenario ‑ test_stepfunctions_input_recipient_list[step_function_input1-SUCCEEDED]
…
tests.aws.services.cloudformation.v2.test_change_set_global_macros.TestChangeSetGlobalMacros ‑ test_base_global_macro
This pull request removes 211 skipped tests and adds 1 skipped test. Note that renamed tests count towards both.
tests.aws.scenario.kinesis_firehose.test_kinesis_firehose.TestKinesisFirehoseScenario ‑ test_kinesis_firehose_s3
tests.aws.scenario.loan_broker.test_loan_broker.TestLoanBrokerScenario ‑ test_stepfunctions_input_recipient_list[step_function_input4-FAILED]
tests.aws.scenario.mythical_mysfits.test_mythical_misfits.TestMythicalMisfitsScenario ‑ test_deployed_infra_state
tests.aws.scenario.mythical_mysfits.test_mythical_misfits.TestMythicalMisfitsScenario ‑ test_populate_data
tests.aws.scenario.mythical_mysfits.test_mythical_misfits.TestMythicalMisfitsScenario ‑ test_user_clicks_are_stored
tests.aws.services.apigateway.test_apigateway_api.TestApiGatewayApiRestApi ‑ test_get_api_case_insensitive
tests.aws.services.apigateway.test_apigateway_api.TestApigatewayIntegration ‑ test_put_integration_request_parameter_bool_type
tests.aws.services.apigateway.test_apigateway_basic.TestAPIGateway ‑ test_api_gateway_authorizer_crud
tests.aws.services.apigateway.test_apigateway_basic.TestAPIGateway ‑ test_api_gateway_http_integration_with_path_request_parameter
tests.aws.services.apigateway.test_apigateway_basic.TestAPIGateway ‑ test_api_gateway_lambda_proxy_integration[/lambda/foo1]
…
tests.aws.services.cloudformation.v2.test_change_set_global_macros.TestChangeSetGlobalMacros ‑ test_base_global_macro

@github-actions
Copy link

Test Results (amd64) - Integration, Bootstrap

  5 files    5 suites   34m 28s ⏱️
910 tests 348 ✅ 562 💤 0 ❌
916 runs  348 ✅ 568 💤 0 ❌

Results for commit 398bece.

@github-actions
Copy link

Test Results - Alternative Providers

988 tests   621 ✅  34m 31s ⏱️
  4 suites  367 💤
  4 files      0 ❌

Results for commit 398bece.

Copy link
Contributor

@simonrw simonrw left a comment

Choose a reason for hiding this comment

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

Amazing stuff, thanks for adding this!

@MEPalma MEPalma merged commit 3b2f334 into master Jun 19, 2025
43 checks passed
@MEPalma MEPalma deleted the MEP-CFN-global_macros branch June 19, 2025 15:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

semver: minor Non-breaking changes which can be included in minor releases, but not in patch releases

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants