Logo
Winget-Repo Documentation

📦 Package & Version Management

This guide explains how to add and manage software packages within your Winget-Repo instance.


1. Creating a New Package

Before you can upload installers, you must create a "Base Package" entry. This acts as the container for all future versions.

  1. Navigate to the Manage Packages & Versions dashboard.
  2. Click the blue Add New Package button.
  3. Fill in the basic metadata:
  4. Package ID: The unique identifier (e.g., Publisher.SoftwareName).
  5. Package Name: The display name of the software.
  6. Publisher: The company or author of the software.
  7. Description: A short summary or a link to the software's website.
  8. Package Logo: (Optional) Upload an icon (PNG/JPG) to represent the app.
  9. Click Add Package to save.

2. Adding a Package Version

Once the base package exists, you can upload specific versions (installers).

  1. On the dashboard, select your package from the Choose a Package dropdown.
  2. Click the green + Package Version button.
  3. Fill out the version details in the wizard:

🛠️ Core Version Info

  • Package Version: The specific version number (e.g., 1.2.3).
  • Locale: The language of the installer (e.g., en-US).
  • Channel: Default is stable. Use beta or dev if applicable.
  • Architecture: Choose between x64, x86, arm or arm64.
  • Upgrade Behavior: Choose how Winget handles updates (install, uninstallPrevious, or deny).

📂 Installer & File Settings

  • File Type: Select the installer format (EXE, MSI, MSIX, ZIP, etc.).
  • ZIP Support: If you select ZIP, you must provide the Nested File Type and the Nested File Path to the actual installer inside the archive.
  • ProductCode / UpgradeCode: Recommended for MSI and certain EXE types to ensure Winget can detect the installed state correctly.
  • Package File: Select the installer file from your computer.

⚙️ Installation Scope & Switches

  • Scope: Define if the app installs for the User or the whole Machine.
  • Switches: Provide custom command-line arguments for different installation modes (Silent, Interactive, Log, etc.).

🔗 Dependencies (Optional)

You can define requirements that must be met before installation: - Windows Features: (e.g., IIS-WebServer) - Windows Libraries: (e.g., VC++ Redistributable) - Package Dependencies: Reference other packages in your repo or the community repo by ID and minimum version. - External Dependencies: Text description of manual requirements.

  1. Click Add Package Version and wait for the upload to finalize.

3. Adding a Font Version 🖋️

The Font system is optimized for .ttf and .otf files.

  1. Select your font package from the dropdown.
  2. Click the green + Font Version button.
  3. General Info: Set the Version (e.g., 1.0.0) and Locale.
  4. File Type Selection:
  5. Font (TTF / OTF): Use this for a single font file.
  6. ZIP: Use this if you are uploading a collection (e.g., Bold, Italic, and Regular versions in one archive).
  7. Handling ZIP Archives:
  8. If you select ZIP, the Nested File Paths section will appear.
  9. Click + Add Path for every font file contained within the ZIP.
  10. Example path: assets/fonts/MyFont-Bold.ttf
  11. Upload: Attach the file and click Add Font Version.

4. Managing Existing Versions & Fonts

To view, audit, or remove versions or fonts of a specific package:

  1. Select the package in the Choose a Package dropdown.
  2. Click the Versions button.
  3. A list will appear showing all uploaded versions and fonts with their technical details (Architecture, Scope, etc.).
  4. Deleting: You can delete individual versions if they are outdated or uploaded in error by selecting them and clicking the delete button.

💡 Best Practices

For Software

  • Consistent IDs: Always use the Publisher.App naming convention for Package IDs.
  • ProductCodes: For MSI files, the ProductCode is usually extracted automatically, but double-check it for accurate "Upgrade" detection.

For Fonts

  • ZIP Uploads: When using ZIPs for fonts, ensure the paths you type match the internal folder structure of the ZIP exactly.