microsoft / microsoft/winget-create
Support updating packages and adding them under new PackageId
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 651
- Forks
- 114
- Avg merge
- 7h 52m
- Merged PRs (30d)
- 3
Description
Description of the new feature / enhancement
Some packages have their PackageIdentifier broken into each minor version.
Examples are:
UI-Xaml: Microsoft.UI.Xaml.2.7, Microsoft.UI.Xaml.2.8
Python: Python.Python.3.9, Python.Python.3.10
Currently the submissions for these packages cannot be fully automated through winget-create as it requires adding them under a new PackageIdentifier for every minor version bump.
Proposed technical implementation details
Support something like --new-package-id <NewPackageIdentifier> for update command.
That way, a publisher can add code in the release pipeline that checks if the minor version is bumped which then uses this option to update and add the package in the new PackageIdentifier.
I'm thinking something like this in the release yaml file
$minorVersion = 15
wingetcreate update Python.Python.3.10 --urls <URLS> --version 3.15.3 --new-package-id "Python.Python.3.$(minorVersion)"
This will always use the 3.10 manifest as the base manifest. If directory for $minorVersion already exists in repo, it will add the package under that directory else create a new PackageId/directory for it
The design is just off the top of my head and I would love to hear feedback for the proposed flow
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names the wingetcreate update command and the proposed --new-package-id option; start by tracing the update command entry point. Review how manifests and PackageIdentifier directories are selected, then establish coverage for both an existing minor-version directory and a new one. Done means the update flow can use the prior manifest as a base while adding the package under the requested identifier.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- cli, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100