Skip to content

Commit 8f218eb

Browse files
committed
Specify dependency versions in manifest.
1 parent f5e4813 commit 8f218eb

File tree

4 files changed

+18
-15
lines changed

4 files changed

+18
-15
lines changed

tools/BuildModule.ps1

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Param(
77
[Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()][string] $ModuleVersion,
88
[Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()][string[]] $ReleaseNotes,
99
[int] $ModulePreviewNumber = -1,
10-
[string[]] $RequiredModules,
10+
[hashtable[]] $RequiredModules,
1111
[switch] $EnableSigning
1212
)
1313
$ErrorActionPreference = "Stop"

tools/GenerateModules.ps1

+6-6
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,9 @@ if ($BetaGraphVersion) {
3333
}
3434
$ModulePrefix = "Microsoft.Graph"
3535
$ModulesOutputDir = Join-Path $PSScriptRoot "..\src\$GraphVersion\"
36-
$AuthenticationModule = "Microsoft.Graph.Authentication"
3736
$OpenApiDocOutput = Join-Path $OpenApiDocOutput $GraphVersion
3837
$ArtifactsLocation = Join-Path $PSScriptRoot "..\artifacts\$GraphVersion"
39-
38+
$RequiredGraphModules = @()
4039
# PS Scripts
4140
$DownloadOpenApiDocPS1 = Join-Path $PSScriptRoot ".\DownloadOpenApiDoc.ps1" -Resolve
4241
$ManageGeneratedModulePS1 = Join-Path $PSScriptRoot ".\ManageGeneratedModule.ps1" -Resolve
@@ -53,10 +52,11 @@ if (-not (Test-Path $ArtifactsLocation)) {
5352
if (-not (Test-Path $ModuleMappingConfigPath)) {
5453
Write-Error "Module mapping file not be found: $ModuleMappingConfigPath."
5554
}
56-
5755
# Install module locally in order to specify it as a dependency for other modules down the generation pipeline.
5856
# https://stackoverflow.com/questions/46216038/how-do-i-define-requiredmodules-in-a-powershell-module-manifest-psd1.
59-
Install-Module $AuthenticationModule -Repository $RepositoryName -AllowPrerelease -Force
57+
$ExistingAuthModule = Find-Module "Microsoft.Graph.Authentication"
58+
Install-Module $ExistingAuthModule.Name -Repository $RepositoryName -AllowPrerelease -Force
59+
$RequiredGraphModules += @{ ModuleName = $ExistingAuthModule.Name ; RequiredVersion = $ExistingAuthModule.Version }
6060
if ($UpdateAutoRest) {
6161
# Update AutoRest.
6262
& AutoRest-beta --reset
@@ -123,10 +123,10 @@ $ModuleMapping.Keys | ForEach-Object {
123123
# Build generated module.
124124
if ($EnableSigning) {
125125
# Sign generated module.
126-
& $BuildModulePS1 -Module $ModuleName -ModulePrefix $ModulePrefix -GraphVersion $GraphVersion -ModuleVersion $ModuleVersion -ModulePreviewNumber $ModulePreviewNumber -RequiredModules $AuthenticationModule -ReleaseNotes $ModuleReleaseNotes -EnableSigning
126+
& $BuildModulePS1 -Module $ModuleName -ModulePrefix $ModulePrefix -GraphVersion $GraphVersion -ModuleVersion $ModuleVersion -ModulePreviewNumber $ModulePreviewNumber -RequiredModules $RequiredGraphModules -ReleaseNotes $ModuleReleaseNotes -EnableSigning
127127
}
128128
else {
129-
& $BuildModulePS1 -Module $ModuleName -ModulePrefix $ModulePrefix -GraphVersion $GraphVersion -ModuleVersion $ModuleVersion -ModulePreviewNumber $ModulePreviewNumber -RequiredModules $AuthenticationModule -ReleaseNotes $ModuleReleaseNotes
129+
& $BuildModulePS1 -Module $ModuleName -ModulePrefix $ModulePrefix -GraphVersion $GraphVersion -ModuleVersion $ModuleVersion -ModulePreviewNumber $ModulePreviewNumber -RequiredModules $RequiredGraphModules -ReleaseNotes $ModuleReleaseNotes
130130
}
131131

132132
if ($LASTEXITCODE) {

tools/GenerateRollUpModule.ps1

+7-5
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ $ModuleMetadataJson = Join-Path $PSScriptRoot "..\config\ModuleMetadata.json" -R
3838
$ArtifactsLocation = Join-Path $PSScriptRoot "..\artifacts\$GraphVersion\"
3939
$GraphModuleLocation = Join-Path $PSScriptRoot "..\src\$GraphVersion\Graph\Graph"
4040
$RollUpModuleNuspec = Join-Path $GraphModuleLocation ".\$ModulePrefix"
41-
$RequiredGraphModules = New-Object collections.generic.list[string]
41+
$RequiredGraphModules = @()
4242
[HashTable] $ModuleMapping = Get-Content $ModuleMappingConfigPath | ConvertFrom-Json -AsHashTable
4343
[HashTable] $NuspecMetadata = Get-Content $ModuleMetadataJson | ConvertFrom-Json -AsHashTable
4444
$NuspecMetadata.Remove("assemblyOriginatorKeyFile")
@@ -76,14 +76,16 @@ elseif ($VersionState.Equals([VersionState]::Valid) -or $VersionState.Equals([Ve
7676
}
7777

7878
# Add auth module as a dependency.
79-
Install-Module "Microsoft.Graph.Authentication" -Repository $RepositoryName -AllowPrerelease -Force
80-
$RequiredGraphModules.Add("Microsoft.Graph.Authentication")
79+
$ExistingAuthModule = Find-Module "Microsoft.Graph.Authentication"
80+
Install-Module $ExistingAuthModule.Name -Repository $RepositoryName -AllowPrerelease -Force
81+
$RequiredGraphModules += @{ ModuleName = $ExistingAuthModule.Name ; ModuleVersion = $ExistingAuthModule.Version }
8182

8283
foreach ($RequiredModule in $ModuleMapping.Keys) {
8384
# Install module locally in order to specify it as a dependency of the roll-up module down the generation pipeline.
8485
# https://stackoverflow.com/questions/46216038/how-do-i-define-requiredmodules-in-a-powershell-module-manifest-psd1.
85-
Install-Module "$ModulePrefix.$RequiredModule" -Repository $RepositoryName -AllowPrerelease -Force
86-
$RequiredGraphModules.Add("$ModulePrefix.$RequiredModule")
86+
$ExistingWorkloadModule = Find-Module "$ModulePrefix.$RequiredModule"
87+
Install-Module $ExistingWorkloadModule.Name -Repository $RepositoryName -AllowPrerelease -Force
88+
$RequiredGraphModules += @{ ModuleName = $ExistingWorkloadModule.Name ; RequiredVersion = $ExistingWorkloadModule.Version }
8789
}
8890

8991
[HashTable]$ModuleManifestSettings = @{

tools/NuspecHelper.ps1

+4-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ function Set-NuSpecValues(
44
[parameter(Position=1,Mandatory=$true)][ValidateScript({Test-Path $_ -PathType Leaf})][string] $NuSpecFilePath,
55
[parameter(Position=2,Mandatory=$true)][string] $VersionNumber,
66
[parameter(Position=3,Mandatory=$true)][string] $IconUrl,
7-
[parameter(Position=4)][string[]] $Dependencies,
7+
[parameter(Position=4)][hashtable[]] $Dependencies,
88
[parameter(Position=5)][string[]] $ReleaseNotes) {
99
$XmlDocument = New-Object System.Xml.XmlDocument
1010
$XmlDocument.Load($NuSpecFilePath)
@@ -69,7 +69,7 @@ function Set-ElementValue(
6969
function Set-Dependencies(
7070
[System.Xml.XmlDocument] $XmlDocument,
7171
[System.Xml.XmlElement] $MetadataElement,
72-
[string[]] $Dependencies) {
72+
[hashtable[]] $Dependencies) {
7373
if(-not $MetadataElement["dependencies"]){
7474
$NewDependenciesElement = $XmlDocument.CreateElement("dependencies", $XmlDocument.DocumentElement.NamespaceURI)
7575
$MetadataElement.AppendChild($NewDependenciesElement)
@@ -79,7 +79,8 @@ function Set-Dependencies(
7979

8080
foreach($Dependency in $Dependencies){
8181
$NewDependencyElement = $XmlDocument.CreateElement("dependency", $XmlDocument.DocumentElement.NamespaceURI)
82-
$NewDependencyElement.SetAttribute("id", $Dependency)
82+
$NewDependencyElement.SetAttribute("id", $Dependency.ModuleName)
83+
$NewDependencyElement.SetAttribute("version", $Dependency.ModuleVersion ?? $Dependency.RequiredVersion)
8384

8485
$MetadataElement["dependencies"].AppendChild($NewDependencyElement)
8586
}

0 commit comments

Comments
 (0)