v7.4.0
- Breaking: Regroup the internal module layout: the tool catalog to
tool_registry.py, dep-report rendering todep_report.py, labels tolabels.py, bundled data tobundle.py, matrix axes tomatrix_axes.py(formerlytest_matrix.py), PR helpers togithub/issue.py. Import paths change; the CLI surface does not. - Breaking: Rename
update-deps-graphtoupdate-dep-graphacross the CLI command, autofix job, PR branch, and body template, aligning with thedependency-graphconfig key. Close any openupdate-deps-graphpull request; the next run reopens it on the new branch. - Breaking:
repomatic initcomponent selectors are now case-sensitive, validated by the same code path as theexcludeandincludeconfiguration entries. - Lower the compiled-binary OS floors: Linux glibc
2.28, built and self-tested inmanylinux_2_28containers (RHEL 8, Debian 10, Ubuntu 20.04 and later), and macOS11.0(Apple silicon) /10.15(Intel) via uv's embedded python-build-standalone interpreter. - Enforce each binary's OS floor at build time:
verify-binaryparses ELF, Mach-O and PE headers natively and no longer needs exiftool. - Keep
tkinterand its Tcl/Tk stack out of compiled binaries via the new[tool.repomatic]nuitka.nofollow-importssetting (default["tkinter"], set to[]to bundle it). - Emit man pages for repomatic's own CLI on docs builds and attach a
repomatic-manpages.tar.gzasset to each release. - Add
update-docs --checkto report out-of-date self-updating content and exit non-zero without writing, for CI drift detection. The docs update script must accept its own--checkflag to participate. - Add a
check_sha_pinning_requiredlint check and setup-guide step for GitHub'ssha_pinning_requiredActions setting, the platform-enforced backstop for action SHA pinning. - Unify the
lint-repochecks on one tri-state result protocol: skipped checks now printℹinstead of a misleading✓. - Key the CI tool-binary caches on
tool_registry.pyinstead of the whole runner module, so engine-only changes stop invalidating cached tools. - Report
sync-depsandupdate-checksumsprogress as a✓/✘trail with a running tally and a timed summary. - Warn about unknown
[tool.repomatic]keys once per project and process, instead of on every configuration re-load. - Loosen the uv
required-versionpin to a lower bound (>=0.12), dropping the per-minor upper cap so uv can update across minors without a manual bump. - Move the docs link checker from
ubuntu-slimtoubuntu-24.04-arm: the crawl outgrew the slim runner's 15-minute job cap. - Extend the bundled lychee configuration with generic excludes: GitHub issue-comment fragments, release binary downloads, and DOI-to-Zenodo redirects.
- Declare least-privilege permissions on the canonical
release.yaml, clearing the workflowcheck_workflow_permissionslint. - Extend the
check_workflow_permissionslint to flag a reusable-workflow call inheriting an empty top-levelpermissions: {}without its own grants: the misconfiguration that aborts a run at startup. - Block install-time scripts and apply the
minimum-release-agecooldown on every npm install ofawesome-lint, hardening both the runtime and CI-provisioning paths against supply-chain attacks. - Surface
uv audit's stderr when it exits without emitting JSON, replacing the bareproduced no outputerror. - Keep
metadatafrom crashing when git refuses the repository (dubious ownership, unresolvable range): it now logs git's stderr and continues. - Accept
sur(macOS Big Sur, Homebrew'sbig_surbottle tag) as a valid word in the bundled typos configuration, sofix-typosstops correcting it tosure. - Document the minimum OS requirement of each binary target, and the distributions it opens execution to, in a new Minimum OS requirements section that downstream binaries pages link to.
- Document how to verify a downloaded binary's build-provenance attestation with
gh attestation verifyon the installation page. - Order the installation docs' Python-compatibility table newest-first, so the latest release and Python version read from the upper-left.
- Rename the binaries page chart markers to
binaries-chart/binaries-chart-end, aligning on click-extra's<!-- name --> / <!-- name-end -->marker grammar; pages carrying older markers are migrated on their next refresh. - Fix the click-extra
{matrix}directive link on the installation page, and realign page octicons with thesphinx-docsagent's extended icon registry. - Emit an absolute
og:imageURL for social previews:ogp_site_urlnow backsogp_imagein the docs configuration. - Pin the install guide's versioned CLI examples (
pkg@X.Y.Z,pkg==X.Y.Z) to the release in the prepare-release freeze step. - Direct the
babysit-ciskill to announce its early exit and name the still-unverifiedrelease.yamlbinary run, instead of stopping on a silent idle. - Harden the
repomatic-shipskill: forbid detachedMonitorpolling, read the whole unreleased changelog section at invocation, and align every convention description its docs pass corrects. - Extend the
sphinx-docsagent andsphinx-docs-syncskill: the{click:run}--versiontrap, thin-schema combined CLI page, Cloudflare-blocked intersphinx probes, mdformat seed-block collapse, plus release-asset, self-healing-marker, and linkcheck audit guards. - Note in the
repomatic-shipskill that changelog released sections are immutable, and that a workflow cache-key line-length fix cannot lifthashFiles()into a workflow-levelenv:.
Full changelog: v7.3.1...v7.4.0