Repository navigation
Add payload-local WSMan provider source scaffold - #41
Closed
Marc-André Moreau (mamoreau-devolutions) wants to merge 1 commit into
Closed
Marc-André Moreau (mamoreau-devolutions) wants to merge 1 commit into
Marc-André Moreau (mamoreau-devolutions) wants to merge 1 commit into
Conversation
Move the reviewed provider scaffold and focused regressions into the downstream PowerShell source history. Keep the provider standalone with explicit patched-SMA references and document transport and net8 compatibility blockers. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Contributor
Author
|
Superseded by the user-directed decision to implement remoting at the MultiPwsh level rather than add a separate provider assembly. The downstream/v7.6.6 base already exposes the provider registry and transport extension points needed for direct managed registration, so no additional PowerShell source patch is required for that integration. No RDM WSMan/SSPI transport source was copied by this PR. |
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.
PR Summary
Add the payload-local
devolutions.wsmanprovider scaffold and its 18 focused regressions to the actual PowerShell source history. This is the source half of the two-PR correction paired with packaging #40, not an operational WSMan implementation.src\Devolutions.MultiPwsh.Remoting.WSMan.test\Devolutions.MultiPwsh.Remoting.WSMan.Tests, with the existing..\..\srcProjectReference preserved.d690380a4c099029f690266946cbe04c59f7c53c; the only code adjustment is mechanically sorting the existing test imports for the source formatting gate. Preserve integer enum rejection, the null endpoint guard, and the valid-argumentsNotSupportedExceptionregression.PR Context
Source-branch ownership and packaging dependency
mastercontains distribution tooling;downstream/v7.6.6contains the PowerShell source history. This feature branch starts at source commit51f58e2eeafbd52e9cbfd75eb1b1d4150296130aand targetsdownstream/v7.6.6, notmaster. The shared downstream branch has not been modified or pushed.Packaging #40 will pin
pwsh-srcto this feature commit, remove the duplicated provider source from packagingmaster, and explicitly build/test these source paths. These standalone projects are intentionally outside the PowerShell engine project-reference graph and existingtest\xUnitrunner. They do not importPowerShell.Common.propsortest\Test.Common.props, which impose engine-specific signing, versioning, analyzer packages, and Microsoft ownership metadata. The source.editorconfigapplies; existing ignore rules already cover generatedbin,obj, DLL, and NuGet package outputs. No generated artifacts are in this diff.The transferred C# source has not been given an assumed Microsoft copyright/license header. No RDM source or licensing assumptions are introduced.
Exact managed reflection contract
Type:
Devolutions.MultiPwsh.Remoting.WSMan.DevolutionsWsmanAdapter, public parameterless constructor.Public static properties:
ProviderId : string,ContractHash : string,ProviderVersion : string,Capabilities : ulong.Public instance method:
Descriptor:
SHA-256:
836ea45ab6a3169cc786392cf9db644ac2e6fe59494f514e6a4f94f2a5cd20f9; provider IDdevolutions.wsman; provider version0.1.0.Capabilities remains
0.CreateRunspacePoolvalidates its arguments/options and throwsNotSupportedExceptionfor valid arguments. Reserved enum bits do not advertise transport/authentication functionality. SMA types stay inside the managed payload, not across the MultiPwsh NativeAOT boundary. Manifest and options-schema semantics remain unchanged, including endpoint path-to-AppName mapping, connection limits, SSPI selection, effective cancel-timeout floor, KDC proxy text, and the 512 KB envelope default.Deferred blockers
The RDM WSMan/SSPI source closure is not copied: file-level ownership/licensing provenance must be resolved before extraction. Operational managed transport and patched-SMA integration remain separate work.
The project default remains
AdapterTargetFramework=net8.0, but the actual patched SMA source currently targetsnet10.0. The .NET 8 compatibility blocker is not resolved by this scaffold. Packaging derives the effective framework fromPowerShell.Common.propsand passesAdapterTargetFrameworkexplicitly. Compilation requires caller-suppliedPowerShellSdkVendor=DevolutionsandPowerShellSdkAssemblyPathpointing to the Devolutions source-built SMA. There is no stock SMA/PowerShell SDK package reference; the vendor property is a caller assertion, not independent provenance attestation.Validation evidence
SDK selected by source
global.json: 10.0.401. Provider/test framework: net10.0, derived fromPowerShell.Common.props.The provider tests use the already source-built patched assembly in the packaging parent's local SDK output:
Passed: full formatting verification after import sorting; Passed: 18, Failed: 0, Skipped: 0. Release provider/test build completed with warnings-as-errors and analyzers enabled, with no warnings/errors. SMA input SHA-256:
1d4e9f3671a2d3a5d163d61f5512b8fe908e5a57d0fec2575187161d76cad971.Source build/analyzer gate, run from this isolated source checkout:
Passed: full PowerShell source publish, source Roslyn analyzers enabled (no
SkipRoslynAnalyzers), reference-assembly publication, and configuration generation. Only existing namespaced-tag warnings and the experimental-features-disabled configuration warning were emitted. The resulting source-built host starts as PowerShell 7.6.6 and SMA reports.NETCoreApp,Version=v10.0.Passed: direct
dotnet msbuild ... -t:ValidateDevolutionsPowerShellSdkReference -p:AdapterTargetFramework=net10.0negative cases rejected missing vendor, missing SMA path, and nonexistent SMA with the expected errors. Manifest/schema parse andgit diff refs/remotes/origin/downstream/v7.6.6...HEAD --checkpassed. Verified all six non-test-source transferred blobs match the reviewed parent commit; all test bodies remain unchanged.Full source Pester/xUnit suites and hosted CodeQL execution were not run locally; no engine behavior is changed. The canonical full distro/package gate belongs to packaging #40 and is not claimed here.
PR Checklist
.h,.cpp,.cs,.ps1and.psm1files have the correct copyright header