Sets the product version on release/2.0 to 2.0.0 and makes the packaging scripts take their default version from the source, so the next bump is one edit.
Directory.Build.props: VersionPrefix 2.0.0.
New build/Get-SourceVersion.ps1 reads VersionPrefix and refuses, by name, a missing file, a missing element or a value that is not a numeric X.Y.Z. Build-Installer.ps1, Package-Release.ps1 and Test-PackagingInputs.ps1 use it; Build-CiRelease.ps1 forwards only what it was given. An explicit -ProductVersion/-ReleaseVersion behaves as before.
Test-PackagingInputs.ps1 covers the three refusals of the reader.
Documented commands no longer name a version; docs/DEVELOPMENT.md no longer says the default is 1.0.1.
docs/TODO.md records, for the CI work, that the CI definitions still pass a literal 1.2.1 for branch builds and what they need instead. No workflow file is changed here.
Effect: builds from this branch report 2.0.0 to servers and produce MSIs that upgrade 1.2.x and cannot be replaced by it.
Verification, local, on the head rebased onto ce58570: build/Verify.ps1 passed (200 Core and 432 Windows tests, zero warnings; coverage Core 87.88%, Windows 70.31%, command line 38.26%). Test-PackagingInputs.ps1 and the PowerShell analyzer (18 scripts, no findings) pass. The Python and JavaScript quality checks were not run; no such file changed.
Review: an independent reviewer found two should-fix items on the first pass (both addressed) and nothing at should-fix or above on the second.
Sets the product version on `release/2.0` to 2.0.0 and makes the packaging scripts take their default version from the source, so the next bump is one edit.
- `Directory.Build.props`: `VersionPrefix` 2.0.0.
- New `build/Get-SourceVersion.ps1` reads `VersionPrefix` and refuses, by name, a missing file, a missing element or a value that is not a numeric X.Y.Z. `Build-Installer.ps1`, `Package-Release.ps1` and `Test-PackagingInputs.ps1` use it; `Build-CiRelease.ps1` forwards only what it was given. An explicit `-ProductVersion`/`-ReleaseVersion` behaves as before.
- `Test-PackagingInputs.ps1` covers the three refusals of the reader.
- Documented commands no longer name a version; `docs/DEVELOPMENT.md` no longer says the default is 1.0.1.
- `docs/TODO.md` records, for the CI work, that the CI definitions still pass a literal 1.2.1 for branch builds and what they need instead. No workflow file is changed here.
Effect: builds from this branch report 2.0.0 to servers and produce MSIs that upgrade 1.2.x and cannot be replaced by it.
Verification, local, on the head rebased onto `ce58570`: `build/Verify.ps1` passed (200 Core and 432 Windows tests, zero warnings; coverage Core 87.88%, Windows 70.31%, command line 38.26%). `Test-PackagingInputs.ps1` and the PowerShell analyzer (18 scripts, no findings) pass. The Python and JavaScript quality checks were not run; no such file changed.
Review: an independent reviewer found two should-fix items on the first pass (both addressed) and nothing at should-fix or above on the second.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
VersionPrefix and the default versions of the installer, packaging and
release scripts move to 2.0.0 together: Build-Installer refuses a product
version that differs from VersionPrefix, so they have to move as one. The
documented installer commands name the same version. Test builds use
-ReleaseVersion 2.0.0-rc.N, which stamps file version 2.0.0.N so each
build replaces the last.
The CI workflow files still pass 1.2.1 explicitly and are left for the CI
work to update.
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Signed-off-by: James Maes <james@kof22.com>
(cherry picked from commit 95e7fa1f9c8f240ce043ac763492faf0387ccb34)
Build-Installer, Build-CiRelease and Package-Release each repeated the
product version as a parameter default, so a version change had to touch
all three and any caller that passed a literal could disagree with the
source. The defaults now read VersionPrefix from Directory.Build.props; a
release version defaults to the product version. A named version that
differs from the source is still refused.
A CI job that builds a branch can now call Build-CiRelease.ps1 with no
version and get the branch's own.
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Signed-off-by: James Maes <james@kof22.com>
(cherry picked from commit 19d0f8bb30f97319ba5e589cd5026d8e4ff183ba)
The three packaging scripts took their default version from an expression
repeated in each parameter block. A parameter default is not checked by the
parameter's own validation, so a VersionPrefix that was not a numeric X.Y.Z
came through unchecked and was refused later with a misleading message, and
a missing file failed with a null-reference error.
Get-SourceVersion.ps1 now reads VersionPrefix, and refuses a missing file, a
missing element or a non-numeric value by name. Build-Installer.ps1,
Package-Release.ps1 and Test-PackagingInputs.ps1 use it; Build-CiRelease.ps1
forwards only what it was given. Test-PackagingInputs.ps1 covers the three
refusals.
The documented commands no longer name a version, so the next bump is one
edit to Directory.Build.props. DEVELOPMENT.md no longer says the default is
1.0.1. The literal version that the CI definitions pass for branch builds
is recorded in docs/TODO.md for the CI work, which owns those files.
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Signed-off-by: James Maes <james@kof22.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Sets the product version on
release/2.0to 2.0.0 and makes the packaging scripts take their default version from the source, so the next bump is one edit.Directory.Build.props:VersionPrefix2.0.0.build/Get-SourceVersion.ps1readsVersionPrefixand refuses, by name, a missing file, a missing element or a value that is not a numeric X.Y.Z.Build-Installer.ps1,Package-Release.ps1andTest-PackagingInputs.ps1use it;Build-CiRelease.ps1forwards only what it was given. An explicit-ProductVersion/-ReleaseVersionbehaves as before.Test-PackagingInputs.ps1covers the three refusals of the reader.docs/DEVELOPMENT.mdno longer says the default is 1.0.1.docs/TODO.mdrecords, for the CI work, that the CI definitions still pass a literal 1.2.1 for branch builds and what they need instead. No workflow file is changed here.Effect: builds from this branch report 2.0.0 to servers and produce MSIs that upgrade 1.2.x and cannot be replaced by it.
Verification, local, on the head rebased onto
ce58570:build/Verify.ps1passed (200 Core and 432 Windows tests, zero warnings; coverage Core 87.88%, Windows 70.31%, command line 38.26%).Test-PackagingInputs.ps1and the PowerShell analyzer (18 scripts, no findings) pass. The Python and JavaScript quality checks were not run; no such file changed.Review: an independent reviewer found two should-fix items on the first pass (both addressed) and nothing at should-fix or above on the second.
🤖 Generated with Claude Code