Skip to content

Emit YAML manifest alongside installer on download#29

Merged
Marc-André Moreau (mamoreau-devolutions) merged 1 commit into
masterfrom
emit-download-manifest
May 28, 2026
Merged

Emit YAML manifest alongside installer on download#29
Marc-André Moreau (mamoreau-devolutions) merged 1 commit into
masterfrom
emit-download-manifest

Conversation

@GabrielDuf
Copy link
Copy Markdown
Contributor

@GabrielDuf Gabriel Dufresne (GabrielDuf) commented May 28, 2026

This pull request introduces a new feature to the download workflow: when downloading an installer, the CLI now also writes a YAML manifest file alongside the installer, mirroring the behavior of winget download. The manifest file provides a self-contained snapshot of the package version that was downloaded. The changes also refactor related code to return richer result objects and update tests and consumers accordingly.

Key changes include:

Download Workflow Enhancements

  • Introduced a new DownloadResult/DownloadOutput type in both .NET and Rust to encapsulate the manifest, installer path, and manifest path returned by the download operation. This replaces returning a tuple of just the manifest and installer path.
  • The DownloadInstaller method now writes a flattened YAML manifest next to the installer file, using a filename format that matches winget download. Helper methods were added to generate the YAML content and derive the correct filename.
  • The CLI and PowerShell interfaces are updated to display and expose the manifest path in their outputs.

Refactoring and Internal API Changes

  • Refactored installer fetching logic to separate the concerns of downloading the installer file and emitting the manifest YAML, improving code clarity and error handling.
  • Updated internal methods to support the new result types and manifest emission logic, including new helpers for YAML serialization and filename sanitization.

Testing

  • Added and updated unit tests to verify that the manifest YAML is written alongside the installer and that its contents and naming match expectations.

These changes ensure that every download operation now provides both the installer and a corresponding manifest, improving traceability and aligning with established package management behavior.

for issue Devolutions/UniGetUI#4817

@mamoreau-devolutions Marc-André Moreau (mamoreau-devolutions) merged commit dc723a8 into master May 28, 2026
13 checks passed
@mamoreau-devolutions Marc-André Moreau (mamoreau-devolutions) deleted the emit-download-manifest branch May 28, 2026 13:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants