aboutsummaryrefslogtreecommitdiffstats
path: root/CLAUDE.md
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-07-08 11:45:00 +0200
committerDanilo M. <danix@danix.xyz>2026-07-08 11:45:00 +0200
commit67d4196bb3c98b0f6c00e8e514d9060b1cf7be2f (patch)
tree7fa81814653a6e613590262f2683b913acccf983 /CLAUDE.md
parentefeeeb045ee8f7d92bc718c40661df0f5fb070c7 (diff)
downloadmkhintfile-67d4196bb3c98b0f6c00e8e514d9060b1cf7be2f.tar.gz
mkhintfile-67d4196bb3c98b0f6c00e8e514d9060b1cf7be2f.zip
fix: complete version-aware reconcile against real URL shapes; release v1.2.2v1.2.2
1.2.1 made the bundled-dep reconcile version-aware but _url_version mis-parsed several real-world URL shapes, so 1.2.1 was never correct in the field (found by running mkhint -C --force neovim against the live 0.12.4 hint). _url_version now derives the version by stripping the URL's own github repo name from the basename: - dep names containing digits/dashes (lua-compat-5.3) parse correctly instead of splitting the name as a version - a bare-tag basename with no name prefix is taken as the whole version, fixing package-rev suffixes (luv 1.52.1-0 was truncated to 0) - non-github and the shared neovim/deps blob host fall back to the trailing-version/sha heuristic _url_repo is lowercased so JuliaStrings/utf8proc matches juliastrings/utf8proc (github repos are case-insensitive); utf8proc had reported no-match and appeared in the manifest-only FYI. Verified against all 13 live neovim 0.12.4 bundled deps: all match and report current, no false change, a real bump still detected. Adds T-BM22 (one case per URL-shape class) and T-BM23 (case-insensitive repo match); T-BM17 unchanged. 182 passed. Bump MKHINT_VERSION and man title to 1.2.2, rebuild mkhint.1.gz. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Diffstat (limited to 'CLAUDE.md')
-rw-r--r--CLAUDE.md16
1 files changed, 11 insertions, 5 deletions
diff --git a/CLAUDE.md b/CLAUDE.md
index 77af699..16876c3 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -155,12 +155,18 @@ When adding new features, add a corresponding test case to `tests/mkhint_test.sh
the upstream deps manifest (`NAME_URL`/`NAME_SHA256` pairs, e.g. neovim's
`cmake.deps/deps.txt`), matches each extra `DOWNLOAD` line via
`match_dep_url` (repo-path first, exact basename-stem fallback for blob
- hosts). A matched line is rewritten only when its upstream *version* differs
- (`_url_version` parses the version from each URL basename and normalizes it),
- not when only the URL path shape differs, so a manifest's bare-tag
- `archive/v0.26.7.tar.gz` and the hint's SBo-fetched
+ hosts; `_url_repo` is lowercased so a `JuliaStrings/utf8proc` hint matches a
+ `juliastrings/utf8proc` manifest — github repos are case-insensitive). A
+ matched line is rewritten only when its upstream *version* differs
+ (`_url_version`), not when only the URL path shape differs, so a manifest's
+ bare-tag `archive/v0.26.7.tar.gz` and the hint's SBo-fetched
`archive/v0.26.7/tree-sitter-0.26.7.tar.gz` at the same version are treated as
- current. Changed lines get their md5 recomputed; the report shows
+ current. `_url_version` derives the version by stripping the URL's own github
+ repo name from the basename (so digit/dash-containing dep names like
+ `lua-compat-5.3` parse), treats a bare-tag basename as the whole version
+ (package-rev suffixes like `1.52.1-0`), and falls back to a
+ trailing-version/sha heuristic for non-github and the shared `neovim/deps`
+ blob host. Changed lines get their md5 recomputed; the report shows
`name old-ver -> new-ver`. Runs automatically when the primary changed this
run, otherwise only with `--force` (check-only flag). `--new` on a listed
package prints the reconcile report without changing the hint. Manifest deps