Give new-version an MSI's new ProductCode, and refuse to copy a stale one #19
No reviewers
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
jeff/winget-pkgs!19
Loading…
Reference in a new issue
No description provided.
Delete branch "product-code"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #18.
ProductCodeand no new one is given for its architecture,new-versionfails and writes nothing. The check runs before any installer is downloaded. It refuses in the same way for anyDisplayVersionin the installer file, which there's no way to give, and for aProductCodeat the top that applies to every installer.--product-code ARCHITECTURE={GUID}: repeatable. It replaces that installer's code, written in single quotes like the hand-written manifest, because an unquoted{...}is a YAML mapping. It's checked to be a GUID in braces, and it's refused for an architecture with no--installeror whose installer has noProductCode.--jsonoutput and every existing option are unchanged (ADR 0004). The refusal changes behavior only for a package with aProductCode, which today means only Harrier, where copying it was wrong.Why now
Harrier's
release.yamlalready submits, andJCOllie.Harrier0.1.0 is published. Without this, Harrier's next release would open a submission carrying 0.1.0'sProductCode, and it would pass its check. With this merged, that release'swingetjob fails atnew-versioninstead, until jeff/winget-submit#6 passes the code through.Tested
--product-code, it refuses, exit 1;nope, it refuses, exit 1;PackageVersionandProductCode. The stand-in MSI and today's date match 0.1.0's, so the URL, hash and date don't show in the diff.check --changed-sincereports 0 problems.ProductCode, still writes as before.🤖 Generated with Claude Code
https://claude.ai/code/session_01D31MsLkM9DkCauP1EB2zgw
An MSI built with Product Id="*" has a new ProductCode every release, so copying it made the new version claim the old one's product, and check did not notice. `--product-code ARCHITECTURE={GUID}` now replaces it, and an installer with a ProductCode and none given is refused before anything is downloaded or written. So is a DisplayVersion, which there is no way to give, and a ProductCode at the top for every installer. Closes #18 Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01D31MsLkM9DkCauP1EB2zgw