feat: add reactive plugin shim project#258
Merged
Merged
Conversation
Projects: - Add Extensions.Hosting.Plugins.Reactive as a linked-source project over Extensions.Hosting.Plugins with REACTIVE_SHIM defined. - Add the ReactiveUI.Primitives.Reactive central package version and include the reactive project in the solution and test project references. - Add conditional namespaces for the shared plugin source so non-reactive and reactive assemblies expose distinct API surfaces. Quality: - Expand TUnit coverage for plugin scanning, assembly loading, hosted service disposal, plugin builder behavior, reactive shim contracts, and SingleInstance mutex fault paths. - Scope coverage configuration to Extensions.Hosting.* production assemblies while excluding examples, logging, tests, and runner artifacts. - Add a narrow internal ResourceMutex test seam so timeout, unauthorized acquisition, and release-failure paths are covered without suppressions. - Resolve analyzer findings in platform/example code and plugin internals so Release builds pass with warnings as errors.
2e5fc8c to
9c59e6b
Compare
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What kind of change does this PR introduce?
Adds a reactive plugin shim project and supporting test coverage for the shared Extensions.Hosting.Plugins codebase.
What is the new behavior?
Extensions.Hosting.Plugins.Reactivebuilds from the same source asExtensions.Hosting.Pluginsusing linked compile items andREACTIVE_SHIM.ReactiveMarbles.Extensions.Hosting.Reactive.Pluginsnamespaces when the shim symbol is defined.Extensions.Hosting.*assemblies and includes the new reactive plugin assembly.What is the current behavior?
Extensions.Hosting.Pluginsonly builds a single non-reactive package surface, and the test coverage configuration does not include a reactive sibling assembly.Checklist
Additional information
Validation performed locally:
dotnet test --solution Extensions.Hosting.slnx -c Release --coverage --coverage-output-format cobertura --results-directory .\TestResults -- --output Detaileddotnet build Extensions.Hosting.slnx -c Release -warnaserror --no-restore /m:1 '/clp:ErrorsOnly;Summary'MTP coverage summary: 100.00% line coverage for configured
Extensions.Hosting.*modules;Extensions.Hosting.Plugins,Extensions.Hosting.Plugins.Reactive, andExtensions.Hosting.SingleInstanceall report no missed source lines.GitHub CI:
BuildOnly / windows-latestpassed on amended commit9c59e6b.