Skip to content

build: migrate dev tooling from make + tox to just#139

Merged
ivankorobkov merged 4 commits into
ivankorobkov:masterfrom
trin94:build/migrate-to-just
Jul 3, 2026
Merged

build: migrate dev tooling from make + tox to just#139
ivankorobkov merged 4 commits into
ivankorobkov:masterfrom
trin94:build/migrate-to-just

Conversation

@trin94

@trin94 trin94 commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Hi again,

Replace make + tox with a single just task runner, plus the lint and CI cleanups that come with it.

Migrate to just

Replace tox and the Makefile with a Justfile with the full task list (format, lint, type-check, test matrix across 3.10-3.14), and make CI use those recipes.

Why just and not a Makefile?

just is a command runner, not a build system, so it avoids Make's build-target stuff: recipes aren't file targets, there's no .PHONY, and we can pass arguments. See the just manual. There's a section with the advantages over make.

Running just in a terminal outputs:

image

Ruff fixes

Fix a real ISC004 bug (a stray comma made a runtime-binding error message a tuple), reorder a docstring (D420), make the test context-manager fixtures exception-safe (RUF075), and disable RUF067 for the single-module layout.

CI runners

Run every job on ubuntu-latest.

Full mypy re-enabled

Add the full-tree mypy back as its own blocking job, split from the green public-API check.

Note

The Type checking (library code) job is red: it surfaces 17 pre-existing mypy errors instead of hiding them. Every other job is green.

Thank you and all the best 😄
Elias

trin94 added 4 commits July 1, 2026 22:56
RUF067 fires on every top-level statement because the whole public
API intentionally lives in inject/__init__.py, so it is turned off
project-wide rather than per file.

ISC004 caught a real bug: a stray trailing comma made the runtime
binding error message a one-element tuple instead of a string, so
the raised exception showed the tuple instead of the text. Dropping
the comma restores the intended message.

D420 reorders the get_injector_or_die docstring so Returns comes
before Raises.

RUF075 wraps the yields in the test context-manager fixtures in
try/finally so their cleanup still runs when the caller raises.

The now-unused `# noqa: RUF029` on the async fixtures is dropped too;
that removal is a ruff auto-fix.
@ivankorobkov ivankorobkov merged commit efcc37f into ivankorobkov:master Jul 3, 2026
8 of 9 checks passed
@ivankorobkov

Copy link
Copy Markdown
Owner

Cool, thanks. Should I make the next release?

@trin94 trin94 deleted the build/migrate-to-just branch July 3, 2026 07:47
@trin94

trin94 commented Jul 3, 2026

Copy link
Copy Markdown
Contributor Author

It's up to you of course 😃

However, the most recent work is actually only dev tooling + imo very minor bug fixing. There's one thing: the README now mentions 5.5.0 for Python 3.10 but 5.5.0 has not been released yet.

@trin94 trin94 mentioned this pull request Jul 4, 2026
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.

2 participants