Skip to content

Commit 741ad61

Browse files
Update to Update-Changelog.ps1 (Azure#13058)
Co-authored-by: Chidozie Ononiwu <chononiw@microsoft.com>
1 parent 0b736fc commit 741ad61

File tree

1 file changed

+31
-22
lines changed

1 file changed

+31
-22
lines changed

eng/common/scripts/Update-ChangeLog.ps1

Lines changed: 31 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# Parameter description
44
# Version : Version to add or replace in change log
55
# Unreleased: Default is true. If it is set to false, then today's date will be set in verion title. If it is True then title will show "Unreleased"
6-
# ReplaceLatestEntry: Replaces the latest changelog entry, including its content.
6+
# ReplaceLatestEntryTitle: Replaces the latest changelog entry title.
77

88
param (
99
[Parameter(Mandatory = $true)]
@@ -12,41 +12,46 @@ param (
1212
[String]$ServiceDirectory,
1313
[Parameter(Mandatory = $true)]
1414
[String]$PackageName,
15-
[boolean]$Unreleased=$True,
16-
[boolean]$ReplaceLatestEntry = $False,
15+
[String]$Unreleased=$True,
16+
[String]$ReplaceLatestEntryTitle = $False,
1717
[String]$ReleaseDate
1818
)
1919

20-
if ($ReleaseDate -and ($Unreleased -eq $True)) {
20+
[Boolean]$Unreleased = [System.Convert]::ToBoolean($Unreleased)
21+
[Boolean]$ReplaceLatestEntryTitle = [System.Convert]::ToBoolean($ReplaceLatestEntryTitle)
22+
23+
. (Join-Path $PSScriptRoot common.ps1)
24+
25+
if ($ReleaseDate -and $Unreleased) {
2126
LogError "Do not pass 'ReleaseDate' arguement when 'Unreleased' is true"
2227
exit 1
2328
}
2429

25-
. (Join-Path $PSScriptRoot common.ps1)
26-
2730
if ($ReleaseDate)
2831
{
2932
try {
3033
$ReleaseStatus = ([DateTime]$ReleaseDate).ToString($CHANGELOG_DATE_FORMAT)
3134
$ReleaseStatus = "($ReleaseStatus)"
3235
}
3336
catch {
34-
LogError "Invalid 'ReleaseDate'. Please use a valid date in the format '$CHANGELOG_DATE_FORMAT'"
37+
LogError "Invalid 'ReleaseDate'. Please use a valid date in the format '$CHANGELOG_DATE_FORMAT'. See https://aka.ms/azsdk/changelogguide"
3538
exit 1
3639
}
3740
}
38-
elseif ($Unreleased) {
41+
elseif ($Unreleased)
42+
{
3943
$ReleaseStatus = $CHANGELOG_UNRELEASED_STATUS
4044
}
41-
else {
45+
else
46+
{
4247
$ReleaseStatus = "$(Get-Date -Format $CHANGELOG_DATE_FORMAT)"
4348
$ReleaseStatus = "($ReleaseStatus)"
4449
}
4550

4651
if ($null -eq [AzureEngSemanticVersion]::ParseVersionString($Version))
4752
{
48-
LogError "Version [$Version] is invalid. Please use a valid SemVer"
49-
exit(0)
53+
LogError "Version [$Version] is invalid. Please use a valid SemVer. See https://aka.ms/azsdk/changelogguide"
54+
exit 1
5055
}
5156

5257
$PkgProperties = Get-PkgProperties -PackageName $PackageName -ServiceDirectory $ServiceDirectory
@@ -57,21 +62,21 @@ if ($ChangeLogEntries.Contains($Version))
5762
{
5863
if ($ChangeLogEntries[$Version].ReleaseStatus -eq $ReleaseStatus)
5964
{
60-
LogWarning "Version is already present in change log with specificed ReleaseStatus [$ReleaseStatus]"
65+
LogWarning "Version [$Version] is already present in change log with specificed ReleaseStatus [$ReleaseStatus]. No Change made."
6166
exit(0)
6267
}
6368

6469
if ($Unreleased -and ($ChangeLogEntries[$Version].ReleaseStatus -ne $ReleaseStatus))
6570
{
66-
LogWarning "Version is already present in change log with a release date. Please review [$($PkgProperties.ChangeLogPath)]"
71+
LogWarning "Version [$Version] is already present in change log with a release date. Please review [$($PkgProperties.ChangeLogPath)]. No Change made."
6772
exit(0)
6873
}
6974

7075
if (!$Unreleased -and ($ChangeLogEntries[$Version].ReleaseStatus -ne $CHANGELOG_UNRELEASED_STATUS))
7176
{
7277
if ((Get-Date ($ChangeLogEntries[$Version].ReleaseStatus).Trim("()")) -gt (Get-Date $ReleaseStatus.Trim("()")))
7378
{
74-
LogWarning "New ReleaseDate for version [$Version] is older than existing release date in changelog. Please review [$($PkgProperties.ChangeLogPath)]"
79+
LogWarning "New ReleaseDate for version [$Version] is older than existing release date in changelog. Please review [$($PkgProperties.ChangeLogPath)]. No Change made."
7580
exit(0)
7681
}
7782
}
@@ -80,40 +85,44 @@ if ($ChangeLogEntries.Contains($Version))
8085
$PresentVersionsSorted = [AzureEngSemanticVersion]::SortVersionStrings($ChangeLogEntries.Keys)
8186
$LatestVersion = $PresentVersionsSorted[0]
8287

88+
LogDebug "The latest release note entry in the changelog is for version [$($LatestVersion)]"
89+
8390
$LatestsSorted = [AzureEngSemanticVersion]::SortVersionStrings(@($LatestVersion, $Version))
8491
if ($LatestsSorted[0] -ne $Version) {
85-
LogWarning "Passed Version [$Version] is older than the latestversion [$LatestVersion] in the changelog. Please use a more recent version."
92+
LogWarning "Version [$Version] is older than the latestversion [$LatestVersion] in the changelog. Please use a more recent version."
8693
exit(0)
8794
}
8895

89-
if ($ReplaceLatestEntry)
96+
if ($ReplaceLatestEntryTitle)
9097
{
98+
$newChangeLogEntry = New-ChangeLogEntry -Version $Version -Status $ReleaseStatus -Content $ChangeLogEntries[$LatestVersion].ReleaseContent
99+
LogDebug "Resetting latest entry title to [$($newChangeLogEntry.ReleaseTitle)]"
91100
$ChangeLogEntries.Remove($LatestVersion)
92-
$newChangeLogEntry = New-ChangeLogEntry -Version $Version -Status $ReleaseStatus
93101
if ($newChangeLogEntry) {
94102
$ChangeLogEntries[$Version] = $newChangeLogEntry
95103
}
96104
else {
97105
LogError "Failed to create new changelog entry"
106+
exit 1
98107
}
99108
}
100109
elseif ($ChangeLogEntries.Contains($Version))
101110
{
102-
$ChangeLogEntries[$Version].ReleaseVersion = $Version
111+
LogDebug "Updating ReleaseStatus for Version [$Version] to [$($ReleaseStatus)]"
103112
$ChangeLogEntries[$Version].ReleaseStatus = $ReleaseStatus
104113
$ChangeLogEntries[$Version].ReleaseTitle = "## $Version $ReleaseStatus"
105114
}
106-
else
115+
else
107116
{
117+
LogDebug "Adding new ChangeLog entry for Version [$Version]"
108118
$newChangeLogEntry = New-ChangeLogEntry -Version $Version -Status $ReleaseStatus
109119
if ($newChangeLogEntry) {
110120
$ChangeLogEntries[$Version] = $newChangeLogEntry
111121
}
112122
else {
113123
LogError "Failed to create new changelog entry"
124+
exit 1
114125
}
115126
}
116127

117-
Set-ChangeLogContent -ChangeLogLocation $PkgProperties.ChangeLogPath -ChangeLogEntries $ChangeLogEntries
118-
119-
128+
Set-ChangeLogContent -ChangeLogLocation $PkgProperties.ChangeLogPath -ChangeLogEntries $ChangeLogEntries

0 commit comments

Comments
 (0)