@@ -123,15 +123,37 @@ function GetOfferVersion($offerId, $mainTemplateUrl)
123123
124124function GetPackageVersion ($defaultPackageVersion , $offerId , $offerDetails , $packageVersionAttribute , $userInputPackageVersion )
125125{
126+ $setPackageVersion = $defaultPackageVersion
127+
126128 if ($packageVersionAttribute )
127129 {
128130 $userInputMajor , $userInputMinor , $userInputBuild , $userInputRevision = $userInputPackageVersion.split (" ." )
129131 $defaultMajor , $defaultMinor , $defaultBuild , $defaultRevision = $defaultPackageVersion.split (" ." )
130132
131- if ($userInputMajor -ge ' 2' -and $userInputMinor -gt $defaultMinor )
132- {
133- # return as is value of package version as middle value is greater
134- return $userInputPackageVersion
133+ # Convert to integers for proper numeric comparison
134+ [int ]$userInputMajor = $userInputMajor
135+ [int ]$userInputMinor = $userInputMinor
136+ [int ]$userInputBuild = $userInputBuild
137+ [int ]$defaultMajor = $defaultMajor
138+ [int ]$defaultMinor = $defaultMinor
139+ [int ]$defaultBuild = $defaultBuild
140+
141+ if ($userInputMajor -ge 3 ) {
142+ # Version 3.x.x or higher: use user input if minor and build are greater than default
143+ if ($userInputMinor -ge $defaultMinor -and $userInputBuild -gt $defaultBuild ) {
144+ $setPackageVersion = $userInputPackageVersion
145+ if ($null -eq $offerDetails ) {
146+ Write-Host " Package version set to $setPackageVersion "
147+ return $setPackageVersion
148+ }
149+ } elseif ($null -eq $offerDetails ) {
150+ Write-Host " Package version set to $userInputPackageVersion "
151+ return $userInputPackageVersion
152+ }
153+ } elseif ($userInputMajor -le 2 ) {
154+ # Version 2.x.x: always use default
155+ Write-Host " Package version set to $defaultPackageVersion "
156+ return $defaultPackageVersion
135157 }
136158 }
137159
@@ -174,13 +196,13 @@ function GetPackageVersion($defaultPackageVersion, $offerId, $offerDetails, $pac
174196 {
175197 $identifiedOfferVersion = $offerMetadataVersion
176198 $catalogMajor , $catalogminor , $catalogbuild , $catalogrevision = $identifiedOfferVersion.split (" ." )
177- $defaultMajor , $defaultminor , $defaultbuild , $defaultrevision = $defaultPackageVersion .split (" ." )
199+ $defaultMajor , $defaultminor , $defaultbuild , $defaultrevision = $setPackageVersion .split (" ." )
178200
179- if ($defaultMajor -gt $catalogMajor )
201+ if ($defaultMajor -gt $catalogMajor -and $defaultminor -gt $catalogminor -and $defaultbuild -ge $catalogbuild )
180202 {
181- # eg: 3.0.0 > 2.0.1 ==> 3.0.0
182- Write-Host " Default Package version is greater then the CatalogAPI version so $defaultVersionMessage "
183- return $defaultPackageVersion
203+ # eg: 3.0.0 > 2.0.1 ==> 3.0.0 or 3.1.2 > 3.1.1 ==> 3.1.2
204+ Write-Host " Package version $setPackageVersion greater then the CatalogAPI version so $defaultVersionMessage "
205+ return $setPackageVersion
184206 }
185207 else
186208 {
0 commit comments