Skip to content

Spec #2405 - Manifests without installer info#6286

Draft
Trenly wants to merge 3 commits into
microsoft:masterfrom
Trenly:Spec2405
Draft

Spec #2405 - Manifests without installer info#6286
Trenly wants to merge 3 commits into
microsoft:masterfrom
Trenly:Spec2405

Conversation

@Trenly

@Trenly Trenly commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

📖 Description

This PR introduces the specification for the NoInstaller installer type (Issue #2405), enabling WinGet to recognize and manage packages that have no downloadable installer. The specification covers the complete design for:

  • Installer Type Support — New NoInstaller enum value in InstallerTypeEnum
  • Manifest Schema — New InstallerAvailabilityMessage field (manifest v1.30.0) with field constraints
  • CLI Behavior — Install, upgrade, show, search, and uninstall command handling
  • ARP Correlation — Using ProductCode and AppsAndFeaturesEntries for managing pre-installed software
  • Use Cases — System components, pre-installed software, out-of-band distributions, version tombstones
  • Validation — Validation-NoExecutables waiver requirement for community repository
  • Architecture & Locale Scenarios — Mixed installability and availability across architectures and locales
  • Future Enhancements — Issue Support for filtering packages on installer method #823 installer filtering with default exclusion of NoInstaller packages

The specification addresses all design feedback from PR #6157 and provides a comprehensive reference for implementation across winget-cli, winget-create, winget-cli-restsource, and winget-pkgs.

🔗 References

🔍 Validation

No validation needed — This is a specification document that describes design intent and expected behavior. No code changes, manifests, or executable artifacts are included.

✅ Checklist

📋 Issue Type

  • Bug fix
  • Feature
  • Task — Specification documentation

@github-actions

This comment has been minimized.

* Add 'installable' - term used in NoInstaller specification
* Add 'Trenly' - author name in specification
* Add 'waivered' - term used in validation policy description

Addresses check-spelling-bot findings from PR microsoft#6286
Comment thread doc/specs/#2405 - NoInstaller Installer Type.md Outdated
Comment thread doc/specs/#2405 - NoInstaller Installer Type.md Outdated

The `NoInstaller` installer type and `InstallerAvailabilityMessage` field are introduced in **Manifest Version 1.30.0**.

Older clients (< 1.30.0) will not recognize `InstallerType: NoInstaller` or `InstallerAvailabilityMessage` fields because they are part of manifest version 1.30.0. The manifest validation schema enforces version requirements.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should test the actual behavior to see what errors/warnings happen if we do this. We may need to consider when the right time is to roll this out into production for the community repository, and what default versions of WinGet on various OS versions will do.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PS E:\winget-cli> wingetdev validate E:\winget-pkgs\manifests\b\Badlion\BadlionClient\3.1.9
Manifest validation succeeded.
PS E:\winget-cli> wingetdev show -m E:\winget-pkgs\manifests\b\Badlion\BadlionClient\3.1.9
Found Badlion Client [Badlion.BadlionClient]
Version: 3.1.9
Publisher: Badlion
Publisher Support Url: https://support.badlion.net/
Moniker: blc
Description: Badlion Client is a Minecraft launcher with many added features. It includes anticheat, built-in FPS boost and other mods, and is compatible with most versions of minecraft 1.7 or newer.
License: Proprietary
Copyright: © 2013-2021 ESL Gaming Online, Inc.
Tags:
  minecraft
  optifine
Installer:
  Installer Type: noinstaller
  Installer Locale: en-US
  Installer SHA256: 85f8124a876d702319807b5604814c07d9099b43863f585543f2f1b1c95cdf1d
  Offline Distribution Supported: false
  Installer Availability Message: This is for testing only
PS E:\winget-cli> winget install -m E:\winget-pkgs\manifests\b\Badlion\BadlionClient\3.1.9
Found Badlion Client [Badlion.BadlionClient] Version 3.1.9
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
An unexpected error occurred while executing the command:
0x80004003 : Invalid pointer
PS E:\winget-cli> winget -v
v1.28.240

Comment thread doc/specs/#2405 - NoInstaller Installer Type.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants