mirror of
https://github.com/webinstall/webi-installers.git
synced 2026-04-06 10:26:49 +00:00
docs: REGRESSION — amd64_v2 regex matches version numbers (257 syncthing warnings)
This commit is contained in:
88
QUESTIONS.md
88
QUESTIONS.md
@@ -16,82 +16,68 @@
|
||||
behavior is preserved as-is. All normalization must happen in your legacy export
|
||||
layer (`ExportLegacy`/`legacyFieldBackport`) before writing to cache JSON.
|
||||
|
||||
The Node classifier re-parses download filenames and validates them against the
|
||||
cache's pre-classified fields. If the cache value doesn't match what the classifier
|
||||
extracts from the filename, it **drops the entry** (returns null). Dropped entries
|
||||
cannot be resolved for any user.
|
||||
## REGRESSION: amd64_v2 regex matches version numbers (257 new warnings)
|
||||
|
||||
## Progress: 3,746 warnings remain (was 6,149)
|
||||
Your `amd64[_-]?v2/v3/v4` regex fix in `4f09649` is matching version numbers
|
||||
in filenames. Example:
|
||||
|
||||
### FIXED: universal2 → x86_64 ✓
|
||||
### FIXED: solaris/illumos → kept as-is ✓
|
||||
```
|
||||
syncthing-freebsd-amd64-v2.0.5.tar.gz
|
||||
```
|
||||
|
||||
Both are confirmed working! Cache validation passes 6/6. Great work!
|
||||
The classifier detects `x86_64` from `amd64`, but the cache now says `x86_64_v2`
|
||||
because the regex matched `amd64-v2` (where `v2` is the start of the version `v2.0.5`).
|
||||
|
||||
- cmake resolves to v4.2.3 (was v3.19.1), universal2 entries all have arch=x86_64
|
||||
- hugo resolves to v0.157.0 (was v0.101.0)
|
||||
- terraform solaris entries correctly have os=solaris (393 entries)
|
||||
- syncthing solaris entries correctly have os=solaris (401 entries)
|
||||
- syncthing illumos entries correctly have os=illumos (261 entries)
|
||||
**This affects 257 syncthing entries.** The regex needs to be anchored so it only
|
||||
matches `amd64_v2` / `amd64-v2` when NOT followed by a dot/digit (i.e., not a
|
||||
version number). Or better: only match when the `v2`/`v3`/`v4` is at a word
|
||||
boundary or end of the arch segment.
|
||||
|
||||
## Still needs fixing:
|
||||
## Progress: 3,977 warnings (was 3,746, regression from syncthing)
|
||||
|
||||
### 1. cmake source tarballs (2,478 E_MISSING_OS)
|
||||
### FIXED ✓
|
||||
- universal2 → x86_64 (cmake, hugo)
|
||||
- solaris/illumos kept as-is
|
||||
- mipsle → mipsel, mips64le → mips64el
|
||||
- ARM variant mismatches (most)
|
||||
- android dropped from legacy export
|
||||
|
||||
These are source archives with no OS in filename, e.g.:
|
||||
`cmake-3.22.0-rc1.tar.gz`, `cmake-3.22.0-rc1.zip`
|
||||
### Still needs fixing:
|
||||
|
||||
The classifier can't detect an OS → drops them. These should be excluded
|
||||
from the legacy export entirely — they're source bundles, not installable binaries.
|
||||
#### 1. syncthing amd64_v2 regression (257 new — priority!)
|
||||
See above. The `v2` in `v2.0.5` is being captured as an arch micro-version.
|
||||
|
||||
### 2. git entries (500 E_MISSING_OS)
|
||||
#### 2. cmake source tarballs (2,478 E_MISSING_OS)
|
||||
Source archives with no OS: `cmake-3.22.0-rc1.tar.gz`. Should be excluded.
|
||||
|
||||
Same issue — source tarballs or entries without OS in filename.
|
||||
#### 3. git entries (500 E_MISSING_OS)
|
||||
Source tarballs / no-OS filenames.
|
||||
|
||||
### 3. iterm2 entries (475 E_MISSING_OS)
|
||||
#### 4. iterm2 entries (475 E_MISSING_OS)
|
||||
macOS-only .zip files but filename has no darwin/macos.
|
||||
|
||||
No OS in filename. These are macOS-only .zip files but the filename doesn't say
|
||||
darwin/macos. Consider excluding from legacy export or setting os=darwin.
|
||||
#### 5. dashcore entries (127 E_MISSING_OS)
|
||||
No OS indicator in filename.
|
||||
|
||||
### 4. dashcore entries (127 E_MISSING_OS)
|
||||
#### 6. Minor (~62 remaining)
|
||||
gitea 54, jq 24, bun 20, sttr 18, etc.
|
||||
|
||||
Same pattern — no OS indicator in filename.
|
||||
|
||||
### 5. ARM variant mismatches (~100+ dropped)
|
||||
|
||||
Remaining mismatches in smaller packages (gitea 54, jq 24, bun 20, sttr 18, etc.):
|
||||
|
||||
| Cache value | Classifier detects | Fix |
|
||||
|---|---|---|
|
||||
| `armv6` | `armel` | emit `armel` |
|
||||
| `armv6` | `armv7` | emit `armv7` |
|
||||
| `armhf` | `armv7` | emit `armv7` |
|
||||
|
||||
### 6. Minor
|
||||
|
||||
- `sttr` .pkg (18): macOS .pkg files, upstream quirk
|
||||
- Various small packages with arch mismatches
|
||||
|
||||
### Test results (latest cache, 17:19)
|
||||
### Test results (cache 17:27)
|
||||
|
||||
- **19/19** installer-resolve ✓
|
||||
- **49/49** live-compare (5 known) ✓
|
||||
- **190/196** broad sweep (6 expected) ✓
|
||||
- **31/31** live-installer-diff (1 known) ✓
|
||||
- **6/6** cache validation ✓
|
||||
- **3,746** PACKAGE FORMAT CHANGE warnings (was 6,149, down 39%)
|
||||
|
||||
The biggest remaining items are source tarballs being included (cmake 2,478 +
|
||||
git 500 + iterm2 475 + dashcore 127 = 3,580). Excluding source-only entries
|
||||
would bring warnings down to ~166.
|
||||
- **3,977** PACKAGE FORMAT CHANGE warnings (was 3,746 — regression from syncthing)
|
||||
|
||||
## Previously resolved
|
||||
|
||||
- [x] universal2 → x86_64 (cmake, hugo universal entries)
|
||||
- [x] solaris/illumos kept as-is (not translated to sunos)
|
||||
- [x] mipsle → mipsel, mips64le → mips64el
|
||||
- [x] ARM variant fixes (armhf→armv7, armel, arm-5, arm-7, armv6hf)
|
||||
- [x] Hugo macOS arm64 — resolves v0.157.0 .pkg
|
||||
- [x] go armv6l — cache emits `armv6`
|
||||
- [x] armel → armv6, winx64 → windows
|
||||
- [x] Issues 1-3, 5: WATERFALL, .git shadowing, man pages, musl libc
|
||||
- [x] ANYOS question: Specific-OS-first is correct
|
||||
- [x] android entries dropped from legacy export
|
||||
- [x] ANYOS question: Specific-OS-first is correct
|
||||
|
||||
Reference in New Issue
Block a user