From 67d4196bb3c98b0f6c00e8e514d9060b1cf7be2f Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Wed, 8 Jul 2026 11:45:00 +0200 Subject: fix: complete version-aware reconcile against real URL shapes; release v1.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 --- CHANGELOG.md | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) (limited to 'CHANGELOG.md') diff --git a/CHANGELOG.md b/CHANGELOG.md index 32fe3a9..2a501e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,17 +4,37 @@ All notable changes to this project are documented here. The format is based on [Keep a Changelog](https://keepachangelog.com/), and this project adheres to [Semantic Versioning](https://semver.org/). +## [1.2.2] - 2026-07-08 + +### Fixed +- Completes the 1.2.1 version-aware reconcile against real-world URL shapes. + Verified against all 13 bundled deps of the live neovim 0.12.4 hint; 1.2.1's + `_url_version` mis-parsed several of them and 1.2.1 was never correct in the + field. +- `_url_version` now derives the version by stripping the URL's own github repo + name from the basename, so dep names that themselves contain digits/dashes + (e.g. `lua-compat-5.3`) parse correctly instead of splitting the name as a + version. A bare-tag basename (no name prefix) is taken as the whole version, + which fixes package-rev suffixes like `luv` `1.52.1-0` being truncated to `0`. + Non-github hosts and the shared `neovim/deps` blob host fall back to the + trailing-version/sha heuristic. +- `_url_repo` is now lowercased, so a dep that appears as `JuliaStrings/utf8proc` + in the hint and `juliastrings/utf8proc` in the manifest matches (github + owners/repos are case-insensitive) instead of being reported as unmatched and + duplicated in the manifest-only FYI. + ## [1.2.1] - 2026-07-08 ### Fixed -- Bundled-dep reconcile now detects change by upstream version, not raw URL - string. 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`); these are the same - version in different path shapes, so the old string comparison flagged every - dep as changed at a version that had not moved. Reconcile now extracts the - version from each URL (`_url_version`) and only rewrites a line when the - version actually differs. +- Bundled-dep reconcile detects change by upstream version, not raw URL string. + 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`); these are the same version + in different path shapes, so the old string comparison flagged every dep as + changed at a version that had not moved. Reconcile now extracts the version + from each URL (`_url_version`) and only rewrites a line when the version + actually differs. (URL-shape parsing was incomplete in this release; see + 1.2.2.) - The changed-deps report now shows `name old-ver -> new-ver` from the parsed identity and version, instead of version-stripped URL basenames. -- cgit v1.2.3