What's Changed
- test(conditions): cover add_equivalence branches by @moneytool in #4790
- Fix E3002/E6101: don't crash when a resource or output condition can never be true by @Varshith-Kali in #4786
- Fix crash when a resource's Metadata is not an object by @Neg23 in #4784
- Fix E3601: stringify path segments so array indices do not crash message formatting by @Varshith-Kali in #4782
- Fix E1017: allow Fn::If and nested Fn::Select as the Fn::Select index by @Varshith-Kali in #4793
- Add E1001: require at least one resource in the Resources section by @Varshith-Kali in #4781
- fix: Check the length of a template Description that mentions a dynamic reference by @sayaksatpathi in #4765
- Fix E8001: stop rejecting condition names CloudFormation accepts by @Varshith-Kali in #4787
- Fix crash when the template Metadata is not an object by @Neg23 in #4807
- Fix E3004: evaluate SAM resource dependency cycles before reporting by @proton0210 in #4755
- Fix E1029: skip where CloudFormation doesn't evaluate Fn::Sub by @Thanatos9404 in #4759
- Fix E8001: report non-string condition names instead of crashing by @Varshith-Kali in #4814
- fix: Validate --registry-schemas types against their schema again by @sayaksatpathi in #4763
- Fix E3620: Add db.serverless to the DocumentDB instance classes by @Thanatos9404 in #4761
- Fix E3670: Use full xlarge names for Amazon MQ instance types by @Thanatos9404 in #4760
- feat: add Python 3.15 support by @botantony in #4764
- Fix E3690/E3691: accept neptune and sqlserver-dev engines by @Varshith-Kali in #4830
- Fix E3049: don't report when HealthCheckPort is omitted by @Neg23 in #4829
- Fix E1152: accept resolve:ssm: ImageId on AWS::EC2::Instance by @Varshith-Kali in #4828
- feat(kiro): add issue-triage, issue-worker, and pr-reviewer agents by @kddejong in #4831
- fix(formats): match an anyOf of formats on the source schema by @kddejong in #4832
- Update tests for schema changes by @kddejong in #4864
- fix(conditions): extend Fn::Equals mutual-exclusion beyond AllowedValues parameters by @Varshith-Kali in #4805
- Fix E3688: false positives on IpProtocol "-1", icmpv6 and "ICMP" rules by @Varshith-Kali in #4806
- chore(deps): bump setuptools from 84.0.0 to 84.2.1 in /requirements by @dependabot[bot] in #4861
- Update tests for schema changes by @kddejong in #4872
- feat(kiro): widen triage issue access, machine-generate permissions by @kddejong in #4868
- Fix E1019: resolve SAM generated Version/Alias references in Fn::Sub by @moneytool in #4798
- Fix E3720: do not require StorageEncrypted on RDS read replicas by @Varshith-Kali in #4842
- docs: rank deployment above probes in agent evidence hierarchy by @kddejong in #4867
- Fix E3690/E3691: allow major-only EngineVersion for mysql and mariadb by @moneytool in #4796
- Fix E2015: compare Default as CloudFormation strings by @moneytool in #4797
- docs: check quota adjustability before encoding a limit by @kddejong in #4895
- Fix E3005: skip DependsOn check when target condition is always true by @Varshith-Kali in #4843
- Fix E3001: allow a string resource-level Description by @blacksoxx in #4922
- Fix E3671: Set gp3 Iops limits per resource type by @Thanatos9404 in #4866
- Test W3001: pin that a resource-level Description does not warn by @kddejong in #4923
- Fix E3671: allow gp3 Iops from 100 and warn when it is raised by @kddejong in #4930
- Fix E3051: skip Automation schema for AppConfig SSM document types by @Varshith-Kali in #4844
- docs(kiro): narrow the validate-template prohibition to provider-owned constraints by @kddejong in #4932
- Add E1165: AWS::IAM::Role.Name format keyword by @kddejong in #4936
- Remove rule
E3511in favour of the E1156 role ARN format by @kddejong in #4942 - Fix E3615: Allow a CloudWatch alarm Period of 20 by @Thanatos9404 in #4905
- Update schemas (AdditionalSpecs/LmbdRuntimeLifecycle.json): Lambda runtime lifecycle dates from AWS docs by @hoganbr-amzn in #4943
- Fix E2531/W2531/E2533: handle unscheduled Lambda runtime block dates by @kddejong in #4945
- Fix E3695: Allow redis EngineVersion 6.x on CacheCluster by @Thanatos9404 in #4906
- Fix E3062: scope DBInstanceClass enum per engine by @Varshith-Kali in #4870
- fix(scripts): only collect orderable options for available RDS versions by @kddejong in #4946
- Update CloudFormation schemas to
2026-10-28by @github-actions[bot] in #4808 - fix(config): only accept
append_rulesandoutput_filefrom the CLI,--config-file, or~/.cfnlintrcby @abouzou in 7bdcb33 - Update python runtime to python 3.13 by @kddejong in #4952
New Contributors
- @Varshith-Kali made their first contribution in #4786
- @Neg23 made their first contribution in #4784
- @sayaksatpathi made their first contribution in #4765
- @Thanatos9404 made their first contribution in #4759
- @botantony made their first contribution in #4764
- @blacksoxx made their first contribution in #4922
- @hoganbr-amzn made their first contribution in #4943
- @abouzou made their first contribution in 7bdcb33
Full Changelog: v1.58.0...v1.59.0