Skip to content

Convention clean-up: Should test names and shared framework properties - #75

Merged
Blind-Striker merged 7 commits into
aot/package-consumer-cifrom
aot/convention-cleanup
Oct 23, 2026
Merged

Blind-Striker merged 7 commits into
aot/package-consumer-cifrom
aot/convention-cleanup

Conversation

@Blind-Striker

@Blind-Striker Blind-Striker commented Oct 23, 2026 •

Copy link
Copy Markdown
Member

Stack (review bottom-up, merge as one stack): #62 base, #66 the #63 fix, #67 Native AOT test lane, #68 static-factory generic path, #70 slim generator, #71 public docs, #72 internal docs and 3.0.0, #73 reflection-free test, #74 package consumer in CI, #75 convention clean-up, #76 service catalog refresh.

Goal of the stack: 3.0.0, where existing consumers upgrade without code changes, both packages support Native AOT on net10.0/net11.0, and the libraries use no runtime reflection for types the compiler can see (a JIT-only fallback covers the rest).

This PR

Convention clean-up across the stack, from a review of master..HEAD against the repository's conventions. No behaviour change.

  • Test names: the last non-conforming test, Multi_Region_Tests_Async, is now SnsService_Should_Create_A_Sns_Topic_In_The_Configured_Region_Async. The review checked all 386 [Fact]/[Theory] methods.
  • MSBuild and Cake read framework values from the shared properties instead of literals:
    • Directory.Packages.props compares with $(LocalStackNetFrameworkTargetFramework).
    • Cake's net472-off-Windows skip reads the same property through MSBuild.
    • BuildContext names its MSBuild property keys once.
  • New LocalStackAnalyzerTargetFramework (netstandard2.0, because Roslyn loads generators only from netstandard2.0). The generator project and Core's pack path for the generator use it. It is kept separate from LocalStackNetStandardTargetFramework because the two have different owners.
  • S3ForcePathStyle compares with AwsServiceEndpointMetadata.S3.ServiceId instead of "S3".
  • SessionReflectionTests callbacks are formatted one statement per line.

Review findings not taken:

  • tests/Directory.Build.targets keeps its IsTargetFrameworkCompatible check. IsLocalStackModernTarget is computed at props time, so it is empty for single-target projects and would drop the generator reference there.
  • The PreBuild README/license targets already existed on master. The two IsAotCompatible/package-validation lines already read shared properties, and moving them to .targets would bring an evaluation-order risk.

Verification

Core, Extensions, Integration, Generator and the Cake tests target are green; the Native AOT lane (net10.0) is green; the packed Core still contains the generator under tools/. Stack-level gate: #76.

@github-actions

Copy link
Copy Markdown

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

@Blind-Striker
Blind-Striker force-pushed the aot/convention-cleanup branch from be05d72 to 3866954 Compare October 23, 2026 21:13
@Blind-Striker
Blind-Striker marked this pull request as ready for review October 23, 2026 21:55
@Blind-Striker
Blind-Striker merged commit 49573c2 into master Oct 23, 2026
19 checks passed
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.

1 participant