Skip to content

Commit 44ce01c

Browse files
authored
Sync eng/common directory with azure-sdk-tools repository (#24071)
1 parent 4979296 commit 44ce01c

File tree

3 files changed

+23
-22
lines changed

3 files changed

+23
-22
lines changed

eng/common/scripts/ChangeLog-Operations.ps1

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
. "${PSScriptRoot}\SemVer.ps1"
44

55
$RELEASE_TITLE_REGEX = "(?<releaseNoteTitle>^\#+\s+(?<version>$([AzureEngSemanticVersion]::SEMVER_REGEX))(\s+(?<releaseStatus>\(.+\))))"
6-
$SECTION_HEADER_REGEX_SUFFIX = "##\s(?<sectionName>.*)"
6+
$SECTIONS_HEADER_REGEX = "^###+\s(?<sectionName>.*)"
77
$CHANGELOG_UNRELEASED_STATUS = "(Unreleased)"
88
$CHANGELOG_DATE_FORMAT = "yyyy-MM-dd"
99
$RecommendedSectionHeaders = @("Features Added", "Breaking Changes", "Bugs Fixed", "Other Changes")
@@ -49,7 +49,6 @@ function Get-ChangeLogEntriesFromContent {
4949
$initialAtxHeader = $matches["HeaderLevel"]
5050
}
5151

52-
$sectionHeaderRegex = "^${initialAtxHeader}${SECTION_HEADER_REGEX_SUFFIX}"
5352
$changeLogEntries | Add-Member -NotePropertyName "InitialAtxHeader" -NotePropertyValue $initialAtxHeader
5453
$releaseTitleAtxHeader = $initialAtxHeader + "#"
5554

@@ -68,7 +67,7 @@ function Get-ChangeLogEntriesFromContent {
6867
}
6968
else {
7069
if ($changeLogEntry) {
71-
if ($line.Trim() -match $sectionHeaderRegex)
70+
if ($line.Trim() -match $SECTIONS_HEADER_REGEX)
7271
{
7372
$sectionName = $matches["sectionName"].Trim()
7473
$changeLogEntry.Sections[$sectionName] = @()
@@ -137,24 +136,16 @@ function Confirm-ChangeLogEntry {
137136
[String]$ChangeLogLocation,
138137
[Parameter(Mandatory = $true)]
139138
[String]$VersionString,
140-
[boolean]$ForRelease = $false,
141-
[Switch]$SantizeEntry
139+
[boolean]$ForRelease = $false
142140
)
143141

144-
$changeLogEntries = Get-ChangeLogEntries -ChangeLogLocation $ChangeLogLocation
145-
$changeLogEntry = $changeLogEntries[$VersionString]
142+
$changeLogEntry = Get-ChangeLogEntry -ChangeLogLocation $ChangeLogLocation -VersionString $VersionString
146143

147144
if (!$changeLogEntry) {
148145
LogError "ChangeLog[${ChangeLogLocation}] does not have an entry for version ${VersionString}."
149146
return $false
150147
}
151148

152-
if ($SantizeEntry)
153-
{
154-
Remove-EmptySections -ChangeLogEntry $changeLogEntry -InitialAtxHeader $changeLogEntries.InitialAtxHeader
155-
Set-ChangeLogContent -ChangeLogLocation $ChangeLogLocation -ChangeLogEntries $changeLogEntries
156-
}
157-
158149
Write-Host "Found the following change log entry for version '${VersionString}' in [${ChangeLogLocation}]."
159150
Write-Host "-----"
160151
Write-Host (ChangeLogEntryAsString $changeLogEntry)
@@ -317,26 +308,24 @@ function Set-ChangeLogContent {
317308
function Remove-EmptySections {
318309
param (
319310
[Parameter(Mandatory = $true)]
320-
$ChangeLogEntry,
321-
$InitialAtxHeader = "#"
311+
$ChangeLogEntry
322312
)
323313

324-
$sectionHeaderRegex = "^${InitialAtxHeader}${SECTION_HEADER_REGEX_SUFFIX}"
325314
$releaseContent = $ChangeLogEntry.ReleaseContent
326315

327316
if ($releaseContent.Count -gt 0)
328317
{
329318
$parsedSections = $ChangeLogEntry.Sections
330319
$sanitizedReleaseContent = New-Object System.Collections.ArrayList(,$releaseContent)
331320

332-
foreach ($key in @($parsedSections.Keys))
321+
foreach ($key in @($parsedSections.Key))
333322
{
334323
if ([System.String]::IsNullOrWhiteSpace($parsedSections[$key]))
335324
{
336325
for ($i = 0; $i -lt $sanitizedReleaseContent.Count; $i++)
337326
{
338327
$line = $sanitizedReleaseContent[$i]
339-
if ($line -match $sectionHeaderRegex -and $matches["sectionName"].Trim() -eq $key)
328+
if ($line -match $SECTIONS_HEADER_REGEX -and $matches["sectionName"].Trim() -eq $key)
340329
{
341330
$sanitizedReleaseContent.RemoveAt($i)
342331
while($i -lt $sanitizedReleaseContent.Count -and [System.String]::IsNullOrWhiteSpace($sanitizedReleaseContent[$i]))
@@ -351,4 +340,5 @@ function Remove-EmptySections {
351340
}
352341
$ChangeLogEntry.ReleaseContent = $sanitizedReleaseContent.ToArray()
353342
}
354-
}
343+
return $changeLogEntry
344+
}

eng/common/scripts/Prepare-Release.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ else
184184
exit 1
185185
}
186186

187-
$changelogIsValid = Confirm-ChangeLogEntry -ChangeLogLocation $packageProperties.ChangeLogPath -VersionString $newVersion -ForRelease $true -SantizeEntry
187+
$changelogIsValid = Confirm-ChangeLogEntry -ChangeLogLocation $packageProperties.ChangeLogPath -VersionString $newVersion -ForRelease $true
188188

189189
if (!$changelogIsValid)
190190
{

eng/common/scripts/Update-ChangeLog.ps1

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
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"
66
# ReplaceLatestEntryTitle: Replaces the latest changelog entry title.
7+
# SanitizeEntry: Removes all empty section in the entry that is updated
78

89
param (
910
[Parameter(Mandatory = $true)]
@@ -13,7 +14,8 @@ param (
1314
[Boolean]$Unreleased = $true,
1415
[Boolean]$ReplaceLatestEntryTitle = $false,
1516
[String]$ChangelogPath,
16-
[String]$ReleaseDate
17+
[String]$ReleaseDate,
18+
[Boolean]$SanitizeEntry = $false
1719
)
1820
Set-StrictMode -Version 3
1921

@@ -106,7 +108,12 @@ if ($LatestsSorted[0] -ne $Version) {
106108

107109
if ($ReplaceLatestEntryTitle)
108110
{
109-
$newChangeLogEntry = New-ChangeLogEntry -Version $Version -Status $ReleaseStatus -InitialAtxHeader $ChangeLogEntries.InitialAtxHeader -Content $ChangeLogEntries[$LatestVersion].ReleaseContent
111+
$entryToBeUpdated = $ChangeLogEntries[$LatestVersion]
112+
if ($SanitizeEntry)
113+
{
114+
$entryToBeUpdated = Remove-EmptySections -ChangeLogEntry $entryToBeUpdated
115+
}
116+
$newChangeLogEntry = New-ChangeLogEntry -Version $Version -Status $ReleaseStatus -InitialAtxHeader $ChangeLogEntries.InitialAtxHeader -Content $entryToBeUpdated
110117
LogDebug "Resetting latest entry title to [$($newChangeLogEntry.ReleaseTitle)]"
111118
$ChangeLogEntries.Remove($LatestVersion)
112119
if ($newChangeLogEntry) {
@@ -122,6 +129,10 @@ elseif ($ChangeLogEntries.Contains($Version))
122129
LogDebug "Updating ReleaseStatus for Version [$Version] to [$($ReleaseStatus)]"
123130
$ChangeLogEntries[$Version].ReleaseStatus = $ReleaseStatus
124131
$ChangeLogEntries[$Version].ReleaseTitle = "$($ChangeLogEntries.InitialAtxHeader)# $Version $ReleaseStatus"
132+
if ($SanitizeEntry)
133+
{
134+
$ChangeLogEntries[$Version] = Remove-EmptySections -ChangeLogEntry $ChangeLogEntries[$Version]
135+
}
125136
}
126137
else
127138
{

0 commit comments

Comments
 (0)