eng/scripts/Update-SdkVersion.ps1 (63 lines of code) (raw):

<# .SYNOPSIS Bumps up sdk version after release .DESCRIPTION This script bumps up the sdk version found in az_version.h following conventions defined at https://github.com/Azure/azure-sdk/blob/main/docs/policies/releases.md#incrementing-after-release-c We use the version number defined in AZ_SDK_VERSION_STRING, and then overwrite other #defines .PARAMETER NewVersionString Use this to overide version incement logic and set a version specified by this parameter .EXAMPLE Updating sdk version to next preview version Update-SdkVersion.ps1 Updating sdk version with a specified verion Update-SdkVersion.ps1 -NewVersionString 2.0.5 #> [CmdletBinding()] Param ( [ValidateNotNullOrEmpty()] [string] $NewVersionString ) . ${PSScriptRoot}\..\common\scripts\SemVer.ps1 . ${PSScriptRoot}\SdkVersion-Common.ps1 # Updated Version in version file and changelog using computed or set NewVersionString function Update-Version([AzureEngSemanticVersion]$SemVer, $Unreleased=$True, $ReplaceLatestEntryTitle=$False) { Write-Output "New Version: $($SemVer)" # if ($SemVer.HasValidPrereleaseLabel() -ne $true){ # Write-Error "Invalid prerelease label" # exit 1 # } # This is macro string value when shipping GA $PrereleaseDefine = @" #define AZ_SDK_VERSION_PRERELEASE #undef AZ_SDK_VERSION_PRERELEASE "@ if ($SemVer.IsPrerelease -eq $true){ # Macro string value when shipping preview $PrereleaseDefine = "`#define AZ_SDK_VERSION_PRERELEASE `"$($SemVer.PrereleaseLabel).$($SemVer.PrereleaseNumber)`"" } (Get-Content -Path $SdkVersionPath -Raw) ` -replace $VersionStringRegEx, "`${1}`"$($SemVer)`"" ` -replace $VersionMajorRegEx, "`${1}$($SemVer.Major)" ` -replace $VersionMinorRegEx, "`${1}$($SemVer.Minor)" ` -replace $VersionPatchRegEx, "`${1}$($SemVer.Patch)" ` -replace $VersionPrereleaseRegEx, $PrereleaseDefine | Set-Content -Path $SdkVersionPath -NoNewline # Increment Version in ChangeLog file & "${PSScriptRoot}/../common/scripts/Update-ChangeLog.ps1" -Version $SemVer.ToString() -ChangeLogPath $ChangelogPath -Unreleased $Unreleased -ReplaceLatestEntryTitle $ReplaceLatestEntryTitle } $match = $SdkVersionFile -match $VersionStringRegEx $SdkVersion = $Matches[2] if ([System.String]::IsNullOrEmpty($NewVersionString)) { $SemVer = [AzureEngSemanticVersion]::new($SdkVersion) Write-Output "Current Version: ${SdkVersion}" $SemVer.IncrementAndSetToPrerelease() Update-Version -SemVer $SemVer } else { # Use specified VersionString $SemVer = [AzureEngSemanticVersion]::new($NewVersionString) Update-Version -SemVer $SemVer -Unreleased $False -ReplaceLatestEntryTitle $True }