Fix Windows PowerShell 5.1 parse error in publish scripts#200
Open
jimmytacks wants to merge 1 commit into
Open
Fix Windows PowerShell 5.1 parse error in publish scripts#200jimmytacks wants to merge 1 commit into
jimmytacks wants to merge 1 commit into
Conversation
publish-release.ps1 and build-release-bundle.ps1 had em-dash characters (U+2014, encoded as 0xE2 0x80 0x94 in UTF-8) in comments and a release- notes string. Windows PowerShell 5.1 reads .ps1 files in the system code page (windows-1252 on most installs) unless the file has a UTF-8 BOM, so the em-dashes parsed as garbage and the script failed with: Unexpected token 'the' in expression or statement (at the line containing "-- the add-in ships against..."). PowerShell 7 / pwsh.exe defaults to UTF-8 even without a BOM, so CI and my own pwsh-based testing didn't catch it. Tim's local PS 5.1 did. Fix: ASCII-ify the dashes (-- instead of —). Writing the files via PowerShell's Set-Content -Encoding utf8 also added a UTF-8 BOM as a belt-and-braces safeguard, but the script body is now ASCII-only either way.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
publish-release.ps1(andbuild-release-bundle.ps1) had em-dash characters (U+2014) in comments and a release-notes string. Windows PowerShell 5.1 reads.ps1files in the system code page (windows-1252 on most installs) unless the file has a UTF-8 BOM, so the em-dashes parsed as garbage and the script failed with:at the line containing
-- the add-in ships against ….PowerShell 7 /
pwsh.exedefaults to UTF-8 even without a BOM, so CI and pwsh-based local testing didn't catch it. Tim's local PS 5.1 did.Fix
ASCII-ify all dashes (
--instead of—) in both scripts. Writing the files viaSet-Content -Encoding utf8also added a UTF-8 BOM as belt-and-braces.Test plan
.\scripts\publish-release.ps1 -DryRun -SkipSignfrom a cleanmainafter this lands.