Repository navigation
Migrate DeviceManagement shared directives to v3 wrappers - #3900
Open
Ramses Sanchez-Hernandez (ramsessanchez) wants to merge 15 commits into
Open
Ramses Sanchez-Hernandez (ramsessanchez) wants to merge 15 commits into
Ramses Sanchez-Hernandez (ramsessanchez) wants to merge 15 commits into
Conversation
Review complete legacy operation-ID selector sets and preserve exact compatible successors, including final action namespace conversions. Add scoped suppressions, audited absence, shared annotations and affected/neighbor regressions without profile generation. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Run the complete queued compatible-spec Release pipeline with Kiota 1.36.1 and Authentication 2.38.1: 297 compiled cmdlets. Client and cmdlet source/project output is byte-equivalent after Git line-ending normalization; the Kiota lock records the tool upgrade. Preserve the combined v1.0 generation boundary. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Integrate normally merged compatible natural-ID variants, aligned operation IDs and composite-key routing fixes without rewriting earlier migration/profile boundaries. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Pass the derived-data profile separately from shared GeneratorConfig, refresh exact compatible IDs, and pin the complete original selectors and surviving routes. Retain all twelve beta suppressions and explicitly record the remaining intent_updateSetting literal-inventory blocker without unmerged helper schema. Module/configuration/naming/composite regressions: 162 passed; strict inventory honestly fails only the complete beta selector evidence comparison pending reviewed legacy translation. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Run the complete queued compatible-spec Release pipeline on integrated powershell-v3 08e409a with Kiota1.36.1 serial generation and original Authentication2.38.1. Exit0/OK37.6s, 297 compiled exports; reviewed suppression1 absent and actual neighbors7 present. Combined client/cmdlet/project/lock regeneration preserves unchanged sources honestly and updates current-spec model closure and lock. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Run the complete queued compatible-spec Release pipeline on integrated powershell-v3 with Kiota1.36.1 serial generation and original Authentication2.38.1. Exit0/OK64.9s, 1187 compiled exports; all15 reviewed suppressions absent, actual neighbors24 present. Preserve Beta casing and combined client/cmdlet/project/lock boundary. All six composite workers now compile; offline GET/DELETE escaped URLs and four WhatIf/declined Confirm checks pass. Actual PATCH serialization remains blocked by missing Microsoft.IO.RecyclableMemoryStream3.0.1 in the runtime package closure, and final strict legacy inventory remains blocked; no PR completion claimed. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Opt only directive1 beta into Legacy operation-ID evidence. Record exact old paths and IDs for the complete twelve-operation source set, including five action-kind-guarded final namespace translations and the differently qualified current intent action ID. Pin all exact bridges in module tests;49 targeted tests pass. Normal-target strict inventory still fails pending normal #3847 merge; no helper copy, merge waiver, generation change or runtime-dependency workaround. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…eptance Normally integrate powershell-v3 844672d without candidate overlays or rewriting prior migration and generation boundaries. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…arget Use normal finite-path operation-ID alignment for all twelve beta survivors, remove rejected Legacy integration fields, and retain independent complete original-source evidence. Explicitly pin emitted v1.0/beta transport profiles without per-profile authored filters. Ordinary strict inventory maps all four directives and final module/configurator/naming/emitter/composite tests pass179. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Full unchanged queued Release pipeline on normal844672 after final source75fa54a4: exit0/OK32.7s, 297 compiled exports. Regenerate combined client/cmdlet/project/lock output with packaged Authentication2.41.2 and Kiota1.36.1. Explicit v1.0 transport/default/item GET proof passes, reviewed suppression1 absent and neighbors7 present; generated bin contains only3ownedDLLs and no dependency preload. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Full unchanged queued Release pipeline on normal844672 after final source75fa54a4: exit0/OK114s, 1187 compiled exports. Combined Kiota/cmdlet/project/lock generation preserves Beta casing; explicit beta transport,3ownDLLs/no dependency preload,15suppressed routes absent and24neighbors present. Actual six composite workers preserve typed PATCH bodies, escaped same-route204GETrefetch, mandatory route/body distinction and safety. REQUIRED generic Headers on PATCH204GETrefetch fail for both parents, so no full runtime/PR completion is claimed pending normal3886; exact evidence preserved without globalpatch. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…ptance Normally integrate powershell-v3 6475f3f and preserve all prior source and separate profile generation history. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Exercise actual normal-profile ordinary and composite workers with derived data on and off. Assert no implicit GET, retained typed-result guard, per-operation headers, explicit API roots and distinct composite route/body IDs. Independently prove no required native query inputs exist in either DeviceManagement compatible spec. Combined final module/naming/configuration/composite/required-query/PATCH regressions pass238 with nonempty TRX; ordinary inventory maps all4 directives. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Fresh unchanged four-mutex full Release pipeline on normal6475 after finalsource69aac73: exit0/OK521.2s,297exports, followed by successful no-incremental Release rebuild. Combined Kiota/client/cmdlet/project/lock run preserves unchanged client output honestly and removes automatic PATCH readback. Actual Global runtime proves PATCH204 onePATCH/noobject withGET403 configured, PATCH200 typed onePATCH, independent explicit GET, typed POST/action/DELETE, headers, safety and normal Authentication closure. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Fresh unchanged four-mutex full Release pipeline on normal6475 after finalsource69aac73: exit0/OK748.9s,1187exports, followed by successful no-incremental Release rebuild. Combined Kiota/client/cmdlet/project/lock regeneration preserves unchanged client output honestly and Beta casing. Fresh Global/USGov full-module Factory proofs pass ordinary+bothcomposite PATCH204 onePATCH/noobject withGET403 configured and PATCH200 own typedmodel; explicit GET independent, distinct route/body IDs, escaped URLs, native headers and safety retained. No dependency copies/preloads or invented readback flags. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Ramses Sanchez-Hernandez (ramsessanchez)
requested a review
from a team
as a code owner
November 6, 2026 01:56
This branch has not been deployed
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.
N/A (module migration; no standalone issue is closed).
Changes proposed in this pull request
Migrate only
src\DeviceManagement\DeviceManagement.mdshared cmdlet directives. Keep every original AutoRest directive active and annotated. Ignoresrc\readme.graph.mdand all profile-local readmes. Parameter aliases/transforms and schema/response directives remain deferred (none occur in this shared file). Both compatible profiles are supported; no profile is excluded.All 15 shared exact suppressions are retained with derived data on/off and explicit separate generation-profile context. No Legacy bridge fields, profile filters, resurrected
DeviceManagement.Actions, global generator changes, or new authored route selectors/groups.Integrate actual normal target
6475f3f5beb4908d39ea356db32bf1e0fd3273cb, then regenerate complete Kiota clients, cmdlets, projects and locks separately for v1.0 (6292b85f1a50ccfd260729a44355d0b4248d5754) and beta (df343d7f469f89a7881a52a0218e16b4bfadf35a). Source/test correction:69aac73fd2d98e4a919be07f19e641239a3f0f52; normal merge:2940296e6644020f842bb5761d7dd8a4c10284be. Earlier migration/profile commit boundaries are preserved.Both full Release runs use isolated Kiota
1.36.1+fd3bf87790149b87f40f7eae1a5feb9016625943with process-local model-generation parallelism1, PowerShell 7, and the complete normally built Authentication2.41.2package (all 64 file hashes and physical nupkg SHA256 verified). Wrapper bins contain only the three owned DLLs; there are no dependency copies or preloads. ExistingBetadirectory casing is preserved.Validate the actual generated modules, not candidate snapshots. PATCH 204 returns no object and sends exactly one PATCH even while GET would return 403; PATCH 200 returns its own typed response with no readback. Caller-explicit GET is independently exercised. Retain all six beta composite workers, mandatory route keys and distinct
PolicyId1/DeviceId1body values. Global/USGov checks assert correct selected profile/cloud URLs, escaped IDs, JSON bodies, headers/If-Match, bodyless DELETE, typed POST/action/GET, default List, WhatIf, genuine declined confirmation, binder rejection, normal assembly ownership, cache reuse, request-context/reconnect invalidation and disconnected no-send.Offline runtime isolation correction (probe-only, same head and compiled modules): after the final additional-runspace module import, reapply the existing normal
Set-MgTestDataStorehelper and reflect the real sharedGraphSession.DataStorebefore Connect, HTTP, request-context changes, reconnect/disconnect and logout. All four profile/cloud runtime gates were rerun with these guards: 276 actual reflected checks and 64 terminal HTTP checks observedMicrosoft.Graph.Authentication.Test.Mocks.MockDataStore, with zero mismatches. Authentication64/nupkg and compiled-bin hashes remain unchanged. No source, full build, TRX or generation reruns were performed; those valid prior artifacts are referenced by absolute path/hash in the new handoff. The original 65 evidence files, including the old runtime proof and original handoff, are preserved unchanged rather than relabeled as newly guarded runs. Datastore-type observation alone does not establish actual credential I/O.Validation commands and results
Process-local prerequisites: the exact normally built Authentication 2.41.2 root is first on
PSModulePath, the isolated Kiota directory is first onPATH, andKIOTA_Generation__MaxDegreeOfParallelism=1. No global installation, live Graph/OAuth, skipped Kiota, fallback spec, or manual generated-source edits.dotnet test .\tools\WrapperGenerator.Tests\WrapperGenerator.Tests.csproj --no-restore --filter 'FullyQualifiedName~DeviceManagementDirectiveMigrationTests|FullyQualifiedName~CmdletConfiguratorTests|FullyQualifiedName~DerivedCollisionResolutionsTests|FullyQualifiedName~NamingTests|FullyQualifiedName~CompositeKeyTests|FullyQualifiedName~RequiredQueryTests|FullyQualifiedName~PatchOperationTests' --logger 'trx;LogFileName=targeted.trx' --results-directory 'C:\Users\ramsess\.copilot\session-state\4f3b52ec-085d-494c-b9e1-b5a5bc09b5f7\files\post3886-6475-final' --verbosity quiettargeted.trxpwsh -NoProfile -NonInteractive -File .\tools\Get-WrapperDirectiveMigrationInventory.ps1 -Module DeviceManagement -FailOnUnresolved -AsJsonpwsh -NoProfile -NonInteractive -File 'C:\Users\ramsess\.copilot\session-state\871a5292-dc5b-423e-8083-5165b0006603\files\Invoke-QueuedModuleBuild.ps1' -RepoRoot 'C:\Users\ramsess\Repos\copilot-worktrees\msgraph-sdk-powershell\ramsessanchez-cautious-parakeet' -Module DeviceManagement -ApiVersion v1.0 -Configuration Releasepwsh -NoProfile -NonInteractive -File 'C:\Users\ramsess\.copilot\session-state\871a5292-dc5b-423e-8083-5165b0006603\files\Invoke-QueuedModuleBuild.ps1' -RepoRoot 'C:\Users\ramsess\Repos\copilot-worktrees\msgraph-sdk-powershell\ramsessanchez-cautious-parakeet' -Module DeviceManagement -ApiVersion beta -Configuration Releasedotnet build 'C:\Users\ramsess\Repos\copilot-worktrees\msgraph-sdk-powershell\ramsessanchez-cautious-parakeet\src\DeviceManagement\wrapper\v1.0\Microsoft.Graph.Wrapper.DeviceManagement.csproj' -c Release --no-incremental --nologo -v quietdotnet build 'C:\Users\ramsess\Repos\copilot-worktrees\msgraph-sdk-powershell\ramsessanchez-cautious-parakeet\src\DeviceManagement\wrapper\beta\Microsoft.Graph.Wrapper.DeviceManagement.csproj' -c Release --no-incremental --nologo -v quietpwsh -NoProfile -NonInteractive -File 'C:\Users\ramsess\.copilot\session-state\4f3b52ec-085d-494c-b9e1-b5a5bc09b5f7\files\post3886-6475-memory-final\Test-FinalRuntime.ps1' -RepoRoot $PWD.Path -Profile v1.0 -Cloud Globalpwsh -NoProfile -NonInteractive -File 'C:\Users\ramsess\.copilot\session-state\4f3b52ec-085d-494c-b9e1-b5a5bc09b5f7\files\post3886-6475-memory-final\Test-FinalRuntime.ps1' -RepoRoot $PWD.Path -Profile v1.0 -Cloud USGovpwsh -NoProfile -NonInteractive -File 'C:\Users\ramsess\.copilot\session-state\4f3b52ec-085d-494c-b9e1-b5a5bc09b5f7\files\post3886-6475-memory-final\Test-FinalRuntime.ps1' -RepoRoot $PWD.Path -Profile beta -Cloud Globalpwsh -NoProfile -NonInteractive -File 'C:\Users\ramsess\.copilot\session-state\4f3b52ec-085d-494c-b9e1-b5a5bc09b5f7\files\post3886-6475-memory-final\Test-FinalRuntime.ps1' -RepoRoot $PWD.Path -Profile beta -Cloud USGovpwsh -NoProfile -NonInteractive -File 'C:\Users\ramsess\.copilot\session-state\4f3b52ec-085d-494c-b9e1-b5a5bc09b5f7\files\post3886-6475-final\Test-DeviceManagementCompiledRoutes.ps1' -RepoRoot $PWD.Path -Profile v1.0pwsh -NoProfile -NonInteractive -File 'C:\Users\ramsess\.copilot\session-state\4f3b52ec-085d-494c-b9e1-b5a5bc09b5f7\files\post3886-6475-final\Test-DeviceManagementCompiledRoutes.ps1' -RepoRoot $PWD.Path -Profile betapwsh -NoProfile -NonInteractive -File .\tools\Compare-WrapperCmdletNames.ps1 -GeneratedPath .\src\DeviceManagement\wrapper\v1.0\Cmdletspwsh -NoProfile -NonInteractive -File .\tools\Compare-WrapperCmdletNames.ps1 -GeneratedPath .\src\DeviceManagement\wrapper\Beta\CmdletsMgBetaprefix/noun differences, not normalized into a false passRequired native query inputs: none in either actual module spec, independently checked in source tests; no sibling-GET inputs are added to PATCH. Offline transport evidence is not service/tenant certification. Optional-query issue [v3 wrappers] Support arbitrary optional query parameters #3897 and unrelated naming/PostPath work are outside scope. Historical failed and candidate evidence is preserved separately; current proof and complete Git/file/hash provenance are in
C:\Users\ramsess\.copilot\session-state\4f3b52ec-085d-494c-b9e1-b5a5bc09b5f7\files\post3886-6475-memory-final\handoff.json.Other links