diff options
| author | Danilo M. <danix@danix.xyz> | 2026-07-08 11:25:38 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-07-08 11:25:38 +0200 |
| commit | efeeeb045ee8f7d92bc718c40661df0f5fb070c7 (patch) | |
| tree | 632e789f2d4ac01487c37f4bcdec2a9f41526efb /TODO.md | |
| parent | 006043e71cf6ee40b69da2e129a095ff4661dfb5 (diff) | |
| download | mkhintfile-efeeeb045ee8f7d92bc718c40661df0f5fb070c7.tar.gz mkhintfile-efeeeb045ee8f7d92bc718c40661df0f5fb070c7.zip | |
fix: version-aware bundled-dep reconcile; release v1.2.1v1.2.1
reconcile_bundle_deps flagged a dep as changed on raw URL-string
inequality. Manifests serve bare-tag archive URLs
(.../archive/v0.26.7.tar.gz) while hints use the SBo-fetched tree shape
(.../archive/v0.26.7/tree-sitter-0.26.7.tar.gz) — same version, different
path — so every dep was reported changed at a version that had not moved.
Add _url_version to parse and normalize the version from a URL basename,
and detect change by version rather than URL string. Only rewrite a line
when the version actually differs. Change report now shows
"name old-ver -> new-ver". Regression test T-BM17 pins the same-version,
different-shape case as no change (180 passed).
Bump MKHINT_VERSION and man title to 1.2.1, rebuild mkhint.1.gz.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Diffstat (limited to 'TODO.md')
| -rw-r--r-- | TODO.md | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -1,7 +1,7 @@ ## Post-1.2.0 (bundled-dep feature followups) - - [ ] **v1.2.1 (bug): reconcile change-detection must be version-aware, not raw-URL-equality.** `reconcile_bundle_deps` currently flags a dep as "changed" whenever the manifest URL string differs from the hint URL string, even when the upstream VERSION/pin is identical. On the real neovim 0.12.4 hint this fired on all 13 deps: the manifest serves bare-tag archive URLs (e.g. `.../archive/refs/tags/v0.26.7.tar.gz`) while the hint uses the SBo-fetched shape (`.../archive/v0.26.7/tree-sitter-0.26.7.tar.gz`) — same content, same version, different path. Answering `Y` would needlessly rewrite every URL to the manifest shape (which the SlackBuild may not expect), re-download 12 tarballs, and produce a huge spurious diff with zero real version change. Fix: detect "changed" by comparing the matched dep's upstream version/sha (parsed from the manifest URL + its `NAME_SHA256` line) against the hint's current version/pin, NOT by URL-string inequality. Only rewrite a line when the pin actually moved. Add a regression test whose manifest URL shape differs from the hint at the same version and assert NO change is reported. - - [ ] related to the above: the change-report labels (`_dep_label`/basename) render badly for bare-tag manifest URLs — showed `v0.26.7.tar.gz` / `fbb36bb...tar.gz` (dropped the name prefix) because manifest basenames carry no name stem. Once change-detection is version-aware, report `name old-ver -> new-ver` from the parsed identity+version rather than URL basenames. + - [x] **v1.2.1 (bug): reconcile change-detection is now version-aware.** `reconcile_bundle_deps` detects change via `_url_version` (version parsed from each URL basename, normalized), not raw URL string. Report shows `name old-ver -> new-ver`. Regression test T-BM17. Compares version strings only, not `NAME_SHA256`; add sha compare if a same-version-different-content case ever appears. + - [ ] verify on the VM that utf8proc (previously reported no-match AND in the FYI) now reconciles correctly with the version-aware fix; if it still no-matches, it is a `match_dep_url` stem issue, not change-detection. - [ ] add a `--special` flag to add a package to the bundled list, asking for a link to it's upstream deps list file - [ ] consider splitting `mkhint` into multiple files for easier maintenance - [ ] add a noDL column to `--list` similar to what we do with DelReq |
