v7.12.0
- New
ci-statuscommand reporting each workflow's latest run and which of its failing jobs gate a merge, read from jobs rather than run conclusions. - New
repomatic run <tool> --verifyreporting which files a formatter would rewrite, without touching the working tree. repomatic runnow resolves a tool's targets itself when given no arguments, and skips a tool with no matching file instead of invoking it pathless.- New repeatable
pr-sync --add-pathoption limiting what the pull request commits to a git pathspec list. lint-depsnow warns about declarations departing from version policy: upper bounds, missing floors, unsorted lists, misplaced type stubs, uncommented floors. Disabled with--no-policy.lint-depsnow names thelint-deps.allowexemption in the remedy it prints for a git source.sync-workflow-pinsnow backfills a missing--exclude-newer-packageexemption on a run that moves no version, instead of computing the splice and discarding it.lint-reponow fails when an inline upstream pin resolving under a cooldown carries no--exclude-newer-packageexemption, which takes everyneeds: metadatajob down with it.lint-reponow warns when anastral-sh/setup-uvstep declares noversion:input, or when steps across the repository pin more than one uv version.lint-reponow fails, andrepomatic initnow warns, when a workflow asksrepomatic metadatafor a key that no longer exists.lint-reponow warns when a Sphinx project's GitHub website field differs from the documentation URL declared in[project.urls].lint-changelognow warns about a released section holding no entry.runner-imagesnow watches every image the workflows name literally, not just the curated test axes.- A bare
repomatic initnow re-syncs a tool config the repository already carries, so[tool.typos],[tool.uv]and[tool.bumpversion]follow the bundled template once adopted. - Every job now caps its runtime with
timeout-minutes, so a hung job frees its runner in minutes instead of the platform's 6-hour ceiling. Downstream callers inherit the caps. - The Docs workflow now triggers on
readme.*.md, so a push touching only a translated readme no longer skips link checking. repomatic run actionlintnow ships a bundled config declaring theubuntu-26.04runner labels actionlint1.7.12predates.- The bundled
lychee.tomlnow excludesbitdefender.com,npmjs.com,star-history.comandgithubstatus.com, which answer bots with 403, 405 or JavaScript rather than a link. cancel-runsnow spares a run whose head commit carries[changelog] Release, so a sweep of the default branch cannot kill a release matrix.- Fix
ghre-downloading on every command instead of once per version: a binary nested in an archive subdirectory was stored under one cache key and looked up under another. - Fix
repomatic initrealigning a workflow's inlinerepomatic==X.Y.Zpin without the cooldown exemption beside it, leaving a command that cannot resolve the version just written. - Fix
audit --fixdirtyinguv.lockwith a cooldown-override record when no upgrade was reachable, which opened afix-vulnerable-depspull request carrying no fix. - Fix
repomatic initrestyling a locally added array item when it re-syncs a tool config, which hadsync-repomaticandformat-pyprojectendlessly opening pull requests undoing each other. - A formatter exiting with its rewrite status while leaving every target unchanged is now reported as a crash, instead of passing for a successful reformat that never happened.
- Fix stale guidance across the bundled skills: wrong
[tool.repomatic.workflow]key names, wrong workflow and job names forlint-depsandlint-changelog, which tools a bundled default actually covers, and downstream audits comparing againstmainrather than the adopted release. - Fix the bundled
babysit-ciskill classifying a CI job by a leading✅, which dropped every required job whose name carries no stability glyph from the failures it collects.
Full changelog: v7.11.0...v7.12.0