Skip to content

CloudFormation v2 Engine: Base Support for Fn::Split #12698

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

Merged
merged 17 commits into from
Jun 3, 2025
Merged

Conversation

MEPalma
Copy link
Contributor

@MEPalma MEPalma commented Jun 2, 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 offers no support for Fn::Split.

Changes

@MEPalma MEPalma added this to the 4.5 milestone Jun 2, 2025
@MEPalma MEPalma self-assigned this Jun 2, 2025
@MEPalma MEPalma added the semver: minor Non-breaking changes which can be included in minor releases, but not in patch releases label Jun 2, 2025
@MEPalma MEPalma requested a review from simonrw as a code owner June 2, 2025 13:03
Copy link

github-actions bot commented Jun 2, 2025

Test Results - Preflight, Unit

21 593 tests  ±0   19 938 ✅ ±0   6m 16s ⏱️ +8s
     1 suites ±0    1 655 💤 ±0 
     1 files   ±0        0 ❌ ±0 

Results for commit 1efeb73. ± Comparison against base commit a1684d28.

♻️ This comment has been updated with latest results.

Copy link

github-actions bot commented Jun 2, 2025

Test Results (amd64) - Acceptance

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

Results for commit 1efeb73. ± Comparison against base commit a1684d28.

♻️ This comment has been updated with latest results.

Copy link

github-actions bot commented Jun 2, 2025

Test Results - Alternative Providers

983 tests   554 ✅  23m 2s ⏱️
  4 suites  429 💤
  4 files      0 ❌

Results for commit 1efeb73.

♻️ This comment has been updated with latest results.

Copy link

github-actions bot commented Jun 2, 2025

LocalStack Community integration with Pro

  2 files  ±    0    2 suites  ±0   21m 8s ⏱️ - 1h 22m 15s
882 tests  - 3 970  319 ✅  - 3 767  563 💤  - 203  0 ❌ ±0 
884 runs   - 3 970  319 ✅  - 3 767  565 💤  - 203  0 ❌ ±0 

Results for commit 1efeb73. ± Comparison against base commit a1684d28.

This pull request removes 3976 and adds 6 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_fn_split.TestChangeSetFnSplit ‑ test_fn_split_add_to_static_property
tests.aws.services.cloudformation.v2.test_change_set_fn_split.TestChangeSetFnSplit ‑ test_fn_split_change_delimiter
tests.aws.services.cloudformation.v2.test_change_set_fn_split.TestChangeSetFnSplit ‑ test_fn_split_change_source_string_only
tests.aws.services.cloudformation.v2.test_change_set_fn_split.TestChangeSetFnSplit ‑ test_fn_split_remove_from_static_property
tests.aws.services.cloudformation.v2.test_change_set_fn_split.TestChangeSetFnSplit ‑ test_fn_split_with_get_att
tests.aws.services.cloudformation.v2.test_change_set_fn_split.TestChangeSetFnSplit ‑ test_fn_split_with_ref_as_string_source
This pull request removes 209 skipped tests and adds 6 skipped tests. 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_fn_split.TestChangeSetFnSplit ‑ test_fn_split_add_to_static_property
tests.aws.services.cloudformation.v2.test_change_set_fn_split.TestChangeSetFnSplit ‑ test_fn_split_change_delimiter
tests.aws.services.cloudformation.v2.test_change_set_fn_split.TestChangeSetFnSplit ‑ test_fn_split_change_source_string_only
tests.aws.services.cloudformation.v2.test_change_set_fn_split.TestChangeSetFnSplit ‑ test_fn_split_remove_from_static_property
tests.aws.services.cloudformation.v2.test_change_set_fn_split.TestChangeSetFnSplit ‑ test_fn_split_with_get_att
tests.aws.services.cloudformation.v2.test_change_set_fn_split.TestChangeSetFnSplit ‑ test_fn_split_with_ref_as_string_source

♻️ This comment has been updated with latest results.

Copy link

github-actions bot commented Jun 2, 2025

Test Results (amd64) - Integration, Bootstrap

    5 files      5 suites   2h 23m 31s ⏱️
5 213 tests 4 288 ✅ 925 💤 0 ❌
5 219 runs  4 288 ✅ 931 💤 0 ❌

Results for commit 1efeb73.

♻️ This comment has been updated with latest results.

Base automatically changed from MEP-CFN-fn_select to master June 2, 2025 16:22
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.

Nice stuff!

@markers.snapshot.skip_snapshot_verify(
paths=[
# Reason: AWS incorrectly does not list the second and third topic as
# needing modifying, however it needs to
Copy link
Contributor

Choose a reason for hiding this comment

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

😂

@@ -123,7 +123,6 @@ def test_base64_sub_and_getatt_functions(self, deploy_cfn_template):
converted_string = base64.b64encode(bytes(original_string, "utf-8")).decode("utf-8")
assert converted_string == deployed.outputs["Encoded"]

@pytest.mark.skip(reason="CFNV2:Fn::Split")
Copy link
Contributor

Choose a reason for hiding this comment

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

🎉

@@ -46,7 +46,7 @@ def _is_executed():
assert "hello from statemachine" in execution_desc["output"]


@pytest.mark.skip(reason="CFNV2:Fn::Split")
@pytest.mark.skip(reason="CFNV2:Other")
Copy link
Contributor

Choose a reason for hiding this comment

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

suggestion: could you maybe add some details on what the error is now?

@MEPalma MEPalma merged commit 6d23766 into master Jun 3, 2025
12 of 13 checks passed
@MEPalma MEPalma deleted the MEP-CFN-fn_split branch June 3, 2025 14:17
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.

2 participants