From c1e482d5fc2224ff8ff1ff134cd63eb86a8436ac Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Wed, 10 Feb 2021 18:42:59 -0800 Subject: [PATCH] Sync eng/common directory with azure-sdk-tools for PR 1303 (#1595) * Add PrepareRelease Script * Update Package-Properties.ps1 * Update Collect-ChangeLog Script * Update Collect-ChangeLog.ps1 and Collect-Unreleased.ps1 * Update GeneralReleaseNotesParser.ps1 script * Change GeneralReleaseNotesParser logic * Change GeneralReleaseNotesParser.ps1 logic * Remoce GeneralReleaseNotesParsercopy * Update collect changelog and generalreleasenotes parser logic * Refine CollectChangelog Logic * Add logic for filtering collected changelog * Add Filter-ReleaseHighlights function * Update General ReleasNotes Logic * Delete GeneralReleaseNotesLogic.ps1 * Update Collect ChangeLogLogic Co-authored-by: Chidozie Ononiwu --- eng/common/scripts/Collect-ChangeLogs.ps1 | 60 +++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 eng/common/scripts/Collect-ChangeLogs.ps1 diff --git a/eng/common/scripts/Collect-ChangeLogs.ps1 b/eng/common/scripts/Collect-ChangeLogs.ps1 new file mode 100644 index 0000000000..40767616eb --- /dev/null +++ b/eng/common/scripts/Collect-ChangeLogs.ps1 @@ -0,0 +1,60 @@ +[CmdletBinding()] +param( + [Parameter(Mandatory=$true)] + [DateTime] $FromDate +) + +. (Join-Path $PSScriptRoot common.ps1) + +$releaseHighlights = @{} + +if ($FromDate -as [DateTime]) +{ + $date = ([DateTime]$FromDate).ToString($CHANGELOG_DATE_FORMAT) +} +else { + LogWarning "Invalid date passed. Switch to using the current date" + $date = Get-Date -Format $CHANGELOG_DATE_FORMAT +} + +$allPackageProps = Get-AllPkgProperties + +foreach ($packageProp in $allPackageProps) { + $changeLogLocation = $packageProp.ChangeLogPath + if (!(Test-Path $changeLogLocation)) + { + continue + } + $changeLogEntries = Get-ChangeLogEntries -ChangeLogLocation $changeLogLocation + $packageName = $packageProp.Name + $serviceDirectory = $packageProp.ServiceDirectory + + foreach ($changeLogEntry in $changeLogEntries.Values) { + if ([System.String]::IsNullOrEmpty($changeLogEntry.ReleaseStatus)) + { + continue; + } + $ReleaseStatus = $changeLogEntry.ReleaseStatus.Trim("(",")") + if (!($ReleaseStatus -as [DateTime]) -or $ReleaseStatus -lt $date) + { + continue; + } + + $releaseVersion = $changeLogEntry.ReleaseVersion + $githubAnchor = $changeLogEntry.ReleaseTitle.Replace("## ", "").Replace(".", "").Replace("(", "").Replace(")", "").Replace(" ", "-") + + $releaseTag = "${packageName}_${releaseVersion}" + $key = "${packageName}:${releaseVersion}" + + $releaseHighlights[$key] = @{} + $releaseHighlights[$key]["PackageProperties"] = $packageProp + $releaseHighlights[$key]["ChangelogUrl"] = "https://github.com/Azure/azure-sdk-for-${LanguageShort}/blob/${releaseTag}/sdk/${serviceDirectory}/${packageName}/CHANGELOG.md#${githubAnchor}" + $releaseHighlights[$key]["Content"] = @() + + $changeLogEntry.ReleaseContent | %{ + $releaseHighlights[$key]["Content"] += $_.Replace("###", "####") + } + } +} + +return $releaseHighlights \ No newline at end of file