Skip to content

Refactor: Hardening CI and AOT and trimming compatibility#210

Merged
AnnaSasDev merged 16 commits intocorefrom
ci-projfile-upgrades
Apr 11, 2026
Merged

Refactor: Hardening CI and AOT and trimming compatibility#210
AnnaSasDev merged 16 commits intocorefrom
ci-projfile-upgrades

Conversation

@AnnaSasDev
Copy link
Copy Markdown
Member

@AnnaSasDev AnnaSasDev commented Apr 11, 2026

Summary

Type of Change

  • Bug fix (non-breaking change fixing an issue)
  • New feature (non-breaking change adding functionality)
  • Breaking change (fix or feature impacting existing APIs)
  • Refactor / Code cleanup (no functional change)
  • Documentation update
  • Test addition or update
  • Other (please describe):

Affected Modules / Scope

  • InfiniFrame
  • InfiniFrame.Blazor
  • InfiniFrame.BlazorWebView
  • InfiniFrame.Js
  • InfiniFrame.Native
  • InfiniFrame.Shared
  • InfiniFrame.WebServer
  • InfiniFrame.Tools.Pack
  • InfiniFrameExample
  • InfiniFrameTests
  • Other: ``

Changes Introduced

Related Issues

Closes #202
Closes #201
Closes #200
Closes #198
Closes #197

Checklist

  • My code follows InfiniFrame's coding conventions
  • I added comments for complex or non-obvious code
  • Documentation updated (if applicable)
  • All tests pass locally
  • Added new tests for any new functionality
  • Existing tests pass
  • No new warnings or errors introduced
  • PR only includes changes relevant to the issue / feature

📖 Additional Context

- Introduced `.github/workflows/shared-testing-js.yml` for docs validation and JS bundle checks.
- Updated `InfiniFrame.Js.csproj` with TypeScript build targets for `Release` and `Pack` configurations.
- Added `jsbundle-tests` job to `.github/workflows/ci-testing.yml` for verifying webpack output.
- Registered `jsbundle-validate` composite action for bundle drift detection.
- Included the shared JS testing workflow in `InfiniFrame.slnx`.
- Introduced `js-validation` job in `shared-testing.yml` for JS bundle validation.
- Added `.github/actions/jsbundle-validate/action.yml` to solution file.
- Updated `shared-testing-js.yml` to focus on JS validation.
@AnnaSasDev AnnaSasDev linked an issue Apr 11, 2026 that may be closed by this pull request
2 tasks
- Introduced `shared-testing-trim-aot.yml` workflow for trimming and NativeAOT compatibility validation.
- Updated `.github/workflows/shared-testing.yml` and `ci-testing.yml` to include Trim/AOT validation jobs with configurable inputs.
- Annotated public APIs with `RequiresUnreferencedCode` and `RequiresDynamicCode` for AOT compatibility.
- Added guidance on trimming and NativeAOT to the documentation.
- Extended solution file and sidebars to integrate the new workflow and guide.
…FrameWindowConfigurationSectionApplier` for AOT and trimming compatibility

- Added `InfiniFrameWindowConfigurationSectionApplier` to handle configuration application without reflection.
- Updated `InfiniFrameWindowBuilder` to use the new applier for improved NativeAOT compatibility.
- Removed `RequiresUnreferencedCode` and `RequiresDynamicCode` annotations from relevant methods and interfaces.
- Added tests for `InfiniFrameWindowConfigurationSectionApplier`.
- Changed `ci-testing.yml` name to "CI: Full Test Suite."
- Updated job context to "CI Testing - Js Bundling."
- Removed unused `docs/package-lock.json` from dependency cache paths in `shared-testing-js.yml`.
- Refined `BuildTypeScript` and `BuildTypeScriptForPack` targets to use `npm ci` and `npm run production:build` for better consistency.
- Applied conditional execution for `Release` configuration in `BuildTypeScript`.
@AnnaSasDev AnnaSasDev changed the title Refactor: CI and .csproj upgrades Refactor: Hardening CI and AOT and trimming compatibility Apr 11, 2026
…ld process

- Added `InfiniFrameExample.TrimAotSmoke` project to validate trimming and NativeAOT compatibility.
- Enhanced TypeScript build process in `InfiniFrame.Js.csproj` with refined conditional targets for single and cross-targeting builds.
- Updated solution file to include the new smoke test project.
- Modified `shared-testing-trim-aot.yml` workflow to integrate the smoke test example and improve output validation.
…nfiniFrameWindow

- Replaced instance-based methods in `InfiniWindowExtensions` with extension methods for improved readability and consistency.
- Updated method calls to use `this` keyword, allowing fluent API usage.
- Added `[SuppressMessage]` annotation to suppress "ConvertToExtensionBlock" warnings.
- Added `AnalyzerBaseline.props` to manage temporary warnings not treated as errors.
- Enabled .NET analyzers and set `AnalysisLevel` to `latest` in `Directory.Build.props`.
- Included `AnalyzerBaseline.props` in solution and project configuration.
@AnnaSasDev AnnaSasDev merged commit dbb7391 into core Apr 11, 2026
55 checks passed
@AnnaSasDev AnnaSasDev deleted the ci-projfile-upgrades branch April 11, 2026 14:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant