Add new support for Relationships module #29412
Add new support for Relationships module #29412meghanagupta95 wants to merge 14 commits intoAzure:mainfrom
Conversation
# Conflicts: # src/ServiceGroups/ServiceGroups/help/Az.ServiceGroups.md # tools/CreateMappings_rules.json
| Thanks for your contribution! The pull request validation has started. Please revisit this comment for updated status. |
|
Azure Pipelines: 4 pipeline(s) require an authorized user to comment /azp run to run. |
|
/azp run |
|
Azure Pipelines: Successfully started running 3 pipeline(s). |
There was a problem hiding this comment.
Pull request overview
Adds a new Az.Relationships PowerShell module (code-generated/AutoRest-style) intended for public preview, including initial cmdlet help content, module packaging assets, and Pester tests.
Changes:
- Added
Az.Relationshipswrapper module assets (manifest, csproj, changelog, help stubs). - Added
Relationships.Autorestconfiguration, docs/examples stubs, and Pester tests scaffolding. - Registered the new module name in
tools/CreateMappings_rules.json.
Reviewed changes
Copilot reviewed 59 out of 59 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| tools/CreateMappings_rules.json | Registers the new Relationships module mapping. |
| src/Relationships/Relationships/help/Get-AzRelationshipsDependencyOfRelationship.md | Adds cmdlet help markdown (currently template placeholders). |
| src/Relationships/Relationships/help/Get-AzRelationshipsServiceGroupMemberRelationship.md | Adds cmdlet help markdown (currently template placeholders). |
| src/Relationships/Relationships/help/New-AzRelationshipsDependencyOfRelationship.md | Adds cmdlet help markdown (currently template placeholders). |
| src/Relationships/Relationships/help/New-AzRelationshipsServiceGroupMemberRelationship.md | Adds cmdlet help markdown (currently template placeholders). |
| src/Relationships/Relationships/help/Remove-AzRelationshipsDependencyOfRelationship.md | Adds cmdlet help markdown (currently template placeholders). |
| src/Relationships/Relationships/help/Remove-AzRelationshipsServiceGroupMemberRelationship.md | Adds cmdlet help markdown (currently template placeholders). |
| src/Relationships/Relationships/help/Update-AzRelationshipsDependencyOfRelationship.md | Adds cmdlet help markdown (currently template placeholders). |
| src/Relationships/Relationships/help/Update-AzRelationshipsServiceGroupMemberRelationship.md | Adds cmdlet help markdown (currently template placeholders). |
| src/Relationships/Relationships/Relationships.csproj | Introduces the wrapper project to package manifest/help. |
| src/Relationships/Relationships/Properties/AssemblyInfo.cs | Adds wrapper assembly metadata/versioning. |
| src/Relationships/Relationships/ChangeLog.md | Adds module changelog scaffold (Upcoming Release currently empty). |
| src/Relationships/Relationships/Az.Relationships.psd1 | Adds module manifest pointing to AutoRest-generated nested module assets. |
| src/Relationships/Relationships.sln | Adds solution file referencing the AutoRest project (path currently suspect). |
| src/Relationships/Relationships.Autorest/utils/Unprotect-SecureString.ps1 | Adds standard utility script used by many AutoRest modules. |
| src/Relationships/Relationships.Autorest/utils/Get-SubscriptionIdTestSafe.ps1 | Adds test-safe subscription ID helper. |
| src/Relationships/Relationships.Autorest/tspconfig.yaml | Adds TypeSpec PowerShell emitter configuration and directives. |
| src/Relationships/Relationships.Autorest/tsp-location.yaml | Adds a TypeSpec location tracker file (currently machine-specific). |
| src/Relationships/Relationships.Autorest/test/utils.ps1 | Adds Pester test environment setup/cleanup helpers. |
| src/Relationships/Relationships.Autorest/test/localEnv.json | Adds a live test environment capture (should not be committed). |
| src/Relationships/Relationships.Autorest/test/loadEnv.ps1 | Adds test environment loader script. |
| src/Relationships/Relationships.Autorest/test/env.json | Adds checked-in test env template. |
| src/Relationships/Relationships.Autorest/test/Update-AzRelationshipsServiceGroupMemberRelationship.Tests.ps1 | Adds Pester coverage for Update cmdlet (SG member relationship). |
| src/Relationships/Relationships.Autorest/test/Update-AzRelationshipsDependencyOfRelationship.Tests.ps1 | Adds Pester coverage for Update cmdlet (dependencyOf). |
| src/Relationships/Relationships.Autorest/test/Remove-AzRelationshipsServiceGroupMemberRelationship.Tests.ps1 | Adds Pester coverage for Remove cmdlet (SG member relationship). |
| src/Relationships/Relationships.Autorest/test/Remove-AzRelationshipsDependencyOfRelationship.Tests.ps1 | Adds Pester coverage for Remove cmdlet (dependencyOf). |
| src/Relationships/Relationships.Autorest/test/README.md | Adds test folder documentation. |
| src/Relationships/Relationships.Autorest/test/New-AzRelationshipsServiceGroupMemberRelationship.Tests.ps1 | Adds Pester coverage for New cmdlet (SG member relationship). |
| src/Relationships/Relationships.Autorest/test/New-AzRelationshipsDependencyOfRelationship.Tests.ps1 | Adds Pester coverage for New cmdlet (dependencyOf). |
| src/Relationships/Relationships.Autorest/test/Get-AzRelationshipsServiceGroupMemberRelationship.Tests.ps1 | Adds Pester coverage for Get cmdlet (SG member relationship). |
| src/Relationships/Relationships.Autorest/test/Get-AzRelationshipsDependencyOfRelationship.Tests.ps1 | Adds Pester coverage for Get cmdlet (dependencyOf). |
| src/Relationships/Relationships.Autorest/resources/README.md | Adds resources folder documentation. |
| src/Relationships/Relationships.Autorest/how-to.md | Adds module development how-to documentation. |
| src/Relationships/Relationships.Autorest/examples/Get-AzRelationshipsServiceGroupMemberRelationship.md | Adds example stub content (currently placeholders). |
| src/Relationships/Relationships.Autorest/examples/Get-AzRelationshipsDependencyOfRelationship.md | Adds example stub content (currently placeholders). |
| src/Relationships/Relationships.Autorest/examples/New-AzRelationshipsServiceGroupMemberRelationship.md | Adds example stub content (currently placeholders). |
| src/Relationships/Relationships.Autorest/examples/New-AzRelationshipsDependencyOfRelationship.md | Adds example stub content (currently placeholders). |
| src/Relationships/Relationships.Autorest/examples/Remove-AzRelationshipsServiceGroupMemberRelationship.md | Adds example stub content (currently placeholders). |
| src/Relationships/Relationships.Autorest/examples/Remove-AzRelationshipsDependencyOfRelationship.md | Adds example stub content (currently placeholders). |
| src/Relationships/Relationships.Autorest/examples/Update-AzRelationshipsServiceGroupMemberRelationship.md | Adds example stub content (currently placeholders). |
| src/Relationships/Relationships.Autorest/examples/Update-AzRelationshipsDependencyOfRelationship.md | Adds example stub content (currently placeholders). |
| src/Relationships/Relationships.Autorest/docs/Get-AzRelationshipsServiceGroupMemberRelationship.md | Adds generated docs output (currently placeholders). |
| src/Relationships/Relationships.Autorest/docs/Get-AzRelationshipsDependencyOfRelationship.md | Adds generated docs output (currently placeholders). |
| src/Relationships/Relationships.Autorest/docs/New-AzRelationshipsServiceGroupMemberRelationship.md | Adds generated docs output (currently placeholders). |
| src/Relationships/Relationships.Autorest/docs/New-AzRelationshipsDependencyOfRelationship.md | Adds generated docs output (currently placeholders). |
| src/Relationships/Relationships.Autorest/docs/Remove-AzRelationshipsServiceGroupMemberRelationship.md | Adds generated docs output (currently placeholders). |
| src/Relationships/Relationships.Autorest/docs/Remove-AzRelationshipsDependencyOfRelationship.md | Adds generated docs output (currently placeholders). |
| src/Relationships/Relationships.Autorest/docs/Update-AzRelationshipsServiceGroupMemberRelationship.md | Adds generated docs output (currently placeholders). |
| src/Relationships/Relationships.Autorest/docs/Update-AzRelationshipsDependencyOfRelationship.md | Adds generated docs output (currently placeholders). |
| src/Relationships/Relationships.Autorest/docs/README.md | Adds docs folder README. |
| src/Relationships/Relationships.Autorest/docs/Az.Relationships.md | Adds module index doc for cmdlets. |
| src/Relationships/Relationships.Autorest/custom/README.md | Adds guidance for custom cmdlets. |
| src/Relationships/Relationships.Autorest/custom/Az.Relationships.custom.psm1 | Adds custom module loader/export scaffold. |
| src/Relationships/Relationships.Autorest/UX/Microsoft.Relationships/serviceGroupMember.json | Adds UX command metadata for SG member relationship. |
| src/Relationships/Relationships.Autorest/UX/Microsoft.Relationships/dependencyOf.json | Adds UX command metadata for dependencyOf relationship. |
| src/Relationships/Relationships.Autorest/README.md | Adds AutoRest module README scaffold. |
| src/Relationships/Relationships.Autorest/Properties/AssemblyInfo.cs | Adds AutoRest assembly metadata/versioning. |
| src/Relationships/Relationships.Autorest/.gitignore | Adds standard AutoRest output ignores. |
| src/Relationships/Relationships.Autorest/.gitattributes | Adds text normalization attributes. |
| RequiredAssemblies = 'Relationships.Autorest/bin/Az.Relationships.private.dll' | ||
|
|
||
| # Script files (.ps1) that are run in the caller's environment prior to importing this module. | ||
| ScriptsToProcess = @() | ||
|
|
||
| # Type files (.ps1xml) to be loaded when importing this module | ||
| TypesToProcess = @() | ||
|
|
||
| # Format files (.ps1xml) to be loaded when importing this module | ||
| FormatsToProcess = 'Relationships.Autorest/Az.Relationships.format.ps1xml' | ||
|
|
||
| # Modules to import as nested modules of the module specified in RootModule/ModuleToProcess | ||
| NestedModules = @('Relationships.Autorest/Az.Relationships.psm1') |
There was a problem hiding this comment.
The module manifest references nested module assets under Relationships.Autorest/ (private DLL, format file, and Az.Relationships.psm1), but there is no corresponding generated output folder in the repo (e.g., generated/Relationships/Relationships.Autorest/ like other AutoRest modules). As-is, importing/building Az.Relationships will fail because these referenced files don't exist. Please add/commit the generated AutoRest project output (or update the manifest paths to where the generated artifacts actually live).
| Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Relationships.Autorest", "Relationships.Autorest", "{70B5B518-732F-B4FA-61D8-EC0023A4A294}" | ||
| EndProject | ||
| Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Az.Relationships", "Relationships.Autorest\Az.Relationships.csproj", "{6F458F0C-D22D-48F9-A5AA-4AD0751760F9}" | ||
| EndProject |
There was a problem hiding this comment.
This solution references Relationships.Autorest\Az.Relationships.csproj, but that project file isn't present in the repository. Other modules typically reference the committed generated project under generated/<Module>/<Module>.Autorest/. Please update the .sln to point at the correct (committed) generated project location, or ensure the referenced .csproj is included as part of the PR.
| ## Upcoming Release | ||
|
|
||
| ## Version 0.1.0 | ||
| * First preview release for module Az.Relationships |
There was a problem hiding this comment.
The ## Upcoming Release section is empty. Since this PR introduces a new public preview module, please add a user-facing entry under ## Upcoming Release (past tense) describing the new Az.Relationships cmdlets/module surface.
|
Azure Pipelines: 4 pipeline(s) require an authorized user to comment /azp run to run. |
|
/azp run |
|
Commenter does not have sufficient privileges for PR 29412 in repo Azure/azure-powershell |
|
Azure Pipelines: 4 pipeline(s) require an authorized user to comment /azp run to run. |
80bc147 to
f3f5433
Compare
|
Azure Pipelines: 4 pipeline(s) require an authorized user to comment /azp run to run. |
f3f5433 to
aa1cd6a
Compare
|
Azure Pipelines: 4 pipeline(s) require an authorized user to comment /azp run to run. |
|
/azp run |
|
Azure Pipelines: Successfully started running 3 pipeline(s). |
aa1cd6a to
973a7b5
Compare
|
Azure Pipelines: 4 pipeline(s) require an authorized user to comment /azp run to run. |
|
/azp run |
|
Commenter does not have sufficient privileges for PR 29412 in repo Azure/azure-powershell |
|
/azp run |
|
Commenter does not have sufficient privileges for PR 29412 in repo Azure/azure-powershell |
|
/azp run |
|
Azure Pipelines successfully started running 3 pipeline(s). |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 60 out of 60 changed files in this pull request and generated 1 comment.
Comments suppressed due to low confidence (5)
src/Relationships/Relationships/ChangeLog.md:1
- The changelog template indicates entries should be added under
## Upcoming Release, and prior releases should follow a dated header format (e.g.,## YYYY.MM.DD - Version X.Y.Z). Right nowUpcoming Releaseis empty andVersion 0.1.0lacks the date portion—please either record this PR’s change underUpcoming Release(past tense) or convert## Version 0.1.0to the template’s dated release header.
src/Relationships/Relationships.Autorest/test/utils.ps1:1 - Removing resource groups without
-Force(and/or explicitly setting-Confirm:$false) can prompt for confirmation, which can hang CI/test runs. Update these cleanup calls to be non-interactive (and ideally resilient), e.g., add-Forceand-Confirm:$falseso automated test environments won’t block.
src/Relationships/Relationships.Autorest/test/Remove-AzRelationshipsDependencyOfRelationship.Tests.ps1:1 - The help text states deletes are asynchronous; asserting that a subsequent
Get-*immediately throws can be flaky in live/record runs due to eventual consistency. Consider adding a bounded retry/poll loop (with sleeps skipped in playback), or waiting until the resource is actually gone before asserting.
src/Relationships/Relationships.Autorest/test/Update-AzRelationshipsDependencyOfRelationship.Tests.ps1:1 - This update test doesn’t validate that the update actually changes anything—
TargetIdis set to$env.DepTargetId, which is also used when creating the relationship insetupEnv. To cover update behavior, update to a different valid target and assert on the returned (or subsequently fetched) target property instead of only asserting.Name.
src/Relationships/Relationships.Autorest/utils/Unprotect-SecureString.ps1:1 - Shipping a utility that converts
SecureStringto plaintext increases the risk of accidental secret disclosure (e.g., logging/telemetry/pipeline output). If this is only intended for local/dev/test use, consider ensuring it is not packaged with the module and not dot-sourced/exported; otherwise add clear warnings/guardrails (and ensure it’s not invoked by default anywhere).
| - `-Pack`: After building, packages the module into a `.nupkg`. | ||
| - `-Code`: After building, opens a VSCode window with the module's directory and runs (see `-Run`) the module. | ||
| - `-Release`: Builds the module in `Release` configuration (as opposed to `Debug` configuration). | ||
| - `-NoDocs`: Supresses writing the documentation markdown files as part of the cmdlet exporting process. |
There was a problem hiding this comment.
Correct spelling of 'Supresses' to 'Suppresses'.
| - `-NoDocs`: Supresses writing the documentation markdown files as part of the cmdlet exporting process. | |
| - `-NoDocs`: Suppresses writing the documentation markdown files as part of the cmdlet exporting process. |
Description
This PR adds a new module for the resource type 'Relationships' using the code generation method. This is required as part of our move to public preview.
Mandatory Checklist
Please choose the target release of Azure PowerShell. (⚠️ Target release is a different concept from API readiness. Please click below links for details.)
Check this box to confirm: I have read the Submitting Changes section of
CONTRIBUTING.mdand reviewed the following information:ChangeLog.mdfile(s) appropriatelysrc/{{SERVICE}}/{{SERVICE}}/ChangeLog.md.## Upcoming Releaseheader in the past tense.ChangeLog.mdif no new release is required, such as fixing test case only.