microsoft / microsoft/winget-create

Support updating packages and adding them under new PackageId

Open
#442 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Issue-Feature
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.