microsoft / microsoft/winget-pkgs

[New Feature]: Support Icon Files in Winget Community Repository

Open
#272,754 2 comments 4 reactions 0 assignees View on GitHub
Area-Publish-Pipeline Issue-Feature
Dominant language
No language data
Stars
11.1k
Forks
9.7k
PR merge metrics
PR metrics pending

Description

### Description of the new feature/enhancement

**Description:**

Currently, icon files for winget packages are hosted in a Microsoft internal repository, accessible only through the winget client. This setup limits the ability of users, developers, and third-party tools to retrieve and use package icons without relying on the client.

**Motivation:**

Making icons accessible in the public winget community repository would enhance transparency, improve integration with third-party tools, and simplify the review and validation process for package visuals. This would align with the open-source spirit of the winget ecosystem.

**Proposed Solution:**

Add support for including icon file metadata directly in the open winget-pkgs community repository by:

1. Hosting the icon files publicly (e.g., via GitHub CDN or as external, public URL).
2. Including a SHA256 hash of the icon to ensure file integrity and security.

This ensures icons are publicly accessible and verifiable without depending on the winget client or internal infrastructure.

**Benefits:**

- Enables public access to package icons.
- Improves UX for users and third-party tools.
- Maintains security through hash verification.
- Promotes transparency and consistency across packages.

### Proposed technical implementation details (optional)

To implement this, we propose extending the defaultLocale YAML manifest file to include two additional fields:

```
PackageLocale: en-US
Publisher: Contoso
PackageName: ContosoApp
IconUrl: https://github.com/microsoft/winget-pkgs/path/to/icon.png
IconHash:
```

- IconUrl: Direct URL pointing to the hosted image (ideally hosted on GitHub as part of the package).
- IconHash: SHA256 hash of the icon file for validation by clients.

This implementation keeps the metadata structured and secure, and aligns with existing manifest validation practices in winget.

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the defaultLocale YAML manifest structure and the repository's existing manifest validation practices. Determine how publicly hosted icons and SHA256 metadata would fit those manifests and validation rules. Done means the repository can represent publicly accessible, verifiable package icons without relying on internal infrastructure.

Written by the indexing model from the issue text.

Assessment

Tech stack
yaml
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.