From 60a6d6a1254ed756126144c9215931858f34f651 Mon Sep 17 00:00:00 2001 From: alerickson <25858831+alerickson@users.noreply.github.com> Date: Mon, 31 Jul 2023 19:16:37 -0700 Subject: [PATCH 1/3] Set prerelease variable default value to Prerelease param value --- src/code/UpdatePSResource.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/code/UpdatePSResource.cs b/src/code/UpdatePSResource.cs index 9790e63f3..8456464c1 100644 --- a/src/code/UpdatePSResource.cs +++ b/src/code/UpdatePSResource.cs @@ -257,7 +257,7 @@ private string[] ProcessPackageNames( VersionType versionType, out bool latestInstalledIsPrerelease) { - latestInstalledIsPrerelease = false; + latestInstalledIsPrerelease = Prerelease; namesToProcess = Utils.ProcessNameWildcards( pkgNames: namesToProcess, From aee03563220e021db5446b4e6162565b1ad6a6c2 Mon Sep 17 00:00:00 2001 From: alerickson <25858831+alerickson@users.noreply.github.com> Date: Mon, 31 Jul 2023 19:38:55 -0700 Subject: [PATCH 2/3] Change how prerelease is validated --- src/code/UpdatePSResource.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/code/UpdatePSResource.cs b/src/code/UpdatePSResource.cs index 8456464c1..cc981cdb4 100644 --- a/src/code/UpdatePSResource.cs +++ b/src/code/UpdatePSResource.cs @@ -199,7 +199,7 @@ protected override void ProcessRecord() nugetVersion: nugetVersion, versionType: versionType, versionString: Version, - prerelease: latestInstalledIsPrerelease, + prerelease: latestInstalledIsPrerelease || Prerelease, repository: Repository, acceptLicense: AcceptLicense, quiet: Quiet, @@ -257,7 +257,7 @@ private string[] ProcessPackageNames( VersionType versionType, out bool latestInstalledIsPrerelease) { - latestInstalledIsPrerelease = Prerelease; + latestInstalledIsPrerelease = false; namesToProcess = Utils.ProcessNameWildcards( pkgNames: namesToProcess, @@ -331,7 +331,7 @@ private string[] ProcessPackageNames( nugetVersion: nuGetVersion, versionType: versionType, version: Version, - prerelease: latestInstalledIsPrerelease, + prerelease: latestInstalledIsPrerelease || Prerelease, tag: null, repository: Repository, includeDependencies: !SkipDependencyCheck)) From b2f62802c9bb2ec65f39ba08cdfb87e5bed6e81c Mon Sep 17 00:00:00 2001 From: alerickson <25858831+alerickson@users.noreply.github.com> Date: Mon, 31 Jul 2023 22:51:34 -0700 Subject: [PATCH 3/3] Add test --- .../UpdatePSResourceV2Tests.ps1 | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/test/UpdatePSResourceTests/UpdatePSResourceV2Tests.ps1 b/test/UpdatePSResourceTests/UpdatePSResourceV2Tests.ps1 index 4bc2683f4..0141e3e30 100644 --- a/test/UpdatePSResourceTests/UpdatePSResourceV2Tests.ps1 +++ b/test/UpdatePSResourceTests/UpdatePSResourceV2Tests.ps1 @@ -172,6 +172,24 @@ Describe 'Test HTTP Update-PSResource for V2 Server Protocol' -tags 'CI' { $isPkgUpdated | Should -Be $true } + It "Update resource to explicit prerelease version using NuGet syntax" { + Install-PSResource -Name $testModuleName -Version "1.0.0.0" -Repository $PSGalleryName -TrustRepository + Update-PSResource -Name $testModuleName -Version "[5.2.5-alpha001]" -Prerelease -Repository $PSGalleryName -TrustRepository + $res = Get-InstalledPSResource -Name $testModuleName + $res | Should -Not -BeNullOrEmpty + $isPkgUpdated = $false + foreach ($pkg in $res) + { + if ([System.Version]$pkg.Version -eq [System.Version]"5.2.5") + { + $pkg.Prerelease | Should -Be "alpha001" + $isPkgUpdated = $true + } + } + + $isPkgUpdated | Should -Be $true + } + It "Update prerelease version to a higher prerelease version not using -Prerelease parameter" { Install-PSResource -Name $testModuleName3 -Version "0.0.99-beta1" -Repository $PSGalleryName -TrustRepository Update-PSResource -Name $testModuleName3 -Repository $PSGalleryName -TrustRepository