Skip to content

Replace Makefile with just#725

Merged
laughingman7743 merged 2 commits into
masterfrom
feature/migrate-makefile-to-just
Jun 14, 2026
Merged

Replace Makefile with just#725
laughingman7743 merged 2 commits into
masterfrom
feature/migrate-makefile-to-just

Conversation

@laughingman7743

Copy link
Copy Markdown
Member

WHAT

Migrate the task runner from Make to just.

  • Add a justfile mirroring every Makefile recipe; delete the Makefile.

  • just recipe names cannot contain /, so the namespaced Make targets become argument-dispatching recipes (keeping the old slash hierarchy as command-argument grouping):

    Old (make) New (just)
    make test/pyathena just test pyathena
    make test/sqla just test sqla
    make test/sqla-async just test sqla-async
    make docs/build just docs build
    make docs/lint just docs lint
    make docs/format just docs format
    make format / lint / tox / tool just format / lint / tox / tool

    The per-target lint dependency is preserved (_test-pyathena: lint).

  • CI installs just via taiki-e/install-action in test-suite.yaml and docs.yaml. docs-lint.yaml already uses jdx/mise-action, so just is added to the committed .mise.toml and installed by mise there (same as markdownlint-cli2).

  • Update pyproject.toml tox config (allowlist_externals + per-env commands) and the docs (docs/testing.md, CLAUDE.md).

WHY

just is a simpler, cross-project task runner than Make (no .PHONY boilerplate, clearer syntax, reusable across repos). It can be managed globally via mise, while CI pins the installer for reproducibility.


Verified locally: just --list, just lint (ruff + format check + mypy, all green on 82 source files), and just docs lint (markdownlint, 0 errors).

laughingman7743 and others added 2 commits June 14, 2026 12:55
Migrate the task runner from Make to just (casey/just).

- Add justfile mirroring the Makefile recipes. just recipe names cannot
  contain '/', so the namespaced targets become argument-dispatching
  recipes: 'make test/pyathena' -> 'just test pyathena',
  'make docs/build' -> 'just docs build'. The per-target lint dependency
  is preserved (_test-pyathena depends on lint).
- Delete Makefile.
- CI: install just via taiki-e/install-action in test-suite.yaml and
  docs.yaml; docs-lint.yaml gets just from mise (added to .mise.toml,
  alongside markdownlint-cli2).
- Update tox config (allowlist_externals + commands) and docs
  (testing.md, CLAUDE.md) to the just commands.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
`just test` / `just docs` with no argument, or with -h/--help, now print
a usage listing of available targets instead of erroring, improving
discoverability of the argument-dispatched recipes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@laughingman7743 laughingman7743 force-pushed the feature/migrate-makefile-to-just branch from 2ce5099 to 15007c1 Compare June 14, 2026 04:12
@laughingman7743 laughingman7743 marked this pull request as ready for review June 14, 2026 04:43
@laughingman7743 laughingman7743 merged commit 18f8d28 into master Jun 14, 2026
18 checks passed
@laughingman7743 laughingman7743 deleted the feature/migrate-makefile-to-just branch June 14, 2026 04:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant