Skip to content

Change Release Asset Naming Format #250

@HaleTom

Description

@HaleTom

Problem

Release asset filenames like x64-RefindPlus_001402-AD.zip encode version information in a way that requires fragile parsing to reconstruct from the tag name. This makes it difficult to automate downstream packaging, including the development of AUR (Arch Linux User Repository) PKGBUILD files.

The current filename pattern appears to encode:

  • 001402 → presumably major.minor.patch as 6 digits (00.14.02)
  • AD → the release suffix from the tag (.AD)

But this encoding is undocumented and not guaranteed to be stable. External packagers must either:

  1. Maintain a manual mapping table (error-prone, must be updated per release)
  2. Parse the filename from the GitHub Releases API (fragile, requires downloading/updating a full release object just to get the asset URL)

Evidence

From observed releases:

Tag Asset filename
v0.14.0.AB x64-RefindPlus_001400-AB.zip
v0.14.1.AA x64-RefindPlus_001401-AA.zip
v0.14.2.AD x64-RefindPlus_001402-AD.zip

The mapping is partially inferrable but not reliably reversible.

Proposed Solution

One of:

  1. Include the tag name in the asset filename (e.g., x64-RefindPlus_v0.14.2.AD.zip) so it is directly machine-readable
  2. Provide a stable JSON manifest at a fixed URL (e.g., releases/latest/manifest.json) that maps tags to their exact asset names and checksums
  3. Document the current naming convention formally so packagers can implement the parsing reliably without guessing

Option 1 is the simplest and most widely used convention for other projects (e.g., refind-${tag}.zip, refind-plus-${tag}-x64.zip).

Impact

This would allow AUR and other distribution packagers to automate PKGBUILD updates without manual intervention per release, reducing maintenance burden and lag.

Workaround

Currently, packagers must either hard-code the current version or scrape the GitHub API to find the asset URL at build time — neither of which is ideal for a stable, reproducible build system.


Packaged for AUR: refind-plus-bin-release-git

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions