📦 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.
- Navigate to the Manage Packages & Versions dashboard.
- Click the blue Add New Package button.
- Fill in the basic metadata:
- Package ID: The unique identifier (e.g.,
Publisher.SoftwareName). - Package Name: The display name of the software.
- Publisher: The company or author of the software.
- Description: A short summary or a link to the software's website.
- Package Logo: (Optional) Upload an icon (PNG/JPG) to represent the app.
- Click Add Package to save.
2. Adding a Package Version
Once the base package exists, you can upload specific versions (installers).
- On the dashboard, select your package from the Choose a Package dropdown.
- Click the green + Package Version button.
- 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. Usebetaordevif applicable. - Architecture: Choose between
x64,x86,armorarm64. - Upgrade Behavior: Choose how Winget handles updates (
install,uninstallPrevious, ordeny).
📂 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
Useror the wholeMachine. - 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.
- 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.
- Select your font package from the dropdown.
- Click the green + Font Version button.
- General Info: Set the Version (e.g.,
1.0.0) and Locale. - File Type Selection:
- Font (TTF / OTF): Use this for a single font file.
- ZIP: Use this if you are uploading a collection (e.g., Bold, Italic, and Regular versions in one archive).
- Handling ZIP Archives:
- If you select ZIP, the Nested File Paths section will appear.
- Click + Add Path for every font file contained within the ZIP.
- Example path:
assets/fonts/MyFont-Bold.ttf - 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:
- Select the package in the Choose a Package dropdown.
- Click the Versions button.
- A list will appear showing all uploaded versions and fonts with their technical details (Architecture, Scope, etc.).
- 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.Appnaming 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.