Coming from just and make
This page maps a justfile, or a Makefile used as a task runner, onto reprobuild, explains where they differ, and says when just or make remains the better choice.
What carries over
- Named commands live in the repository. A recipe or a phony target becomes a task in the project file.
- You list them and run them by name.
just --listbecomesrepro tasks;just testbecomesrepro run test. - Arguments pass through. Arguments after
--go to the task's command:repro run test -- --verbose.
Concept map
just or make | reprobuild |
|---|---|
| recipe, phony target | task, declared in the devEnv: block |
just --list, make help | repro tasks |
just <recipe>, make <target> | repro run <task> |
| recipe arguments | arguments after -- |
| a file target with prerequisites | an action in the build graph |
A task is declared like this:
devEnv:
task "test",
command = "just test",
description = "Build the apps and run the full test suite"The command can stay a call to your existing justfile while you move over.
What works differently
A task runs inside the project's environment. reprobuild activates the development environment first, so a task uses the project's tools whether or not your shell has them.
Building is not a task. A make rule that produces a file is a build step, and in reprobuild a build step is an action: it is cached, run in parallel with independent actions, and run again only when something it read changes. Keep tasks for commands that are not builds, such as starting a release or seeding a database.
When `just` or `make` remains the better choice
just, when you want a small, readable list of commands and nothing that inspects or caches what they do.make, when your build already is a set of correct make rules and the repository needs no environment or workspace around it.