Automating Manifests with Windows Package Manager Manifest Creator

Windows Package Manager Manifest Creator: Step-by-Step Workflow

1. Overview

Windows Package Manager Manifest Creator is a tool that helps generate the YAML/JSON manifests used by winget to describe packages (metadata, installer details, checksums, commands). This workflow covers creating, validating, and submitting manifests for single- and multi-file installers.

2. Prerequisites

  • Windows ⁄11 with winget and WiX/PowerShell or the Manifest Creator app installed.
  • A packaged installer (EXE, MSI, MSIX) and its download URL.
  • Basic knowledge of YAML/JSON and command-line use.
  • Optional: GitHub account for submitting to the community repo.

3. Gather package information

  • Name, Publisher, Version.
  • Installer URLs for each architecture (x86/x64/arm64) if applicable.
  • Installer type (exe, msi, msix) and silent install switches.
  • SHA256 checksum for each installer file.
  • Short/long descriptions, homepage, license, tags.

4. Create the manifest

  1. Choose format: YAML (recommended for winget community) or JSON.
  2. Use Manifest Creator UI or start a template. Key fields:
    • Id (reverse-domain style), Name, Publisher
    • Version
    • License, LicenseUrl
    • Installer: Architecture, Url, Sha256, InstallerType, Installers switches
    • Commands (if package exposes CLI)
  3. For multi-file installers, create a version manifest referencing installer manifests.

5. Compute checksums

  • Download installer(s) to a stable environment.
  • Compute SHA256 (PowerShell: Get-FileHash -Algorithm SHA256 .\installer.exe).
  • Paste checksum into manifest.

6. Validate the manifest

  • Use winget-cli validation or the Manifest Creator’s built-in validator.
  • Command-line validation (example):
    winget validate 
  • Fix schema errors, missing required fields, or checksum mismatches.

7. Test install locally

  • Use a local source or winget install –manifest to test installation behavior.
  • Verify silent install, shortcuts, uninstall, and that app files are placed correctly.

8. Prepare PR for community repo

  1. Fork the winget-pkgs repo on GitHub.
  2. Create a branch named like add/-.
  3. Place manifest files in the correct folder path (Publisher/Package/Version).
  4. Commit with a clear message and push to your fork.

9. Submit and address review

  • Open a Pull Request against the community repo.
  • Include testing notes and environment details.
  • Respond to automated validation failures or reviewer requests (fix metadata, checksums, installer switches).

10. Post-merge maintenance

  • Monitor issues or update requests.
  • Bump versions by adding new version manifests when newer installers are released.

Troubleshooting (brief)

  • Checksum mismatch: re-download installer from official source and recompute.
  • Validation errors: ensure schema-compliant YAML and required fields present.
  • Silent install failures: verify correct installer switches and test manually.

Useful commands (examples)

  • Compute SHA256:
    Get-FileHash -Algorithm SHA256 .\installer.exe
  • Validate manifest:
    winget validate 
  • Install from local manifest:
    winget install –manifest 

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *