From 1c691d8152bbecedc0648fc36a6569e04c37a9fb Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Wed, 9 Mar 2022 16:39:28 -0800 Subject: [PATCH] Revert "Verify ChangeLog as ForRelease (#2836)" (#23455) This reverts commit 6d04c81f6dd95123fd53b5f75bd0849ed9c30da5. Co-authored-by: Chidozie Ononiwu (His Righteousness) <31145988+chidozieononiwu@users.noreply.github.com> --- eng/common/scripts/ChangeLog-Operations.ps1 | 129 ++++++++------------ 1 file changed, 53 insertions(+), 76 deletions(-) diff --git a/eng/common/scripts/ChangeLog-Operations.ps1 b/eng/common/scripts/ChangeLog-Operations.ps1 index baefdddfd2bb..df2bc9d1d29c 100644 --- a/eng/common/scripts/ChangeLog-Operations.ps1 +++ b/eng/common/scripts/ChangeLog-Operations.ps1 @@ -165,20 +165,61 @@ function Confirm-ChangeLogEntry { return $false } - if ($ForRelease -eq $True) - { - LogDebug "Verifying like it's a release build because ForRelease parameter is set to true" - return Confirm-LikeForRelease -changeLogEntry $changeLogEntry - } + if ($ForRelease -eq $True) { + if ($changeLogEntry.ReleaseStatus -eq $CHANGELOG_UNRELEASED_STATUS) { + LogError "Entry has no release date set. Please ensure to set a release date with format '$CHANGELOG_DATE_FORMAT'. See https://aka.ms/azsdk/guideline/changelogs for more info." + return $false + } + else { + $status = $changeLogEntry.ReleaseStatus.Trim().Trim("()") + try { + $releaseDate = [DateTime]$status + if ($status -ne ($releaseDate.ToString($CHANGELOG_DATE_FORMAT))) + { + LogError "Date must be in the format $($CHANGELOG_DATE_FORMAT). See https://aka.ms/azsdk/guideline/changelogs for more info." + return $false + } + if (((Get-Date).AddMonths(-1) -gt $releaseDate) -or ($releaseDate -gt (Get-Date).AddMonths(1))) + { + LogError "The date must be within +/- one month from today. See https://aka.ms/azsdk/guideline/changelogs for more info." + return $false + } + } + catch { + LogError "Invalid date [ $status ] passed as status for Version [$($changeLogEntry.ReleaseVersion)]. See https://aka.ms/azsdk/guideline/changelogs for more info." + return $false + } + } - # If the release status is a valid date then verify like its about to be released - $status = $changeLogEntry.ReleaseStatus.Trim().Trim("()") - if ($status -as [DateTime]) - { - LogDebug "Verifying like it's a release build because the changelog entry has a valid date." - return Confirm-LikeForRelease -changeLogEntry $changeLogEntry - } + if ([System.String]::IsNullOrWhiteSpace($changeLogEntry.ReleaseContent)) { + LogError "Entry has no content. Please ensure to provide some content of what changed in this version. See https://aka.ms/azsdk/guideline/changelogs for more info." + return $false + } + $foundRecomendedSection = $false + $emptySections = @() + foreach ($key in $changeLogEntry.Sections.Keys) + { + $sectionContent = $changeLogEntry.Sections[$key] + if ([System.String]::IsNullOrWhiteSpace(($sectionContent | Out-String))) + { + $emptySections += $key + } + if ($RecommendedSectionHeaders -contains $key) + { + $foundRecomendedSection = $true + } + } + if ($emptySections.Count -gt 0) + { + LogError "The changelog entry has the following sections with no content ($($emptySections -join ', ')). Please ensure to either remove the empty sections or add content to the section." + return $false + } + if (!$foundRecomendedSection) + { + LogWarning "The changelog entry did not contain any of the recommended sections ($($RecommendedSectionHeaders -join ', ')), pease add at least one. See https://aka.ms/azsdk/guideline/changelogs for more info." + } + } return $true } @@ -321,68 +362,4 @@ function Get-LatestReleaseDateFromChangeLog $changeLogEntries = Get-ChangeLogEntries -ChangeLogLocation $ChangeLogLocation $latestVersion = $changeLogEntries[0].ReleaseStatus.Trim("()") return ($latestVersion -as [DateTime]) -} - -function Confirm-LikeForRelease { - param ( - [Parameter(Mandatory = $true)] - $changeLogEntry - ) - - $isValid = $true - if ($changeLogEntry.ReleaseStatus -eq $CHANGELOG_UNRELEASED_STATUS) { - LogError "Entry has no release date set. Please ensure to set a release date with format '$CHANGELOG_DATE_FORMAT'. See https://aka.ms/azsdk/guideline/changelogs for more info." - $isValid = $false - } - else { - $status = $changeLogEntry.ReleaseStatus.Trim().Trim("()") - try { - $releaseDate = [DateTime]$status - if ($status -ne ($releaseDate.ToString($CHANGELOG_DATE_FORMAT))) - { - LogError "Date must be in the format $($CHANGELOG_DATE_FORMAT). See https://aka.ms/azsdk/guideline/changelogs for more info." - $isValid = $false - } - if (((Get-Date).AddMonths(-1) -gt $releaseDate) -or ($releaseDate -gt (Get-Date).AddMonths(1))) - { - LogError "The date must be within +/- one month from today. See https://aka.ms/azsdk/guideline/changelogs for more info." - $isValid = $false - } - } - catch { - LogError "Invalid date [ $status ] passed as status for Version [$($changeLogEntry.ReleaseVersion)]. See https://aka.ms/azsdk/guideline/changelogs for more info." - $isValid = $false - } - } - - if ([System.String]::IsNullOrWhiteSpace($changeLogEntry.ReleaseContent)) { - LogError "Entry has no content. Please ensure to provide some content of what changed in this version. See https://aka.ms/azsdk/guideline/changelogs for more info." - $isValid = $false - } - - $foundRecommendedSection = $false - $emptySections = @() - foreach ($key in $changeLogEntry.Sections.Keys) - { - $sectionContent = $changeLogEntry.Sections[$key] - if ([System.String]::IsNullOrWhiteSpace(($sectionContent | Out-String))) - { - $emptySections += $key - } - if ($RecommendedSectionHeaders -contains $key) - { - $foundRecommendedSection = $true - } - } - if ($emptySections.Count -gt 0) - { - LogError "The changelog entry has the following sections with no content ($($emptySections -join ', ')). Please ensure to either remove the empty sections or add content to the section." - $isValid = $false - } - if (!$foundRecommendedSection) - { - LogWarning "The changelog entry did not contain any of the recommended sections ($($RecommendedSectionHeaders -join ', ')), please add at least one. See https://aka.ms/azsdk/guideline/changelogs for more info." - } - Write-Host "Changelog validation failed. Please fix errors above and try again." - return $isValid } \ No newline at end of file