Skip to content

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 --list becomes repro tasks; just test becomes repro run test.
  • Arguments pass through. Arguments after -- go to the task's command: repro run test -- --verbose.

Concept map

just or makereprobuild
recipe, phony targettask, declared in the devEnv: block
just --list, make helprepro tasks
just <recipe>, make <target>repro run <task>
recipe argumentsarguments after --
a file target with prerequisitesan 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.

Next steps