Skip to content

v7.6.0

Choose a tag to compare

@kdeldycke kdeldycke released this 08 Aug 10:23
Immutable release. Only release title and notes can be modified.

Note

7.6.0 is available on 馃悕 PyPI and 馃悪 GitHub.

  • Breaking: the labels component is now ephemeral: labels.toml and the two labeller YAMLs are staged only when named explicitly (repomatic init labels). A repository that committed them sees them reported as excluded files on disk, removable with init --delete-excluded.
  • New fix-awesome-toc command deletes the table-of-contents entries awesome-lint forbids from readme.md and every readme.{lang}.md beside it, matching translated sections by position rather than by their English name.
  • The bundled skills and agents are now published as a Claude Code plugin: /plugin marketplace add kdeldycke/repomatic then /plugin install repomatic@kdeldycke. Needs Claude Code 2.1.224 or later. Addresses #2378.
  • New pack-plugin command builds the attested repomatic-plugin.zip asset every GitHub release now carries, with the marketplace URL pinned to the release tag.
  • New init plugin component merges the plugin's marketplace and enablement keys into a repository's .claude/settings.json, leaving every other setting untouched. New [tool.repomatic] settings.location moves the destination.
  • lint-repo now checks a repository's own pr-body --template-file templates: they belong in .github/pr-templates/, must exist, and must carry a title and a bare footer: false.
  • A failed extra-assets job now leaves the GitHub release as a draft instead of publishing it without the declared assets. A skipped job still publishes, so repositories declaring no extra assets are unaffected.
  • sync-labels now exports to a scratch directory instead of the repository root, so it no longer leaves three untracked files behind. Both committed and downloaded extra-labels/ files are applied, a download shadowing a committed file of the same name.
  • The generated downstream release.yaml now carries the canonical deny-by-default permissions: {}, so a consumer job appended below the managed lanes no longer runs with the repository's default token scopes.
  • The generated release.yaml keeps the extra needs: edges a consumer declares on its release lane, so a caller-side asset build can gate the engine. Edges naming a managed lane, a vanished job, or an upstream-only job are still dropped.
  • Fix init downgrading the upstream uses: pins of a repository that adopted a release still inside the minimum-release-age window. The cooldown now gates adoptions only, and a rollback to an older repomatic is honored.
  • init no longer closes with "commit the generated files and push" on a run that produced nothing but ephemeral output.
  • Fix the broken-links and setup-guide jobs dying on a recurring issue that the autolock workflow had locked. A conversation lock blocking a close or reopen comment is now cleared and the write retried.
  • Fix repomatic run finding no binary on a Linux distribution extra-platforms cannot name, which broke every registry tool inside the AlmaLinux-based manylinux build container.
  • Fix a crash when pyproject.toml is removed while being read, which now falls back to an empty configuration as documented.
  • Re-lock uv.lock in the release freeze commit, so a release no longer ships with its version ahead of its own lock entry. The desync made the Windows binary builds fail.

Full changelog: v7.5.0...v7.6.0