Skip to content

Release 1.112.0 (to main) - #3975

Merged
reedham-aws merged 6 commits into
mainfrom
release-v1.112.0
Aug 13, 2026
Merged

Release 1.112.0 (to main)#3975
reedham-aws merged 6 commits into
mainfrom
release-v1.112.0

Conversation

@reedham-aws

Copy link
Copy Markdown
Contributor

This PR & commit is automatically created by aws-sam-cli-bot for SamTranslator@1.112.0 release.

@reedham-aws
reedham-aws requested a review from a team as a code owner August 13, 2026 22:22

@aws-sam-tooling-bot aws-sam-tooling-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Code Review Results

Reviewed: d9d2dce..e7b6f98
Files: 34
Comments: 2


Comments on lines outside the diff:

[samtranslator/model/init.py:746] [BUG] The new Property.Path=Value presence syntax is documented as a general feature of PropertyRule (comment added at line 579), and MUTUALLY_EXCLUSIVE / MUTUALLY_INCLUSIVE now route through _is_property_present, but the CONDITIONAL_REQUIREMENT branch still calls _get_property_value directly:

elif (
   rule_type == ValidationRule.CONDITIONAL_REQUIREMENT
   and self._get_property_value(properties[0], validated_model) is not None
   and self._get_property_value(properties[1], validated_model) is None
):

If a rule is ever declared as (ValidationRule.CONDITIONAL_REQUIREMENT, ["Foo.Bar=True", "Baz"]), _get_property_value("Foo.Bar=True", ...) walks the path parts ["Foo", "Bar=True"], finds no Bar=True attribute, and returns None — the rule silently never fires instead of erroring. That is a silent-validation-bypass failure mode rather than a loud one. Suggest using _is_property_present for properties[0] here so all three rule types share the same presence semantics.

[samtranslator/model/sam_resources.py:1577] [GENERAL] The rule string is surfaced verbatim in the customer-facing error, leaking internal DSL syntax and misattributing the conflict. Per tests/translator/output/error_capacity_provider_managed_resource_tags_mutual_exclusion.json:

Resource with id [CpExplicitTagsConflictWithGlobal] is invalid. Cannot specify 'ManagedResourceTags.Propagate=True' and 'ManagedResourceTags.Tags' together.

Two problems in that case: (a) =True is internal rule syntax that has no meaning in a SAM template, and (b) that resource only declares ManagedResourceTags.Tags — Propagate: true comes from the Globals section, so the user is told they specified something they never wrote and gets no hint that the fix is Propagate: false on the resource or a change to Globals. Consider special-casing the = form when building the message (e.g. Cannot specify 'ManagedResourceTags.Tags' when 'ManagedResourceTags.Propagate' is true (it may be set in the Globals section).).

Scope note: I reviewed the transform logic, validation, generators, globals, and the translator input/output fixtures. samtranslator/schema/schema.json, schema_source/sam.schema.json, and sam-docs.json are generated and were not line-reviewed. I did not attempt to verify the contents or partition availability of AWSLambdaNetworkConnectorOperatorPolicy, which the network connector operator role now relies on in place of its inline policy.

@reedham-aws
reedham-aws merged commit b8cceaa into main Aug 13, 2026
6 of 7 checks passed
@reedham-aws
reedham-aws deleted the release-v1.112.0 branch August 13, 2026 22:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants