Skip to content

chore(devtools): move the hooks to lefthook and commitlint - #8

Merged
davidmoralesz merged 1 commit into
chore/pin-tools-with-misefrom
chore/adopt-mise-lefthook
Oct 9, 2026
Merged

davidmoralesz merged 1 commit into
chore/pin-tools-with-misefrom
chore/adopt-mise-lefthook

Conversation

@davidmoralesz

@davidmoralesz davidmoralesz commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

What

Second of two, stacked on chore/pin-tools-with-mise. Brings this repo in step with the project template.

  • Hooks: lefthook, each tool through mise. Shared jobs in .devtools/lefthook-base.yml (managed); check-packs in lefthook.yml.
  • Commits: .commitlintrc.yaml extends @commitlint/config-conventional and makes the scopes binding: cauldron-copper, build, ci, docs, deps, devtools, plus main for release-please's titles. A new pack's slug has to be added there.
  • CI: lint.yml calls ci-lint.yml@v1.
  • Python: the pack scripts use only the standard library, so they run on the Python mise pins. .devtools/pyproject.toml, uv.lock and .python-version are removed, with .pre-commit-config.yaml.
  • Template: .template-version is now a real tag instead of a commit that no longer exists.

Template

Synced to studiobimo/project-template v0.3.1. make -C .devtools drift, run against that release with no local override, reports the repo in step.

After merging

In your checkout: make -C .devtools setup, to install the tools and replace the pre-commit git hooks with lefthook's.

Tested

  • make -C .devtools check: lint (all shared jobs plus check-packs) and the build pass.
  • template-sync.sh --check against the template branch: in step.
  • commitlint accepts feat(cauldron-copper): … and rejects an unlisted scope.
  • Committed and pushed through the new hooks.

Syncs with the project template, which replaced pre-commit and uv. lefthook runs the
hooks, each tool through mise: the shared ones are in .devtools/lefthook-base.yml and
check-packs is in lefthook.yml.

commitlint checks commits against its conventional config and this repo's scopes,
which are now enforced: a pack's slug, or build, ci, docs, deps, devtools.

The lint job calls ci-lint. The pre-commit config and the Python project under
.devtools are removed; the pack scripts run on the Python mise pins.
@davidmoralesz
davidmoralesz marked this pull request as ready for review October 9, 2026 19:21
@davidmoralesz
davidmoralesz added this pull request to stack #9 October 9, 2026 19:27
@davidmoralesz
davidmoralesz merged commit 34434be into main Oct 9, 2026
3 checks passed
@davidmoralesz
davidmoralesz deleted the chore/adopt-mise-lefthook branch October 9, 2026 19:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant