aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
5 daysfeat: slackrepo build for new packages, update for existingDanilo M.2-11/+125
5 daystest: harness support for slackrepo stub and PACKAGES_DIRDanilo M.1-0/+23
5 daysdocs: implementation plan for config file + build-vs-updateDanilo M.1-0/+537
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
5 daysdocs: spec for config file + slackrepo update-vs-buildDanilo M.1-0/+180
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>
6 daysdocs: add CHANGELOG, document SemVer and -V/--set-version renamev1.0.0Danilo M.3-27/+56
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
6 daysfeat: completion knows -V/--set-version, -v/--version terminalDanilo M.1-2/+2
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
6 daysdocs: show version in --help, rename version flag in help textDanilo M.1-8/+9
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
6 daysfeat!: -v/--version prints tool version; hint version moves to -V/--set-versionDanilo M.2-13/+48
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>
6 daysdocs: implementation plan for semver adoptionDanilo M.1-0/+376
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
6 daysdocs: spec for semver adoptionDanilo M.1-0/+171
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
6 daysdocs: document -l directional color and DelReq columnDanilo M.2-2/+7
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
6 daysfeat: -l colors newer version cell green, adds DelReq columnDanilo M.2-10/+123
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>
6 daysdocs: implementation plan for -l color + DelReqDanilo M.1-0/+346
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
6 daysdocs: spec for -l directional color + DelReq columnDanilo M.1-0/+110
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
7 daysdocs: add Development Approach note, document -l/-R completionDanilo M.1-1/+9
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
7 daysfeat: -l <pkg...> shows side-by-side hint vs .infoDanilo M.5-12/+68
With package names, --list skips the table and shows each named hint diffed against its .info (git diff --no-index, else diff -y), missing hint exits 2. Diff display extracted to _show_hint_diff, shared with --review. Bash completion completes hint names after -l. Adds T58, T59. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
7 daysfeat: -l skips versionless hints, widen version columnsDanilo M.4-4/+31
--list now skips hint files with no VERSION (e.g. pure DELREQUIRES hints) and excludes them from the total. Version columns widened 10->22 to fit long version strings without shifting other rows. Adds T57. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
7 daysAdd phantom-dep stripping for slackware-currentDanilo M.5-4/+297
SBo SlackBuilds target stable; some build deps (rust-opt, google-go-lang) are unneeded on -current. Auto-add DELREQUIRES for these instead of writing a hintfile per dependent by hand. - Read the phantom-dep list from ~/.config/mkhint/phantom-deps (one per line, # comments; missing file = no-op). - --fix-current / -F: sweep the repo, ensure every package whose REQUIRES contains a phantom dep carries the matching DELREQUIRES. Create a minimal hint if absent, back up and merge into an existing hint otherwise. Idempotent, no prompts, mutually exclusive with -v/-f/-n. - --new: auto-append DELREQUIRES for phantom deps found in the .info. - Tests T50-T56; docs and bash-completion updated. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
8 daysdocs: document dashed/underscore version normalization in READMEDanilo M.1-0/+2
Explain that upstream 2026-06-02 and packaged 2026_06_02 are treated as the same version (SlackBuild versions cannot contain '-'), applied in --check and --hintfile, with updates stored in underscore form. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
8 daysfeat: treat dashed upstream version as equivalent to packaged underscore formDanilo M.3-5/+54
SlackBuild versions cannot contain '-' (it breaks PRGNAM parsing), so an upstream date like 2026-06-02 is packaged as 2026_06_02. mkhint was comparing them byte-for-byte and offering a spurious upgrade/downgrade. Add _normalize_version ('-' -> '_') and apply it to the upstream version in --check and --hintfile (no -v) before comparing and before storing, so equivalent versions compare equal and accepted updates are written in the underscore form. nvtake still uses nvchecker's raw keyfile value. Tests T48/T49 cover equivalence and normalized storage (105 passing). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
8 daysstyle: split local decl/assign and quote path varsDanilo M.1-10/+10
local X=$(cmd) masks the command exit code under set -e; split into declaration then assignment at the four remaining sites. Quote unquoted path expansions (dlfile, HINT_DIR, REPO_DIR, info, normalized_file). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
14 daysdocs: document -R <pkg...> named-hint review in READMEDanilo M.1-3/+4
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
14 daysdocs: document -R <pkg...> named-hint reviewDanilo M.2-2/+7
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
14 daysfeat: complete multiple hint names after -R/--reviewDanilo M.1-0/+14
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
14 daystest: cover -R <pkg...> named-hint review (T44-T47)Danilo M.1-0/+66
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
14 daysfeat: review named hints via -R <pkg...> regardless of version matchDanilo M.1-5/+15
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
14 daysrefactor: extract _review_one_hint, drive review loop from a listDanilo M.1-35/+60
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
14 daysdocs: plan for reviewing named hints via -R <pkg...>Danilo M.1-0/+371
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
14 daysdocs: spec for reviewing named hints via -R <pkg...>Danilo M.1-0/+55
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19perf: scan single nvchecker entry with -e for single-package checksDanilo M.4-8/+66
When --check is given exactly one package, and when --hintfile suggests a version without -v, run `nvchecker -e <pkg>` so only that entry is scanned instead of the whole nvchecker.toml. Two+ packages or no args still do one full scan, since nvchecker -e accepts only a single entry. Add T42/T43 (mock nvchecker now logs its args), and update CLAUDE.md and README.md (including the previously undocumented -R/--review and -l highlight). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19fix: strip trailing slash in review hint path for consistent outputDanilo M.1-1/+1
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19docs: document -l highlight and -R review; add to bash completionDanilo M.2-2/+12
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19feat: add -R/--review loop with side-by-side diff and keep/delete promptDanilo M.2-6/+130
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19feat: highlight hint rows whose version matches SBo .info in -lDanilo M.2-2/+56
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18refactor: extract _remove_hint helper for reuse in review loopDanilo M.1-8/+14
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18docs: implementation plan for -l highlight + -R review loopDanilo M.1-0/+504
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18docs: spec for -l version-match highlight + -R review loopDanilo M.1-0/+147
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13Merge feat/nvchecker: nvchecker integrationDanilo M.7-11/+1335
- --new appends nvchecker [section] (github/pypi autodetect, else stub) - --hintfile without -v suggests latest version via nvchecker - --check/-C bulk update with per-package confirm + single slackrepo - --check populate missing sections prompt - fix: TOML-quote section names with non-bare-key chars - fix: resolve relative keyfile path against config dir Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13fix: resolve relative nvchecker keyfile path against config dirDanilo M.2-0/+31
nvchecker resolves a relative oldver/newver/keyfile path against the config file's directory, not the CWD. _nvchecker_newver_path returned the raw relative string (e.g. "new_ver.json"), so nvchecker_latest's [[ -f ]] check ran against whatever CWD 'mkhint -C' was launched from — almost never the config dir. Result: every package reported 'no nvchecker result' and the run said 'all up to date' despite nvchecker having found updates. Resolve non-absolute keyfile paths against dirname(NVCHECKER_CONFIG). T35 covers a relative newver path with the keyfile beside the config. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13fix: quote nvchecker section names containing non-bare-key charsDanilo M.2-7/+80
Section names with '.', '-', etc. must be TOML-quoted (e.g. ["yt-dlp"]), otherwise nvchecker fails to parse them. add_nvchecker_section wrote bare [pkg] headers, so such names had to be hand-quoted. Worse, _has_nvchecker_section only matched the bare form, so already-present quoted sections were reported as missing and re-flagged for populate on every 'mkhint -C' run. Add _nvchecker_label helper as the single source of truth for the written label (bare iff name matches ^[A-Za-z0-9_]+$, else double-quoted), used by both the write side (3 section headers + messages) and the read side (_has_nvchecker_section grep, with regex metachars escaped so '.' is literal). Tests T32-T34 cover quoted-header write, no-duplicate on re---new, and --check recognizing an existing quoted section. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13docs: document --check populate-missing-sections promptDanilo M.2-1/+8
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13test: add T29-T31 for --check populate missing sectionsDanilo M.1-0/+77
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13feat: --check offers to populate missing nvchecker sectionsDanilo M.1-1/+33
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13refactor: extract _has_nvchecker_section helperDanilo M.1-2/+10
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13docs: plan for --check populate missing sectionsDanilo M.1-0/+379
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13docs: spec for --check populate missing nvchecker sectionsDanilo M.1-0/+155
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13test: add T27 (downgrade flag) and T28 (--check scan-all)Danilo M.1-0/+41
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13docs: document nvchecker integration and --check commandDanilo M.2-4/+66
- Add Dependencies section covering wget, nvchecker/nvtake, and jq - Document nvchecker config at ~/.config/nvchecker/nvchecker.toml - Add usage examples for all three new features: * --new appends nvchecker [section] auto-detecting source type * --hintfile without -v queries nvchecker for latest version * --check/-C runs comprehensive update checks across all hints - Update Exit Code 4 description to list all required tools - Add test coverage rows T16-T26 for nvchecker integration tests - Add Key Behaviors bullets for nvchecker-specific features - Update bash completion note to include --check/-C Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13feat(completion): add --check/-C flag and package-name completionDanilo M.1-2/+2
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13test: add nvchecker config patch and mock tools to harnessDanilo M.1-0/+211
- Patch NVCHECKER_CONFIG in run_mkhint() sed block - Add nvchecker.toml + new_ver.json/old_ver.json fixtures in setup() - Add github (ghpkg) and pypi (pypkg) .info fixtures - Add mock_nvchecker_tools() with no-op nvchecker and logging nvtake - Call mock_nvchecker_tools after mock_wget Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>