v6.25.0
- Add man page generation to the release and docs pipelines. A
manpagesjob in_release-engine.yaml, activated by[tool.repomatic.manpages]config keys (script,asset-name) inpyproject.toml, shells out toclick-extra man --output-dir man "${SCRIPT}"and uploads the rendered roff.1files as a<asset-name>.tar.gz(defaulting to<package-name>-manpages.tar.gz) on the GitHub release; requiresclick-extra>=7.19. Thedeploy-docsjob installsmandocalongside Graphviz so projects usingclick_extra.sphinx.manpagesget browser-viewable.htmlsiblings in the docs build. Both are silently skipped whenmanpages.scriptis unset. - Validate
[project.scripts]entries when assembling the Nuitka build matrix. A script name that PyPI and uv-build would refuse (path-shaped like../escapeornested/script, empty, dot-only, or containing characters outside[A-Za-z0-9._-]) is rejected up front instead of flowing into the binary file path template and release workflow artifact commands. A malformed value (no colon, multiple colons, empty side) raises a descriptive error instead of crashing later with a tuple-unpackingValueError. - Replace the
tomlkitdependency withtomlrtfor all comment-preserving TOML writes. Extendtomlrtto all TOML reads too (pyproject.toml,uv.lock,[tool.X]extraction), dropping thetomlibackport and the conditionaltomllib/tomliimport shim previously scattered across eight modules. - Improve GitHub failure detection across
repomatic.github: annotateghand PAT permission check failures with the current githubstatus.com summary (memoized per process, 3-second timeout, no-op when the status page is unreachable); broaden theGITHUB_TOKENfallback inrun_gh_commandto fire onRequires authenticationin addition toBad credentials; fix PAT permission check failure messages to surface raw stderr for non-403 failures instead of misreporting them as missing scopes. - Recognize all forms uv accepts in
[tool.uv].exclude-newerwhen computing the cooldown cutoff inrepomatic sync-uv-lock: friendly durations with hours, minutes, or seconds (like24 hours,30 minutes), and ISO 8601 durations (PT24H,P7D,P1DT2H). - Fix
UV_OVERRIDE=uv-overrides.txtnot reaching Renovate's child processes: prefix theuvx --from . repomatic update-checksumsinvocations inrenovate.json5(andrepomatic/data/renovate.json5) with the override, and update theRENOVATE_ALLOWED_COMMANDSregex inrenovate.yamlto allow both the prefixed and bare forms. - Add
[tool.repomatic] abandoned-versionsconfig tolint-changelog. Listed versions are reported as skipped (info log) instead of triggering the⚠ X.Y.Z: not found on PyPIwarning every run, for releases that were frozen but never published perCLAUDE.md§ Skip and move forward. Applies to both the PyPI lookup and the git-tag fallback. - Tighten
/repomatic-ship's pre-push gate: addruff format --checkalongsideruff check, and smoke-runuvx --no-progress --from . repomatic --versionto surface dependency-resolution failures before CI. Document in the skill that the docs reconciliation pass must run<cmd> run mypy -- docs/after editing any.pyfile indocs/(the project's mypy gate uses the minimum supported Python version, not the docs group's higher floor), and that the spawnedbabysit-cisubagent must re-poll CI after each fix push rather than returning on first push success.
Full changelog: v6.24.0...v6.25.0
🛡️ VirusTotal scans
| Binary | Detections | Analysis |
|---|---|---|
repomatic-6.25.0-linux-arm64.bin |
0 / 62 | View scan |
repomatic-6.25.0-linux-x64.bin |
0 / 62 | View scan |
repomatic-6.25.0-macos-arm64.bin |
1 / 61 | View scan |
repomatic-6.25.0-macos-x64.bin |
1 / 60 | View scan |
repomatic-6.25.0-windows-arm64.exe |
2 / 68 | View scan |
repomatic-6.25.0-windows-x64.exe |
19 / 70 | View scan |