mirror of
https://github.com/webinstall/webi-installers.git
synced 2026-04-06 18:36:50 +00:00
fix: separate general vs installer-specific vs legacy filters
- yq: move man_page_only from general isMetaAsset to yq-specific tagger - node: restore .exe as stored asset with "bare-exe" variant (installable by Go, excluded from legacy) - ollama: rename Ollama-darwin.zip variant from "installer" to "app" (.app bundle is installable by Go, just not by legacy Node.js) The distinction: general classification/filter (isMetaAsset) handles truly non-installable files. Installer-specific taggers handle assets that are installable but need variant tagging. Legacy filter strips variants and unsupported formats for Node.js compat.
This commit is contained in:
@@ -159,11 +159,12 @@ Status: `[x]` reviewed, `[-]` known acceptable, `[ ]` needs work
|
||||
- [-] hugo-extended — 14 extras: non-extended assets leaking in; keep as-is for now
|
||||
- [x] kubectx — asset_filter splits shared release
|
||||
- [x] kubens — asset_filter splits shared release
|
||||
- [x] node — nodedist "exe" format code doesn't map to a real file; skipped
|
||||
- [x] ollama — Ollama-darwin.zip tagged as installer; .tgz filename
|
||||
differs from live's .tar.gz but maps to same format
|
||||
- [x] node — .exe bare binary stored with "bare-exe" variant (Go can serve,
|
||||
legacy excludes); .msi tagged as installer
|
||||
- [x] ollama — Ollama-darwin.zip tagged as "app" variant (Go can install,
|
||||
legacy excludes); .tgz normalized to .tar.gz in filename
|
||||
- [-] uuidv7 — exotic arches correctly classified; resolver filters by request
|
||||
- [x] yq — man_page_only now caught by isMetaAsset
|
||||
- [x] yq — man_page_only tagged as "man-pages" variant in yq-specific tagger
|
||||
- [x] ffmpeg — asset_filter=ffmpeg excludes ffprobe/ffplay; .LICENSE/.README
|
||||
now caught by isMetaAsset
|
||||
|
||||
|
||||
@@ -51,6 +51,7 @@ import (
|
||||
"github.com/webinstall/webi-installers/internal/releases/ollama"
|
||||
"github.com/webinstall/webi-installers/internal/releases/pwsh"
|
||||
"github.com/webinstall/webi-installers/internal/releases/xcaddy"
|
||||
"github.com/webinstall/webi-installers/internal/releases/yq"
|
||||
"github.com/webinstall/webi-installers/internal/releases/zigdist"
|
||||
"github.com/webinstall/webi-installers/internal/storage"
|
||||
"github.com/webinstall/webi-installers/internal/storage/fsstore"
|
||||
@@ -724,9 +725,7 @@ func expandNodeFile(pkg, version, channel, date string, lts bool, baseURL, file
|
||||
case "msi":
|
||||
formats = []string{".msi"}
|
||||
case "exe":
|
||||
// Node.js "exe" index entry doesn't correspond to a real download.
|
||||
// The MSI installer is the actual Windows installer; skip exe.
|
||||
return nil
|
||||
formats = []string{".exe"}
|
||||
case "7z":
|
||||
formats = []string{".7z"}
|
||||
case "":
|
||||
@@ -1462,7 +1461,7 @@ func isMetaAsset(name string) bool {
|
||||
for _, contains := range []string{
|
||||
"checksums", "sha256sum", "sha512sum",
|
||||
"buildable-artifact",
|
||||
"man_page_only", ".LICENSE", ".README",
|
||||
".LICENSE", ".README",
|
||||
} {
|
||||
if strings.Contains(lower, contains) {
|
||||
return true
|
||||
@@ -1498,6 +1497,8 @@ func tagVariants(pkg string, _ *installerconf.Conf, assets []storage.Asset) {
|
||||
pwsh.TagVariants(assets)
|
||||
case "xcaddy":
|
||||
xcaddy.TagVariants(assets)
|
||||
case "yq":
|
||||
yq.TagVariants(assets)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,11 +3,17 @@ package node
|
||||
import "github.com/webinstall/webi-installers/internal/storage"
|
||||
|
||||
// TagVariants tags node-specific build variants.
|
||||
// Only .msi files are installers; .exe is the bare binary.
|
||||
//
|
||||
// .msi is a Windows installer. .exe is the bare node.exe binary — valid
|
||||
// and installable by Go, but not present in the legacy Node.js cache
|
||||
// (the nodedist classifier doesn't construct that filename).
|
||||
func TagVariants(assets []storage.Asset) {
|
||||
for i := range assets {
|
||||
if assets[i].Format == ".msi" {
|
||||
switch assets[i].Format {
|
||||
case ".msi":
|
||||
assets[i].Variants = append(assets[i].Variants, "installer")
|
||||
case ".exe":
|
||||
assets[i].Variants = append(assets[i].Variants, "bare-exe")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,8 +20,9 @@ func TagVariants(assets []storage.Asset) {
|
||||
}
|
||||
}
|
||||
// Ollama-darwin.zip (capital O) is the macOS .app bundle.
|
||||
// Installable by Go (extract .app), but not in legacy cache.
|
||||
if strings.HasPrefix(assets[i].Filename, "Ollama-") {
|
||||
assets[i].Variants = append(assets[i].Variants, "installer")
|
||||
assets[i].Variants = append(assets[i].Variants, "app")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
19
internal/releases/yq/variants.go
Normal file
19
internal/releases/yq/variants.go
Normal file
@@ -0,0 +1,19 @@
|
||||
// Package yq provides variant tagging for yq releases.
|
||||
//
|
||||
// yq publishes a man-page-only tarball alongside binaries.
|
||||
package yq
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"github.com/webinstall/webi-installers/internal/storage"
|
||||
)
|
||||
|
||||
// TagVariants tags yq-specific build variants.
|
||||
func TagVariants(assets []storage.Asset) {
|
||||
for i := range assets {
|
||||
if strings.Contains(strings.ToLower(assets[i].Filename), "man_page_only") {
|
||||
assets[i].Variants = append(assets[i].Variants, "man-pages")
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user