| Age | Commit message (Collapse) | Author | Files | Lines |
|
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>
|
|
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>
|
|
Real neovim 0.12.4 run flagged all 13 deps as changed because the manifest
serves bare-tag archive URLs while the hint uses the SBo-fetched URL shape;
same version, different path. Raw-URL-equality detection is wrong; compare
upstream version/pin instead.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Review findings before v1.2.0 deploy:
- apply mode now writes a .bak before mutating (parity with every other
mutator; the --force recovery path had no rollback)
- the changed-deps report shows old->new basenames so bumps are visible,
not the version-stripped 'dep -> dep'
- apply mode no longer re-prints the report (report/apply split)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Parity with --check: the update path runs Phase 2 (report + apply) after
the primary bump.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
The bundled-dep FYI iterated all manifest URLs but only extra (index>=1)
hint URLs were tracked as matched, so the manifest's primary entry was
always reported as 'not in hint'. Seed the primary's manifest match
(without reconciling index 0) so the FYI is accurate.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Runs after the primary bump; auto when the primary changed this run,
otherwise only with --force. Report then per-package apply confirm.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Report-only at creation time; the .info version is kept, upstream
disagreement is flagged.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Match each extra DOWNLOAD line to the manifest, rewrite changed lines and
recompute their md5 in apply mode, report only in report mode, and print
the manifest-only-deps FYI. Primary line untouched.
Also guard the main "$@" call at the bottom of mkhint behind a
BASH_SOURCE check so tests can source the whole script (needed to reach
parse_multiline_var/build_multiline_value/download_file alongside the
new function) without triggering the no-args CLI path, which previously
called exit 1.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Parse the pkg->url-template config and substitute {VERSION}.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Repo-path match first, exact basename-stem fallback for blob hosts. Blob
host repo (owner/deps) is excluded from repo-path matching so it resolves
by stem.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Opt-in per-package manifest for bundled-dep reconciliation. No behavior
yet; wires the config default and the test-harness path patch.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
12 tasks (TDD): parser/matcher helpers, --new report hook, --check +
--hintfile Phase 2 reconcile with --force gate, completion, docs, release
v1.2.0, VM deploy.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Design for reconciling a bundle package's extra DOWNLOAD lines against an
upstream deps manifest (neovim's cmake.deps/deps.txt). Opt-in per package
via BUNDLE_MANIFEST_FILE, --check two-phase flow with a --force gate on the
manifest reconcile, report-only on --new. Target v1.2.0.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
--hintfile -V and --new -V only substituted the packaged underscore form
of the old version, so download URLs using the upstream dash form (dates
like 2026-07-07, tags) kept pointing at the old tarball and their md5
went stale. Now both the underscore and dash variants of old->new are
rewritten. exploitdb was the trigger case.
Tests T74 (--hintfile) and T75 (--new) cover the dashed-URL bump.
Release v1.1.3.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
David Spencer (idlemoor) abandoned slackrepo; Andrew Clemons now
maintains it at github.com/aclemons/slackrepo. Update the CLAUDE.md
link and add a README credit line naming both.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Trim show_help to a usage synopsis, the options list, the runtime
paths, and a 'man mkhint' pointer. The usage examples, variable-order
note, and exit-code table now live in the man page. Add T73 asserting
--help exits 0 and points at the man page.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Escape double-dashes in option names and drop the markdown link so
pandoc's man output renders --flags and text correctly.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Add a 'Config file:' line to the help output reporting whether
$MKHINT_CONFIG is present and sourced or absent (defaults in use).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Bump MKHINT_VERSION to 1.1.0, close CHANGELOG [Unreleased] as [1.1.0].
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
|
|
|
|
|
|
|
|
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Config file at ~/.config/mkhint/config sourced with baked-in defaults,
moving REPO_DIR/HINT_DIR (and new PACKAGES_DIR) out of hardcoding in both
mkhint and the completion script. --check/--hintfile pick `slackrepo build`
for packages not yet in the repo, `update` for existing ones.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
BREAKING CHANGE: the hint-version flag is now -V/--set-version. -v/--version
now prints the tool's own version and exits.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Equal versions keep the yellow row (and MATCHED_PKGS for -R). When
versions differ, sort -V picks the newer side and only that cell is
green. New DelReq column (before Created) shows a check when the hint
has a populated DELREQUIRES. Tests T60-T64 added.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|