Skip to content

Task Automation with just

Copper uses just to keep common tasks repeatable. just looks for the nearest justfile, so run it from the project directory you want to work in.

Install

Follow the installation instructions in the just README for your platform.

Discover commands

just -l

Visualize topology and schedule

Run just graph for declared task-graph topology and just sched for the generated per-CopperList process schedule, including separate serial and parallel-rt projections.

For mission or conditional-feature configs:

just sched copperconfig.ron schedule.svg autonomous
just sched-log
just graph-log

The plan's equal-width columns show order, not elapsed time. Serial uses one main-executor lane; parallel staggers in-flight CopperLists across generated stage workers. Background gateway arrows feed the same named-pool worker lanes in both views, so pool capacity and possible overlap remain visible. Resource bindings are annotations; they are not scheduler reservations.

Generated projects provide default log paths and logreaders for the -log recipes. In repository examples using the shared viewer recipes, pass config, output, log, logreader, and package explicitly; for example, just sched-log copperconfig.ron schedule-log.svg logs/caterpillar.copper cu-caterpillar-logreader cu-caterpillar. These recipes add typical and slowest CopperList timelines. Task segments remain proportional to recorded process_time duration. Shared declared resources whose intervals overlap are flagged as potential contention, not proven waiting. Serialization is not timestamped; residual gaps remain unclassified because they can include rate limiting, scheduling, and I/O.

Generated host templates also provide pgs-baseline, pgs-optimize candidates=3, pgs-candidate candidate=1, and pgs-measure candidates=1. They write ranked plans, selected configs, and predicted/measured SVGs under target/pgs. Tune the starter schedule.ron contract for the application. Bare-metal/no_std template generation omits PGS.

Where to run just

  • Repo root: CI and lint helpers.
  • Examples:
  • examples/cu_caterpillar
  • examples/ros_caterpillar
  • examples/ros_zenoh_caterpillar
  • examples/cu_rp_balancebot
  • examples/cu_elrs_bdshot_demo
  • examples/cu_standalone_structlog
  • Components:
  • components/sources/cu_ads7883
  • components/sinks/cu_rp_sn754410
  • components/payloads/cu_ros_payloads
  • Support utilities:
  • support (general deploy/sdcard)
  • support/docker (build/run dev containers)