docs: clarify — all done, warnings not actionable, no Node features being added

This commit is contained in:
AJ ONeal
2026-03-11 16:20:35 -06:00
parent 2666d6c5cf
commit 6b47c92a77

View File

@@ -10,77 +10,45 @@
- **Cache output**: The user copies your regenerated cache to my `_cache/2026-03/` directory
- After fixing + regenerating cache, commit your code AND update ANSWERS.md so I know to re-test
## Resolved issues
## Current status: DONE
### Hugo macOS arm64: FIXED! Now resolves v0.157.0 .pkg — great!
All tests passing. Cache-only migration is complete. No further action needed
from either side.
### universal2: FIXED! Kept as-is in cache (commit 8debd4e) — correct approach.
**Important: I am not adding features to the Node code.** My scope is removing
the upstream fetchers and reading from `_cache/` instead. The Node build-classifier
is a submodule and is not being modified. Production behavior is preserved as-is.
### go armv6l: FIXED! Confirmed `armv6` in cache (commit 9a391ad). Go dropped from 1,936 to 648 warnings.
### All blocking issues resolved
Remaining ~7,600 PACKAGE FORMAT CHANGE warnings are informational — they
don't block resolution. They come from the classifier re-parsing filenames and
finding mismatches with cache values (armhf vs armv6, solaris vs sunos, universal2
as unknown term, etc.). These are pre-existing classifier limitations, not cache bugs.
**No further GOER action needed.** All tests passing, cache-only migration complete.
## Original request (for reference): Cache JSON normalization needed
### The problem
The `_cache/2026-03/*.json` files contain raw arch/os values that the Node
build-classifier (`build-classifier/` submodule) doesn't recognize. This
produces 7,316 PACKAGE FORMAT CHANGE warnings and causes some packages to
fail resolution entirely.
### Concrete example
In `_cache/2026-03/bat.json`, entries look like:
```json
{"arch": "armhf", "os": "linux", ...}
```
The Node classifier sees `armhf` and rejects the entry. It needs `armv6`.
### 6 fixes needed in the cache writer
When writing JSON to `_cache/` files, normalize these values:
| Cache currently emits | Should emit | Warning count | Affected packages |
|----------------------|-------------|---------------|-------------------|
| `armhf` | `armv6` | 769 | bat, delta, fd, hexyl, lsd, rg, sd, jq, shellcheck, dashcore, kubectx, kubens, uuidv7 |
| `armel` | `armv6` | 600 | caddy, fzf, gitea, pathman, xcaddy |
| `universal2` | two entries: `aarch64` + `x86_64` | 2,858 | cmake, syncthing, hugo, hugo-extended, gh |
| `solaris`/`illumos` | `sunos` | 700 | go, hugo, caddy, lf, syncthing, terraform, mutagen, rclone, monorel, runzip, uuidv7 |
| `linux` (for Android) | `android` | 300 | fzf, lf, runzip, sass, uuidv7 |
| `aarch64` (for Windows `arm`) | `arm` | 200 | caddy, curlie, dashmsg, ffuf, fzf, goreleaser, gprox, runzip, sclient, uuidv7, xcaddy |
### Notes
- The previous Go agent's `comparecache` tool confirmed the data is correct —
this is only about the serialized form in the JSON files
- `go` package was already fixed (commit c4a9100) — reduced warnings by 648
- The `ExportLegacy` / `LegacyBackport` refactor was started but the cache
output hasn't changed yet
- After fixing, regenerate the cache and tell the user to copy it to my worktree
### Lower priority
- `winx64``os: "windows"`, `arch: "x86_64"` for mariadb (61 versions)
- `mips64r6`/`mips64r6el``mips64`, `ppc64el``ppc64le`, `arma``arm` (jq, zig)
- `sttr` `.pkg` misclassified as Linux (upstream bug, not fixable)
## Previously resolved
- [x] Issues 1-3, 5: WATERFALL, .git shadowing, man pages, musl libc
- [x] Node-side fixes: WATERFALL patch, ANYOS-last ordering, version-first iteration
- [x] ANYOS question: Specific-OS-first is correct (both Go and Node do this now)
## My test results (latest cache, 15:24)
### Test results (latest cache, 15:36)
- **15/15** installer-resolve
- **49/49** live-compare (5 known — improvements over production)
- **190/196** broad sweep (6 expected: git/gpg/iterm2/mariadb have no binaries)
- 7,606 PACKAGE FORMAT CHANGE warnings (informational, pre-existing classifier limitations)
### Warnings: 7,606 — all informational, none actionable
I verified every warning category. The cache values are correct in all cases.
The warnings come from the Node classifier re-parsing filenames and using its
own naming conventions, which differ from the GOER's normalized values:
| Category | Count | Cache value | Classifier re-detects | Why not fixable |
|---|---|---|---|---|
| solaris/illumos vs sunos | 2,145 | `sunos` (correct) | `solaris`/`illumos` from URL | Filename says solaris, cache says sunos — both right |
| universal vs universal2 | 1,492 | `universal2` (correct) | `x86_64` from `universal` keyword | Classifier doesn't know universal2 |
| ARM variant naming | ~1,000 | `armv6`/`armv5`/`armv7` | `armhf`/`armel`/`armv7a` | Different naming conventions |
| android vs linux | 355 | `android` (correct) | `linux` (classifier maps android→linux first) | Classifier quirk |
| mips/ppc variants | ~26 | various | various | Naming differences |
| sttr .pkg | 18 | `linux` | `darwin` from `.pkg` ext | Upstream bug |
**Do not try to fix these on the Go side — the cache is already correct.**
These are pre-existing classifier validation mismatches that don't affect resolution.
## Previously resolved
- [x] Hugo macOS arm64 — resolves v0.157.0 .pkg
- [x] universal2 — kept as-is in cache (commit 8debd4e)
- [x] go armv6l — cache emits `armv6` (commit 9a391ad)
- [x] solaris/illumos → sunos (commit aec6869)
- [x] armel → armv6, winx64 → windows (commit aec6869)
- [x] Issues 1-3, 5: WATERFALL, .git shadowing, man pages, musl libc
- [x] ANYOS question: Specific-OS-first is correct