Modules
Flaky-test detection for ExUnit.
Classifies recorded test outcomes into flaky tests and suspects.
Preflight checks behind mix temper.doctor, diagnosing the setup
mistakes that fail silently: a formatter that never registers, a
history_path invisible outside the test env, a suite that records
nothing, records without a usable commit SHA.
Boundary module that gathers run context data from the real world: git, CI environment variables, the system clock and the runtime.
ExUnit formatter that records every test outcome to the history file.
Encodes Temper.Records as history lines and decodes them back.
Merges history lines from several sources into one deduplicated
stream — the aggregation step behind mix temper.merge.
Selective retention for history files — the pure core behind
mix temper.clean --older-than and --keep-shas.
Boundary module that reads history files back into records.
The {partition} placeholder in configured history paths.
Boundary module that appends history lines to a .jsonl file.
The runs a push destination has accepted, kept next to the history so
CI caches them with it: one file per destination, pushed-runs-<id>,
one run id per line. <id> is a short hash of the destination (the
adapter and its Temper.Push.Adapter.destination_key/2), so pointing
the task somewhere else starts from nothing instead of skipping runs
the new destination never saw.
Where mix temper.push sends history: a behaviour, so any system can
receive it.
Pushes history over the open push protocol (see the Push Protocol guide): one POST per batch, gzip JSON Lines, a bearer token, and a JSON answer naming the runs the server now holds.
Resolves where mix temper.push sends history, from
config :temper, :push and the task's flags.
The transport under Temper.Push.Adapters.HTTP: one POST of a body.
Temper.Push.HTTPClient over OTP's :httpc, so Temper needs no HTTP
dependency.
Builds what mix temper.push sends from history lines: batches for a
Temper.Push.Adapter.
One recorded test outcome — the unit Temper's history is made of.
Renders analysis results for humans or machines.
The run context shared by every test outcome recorded during one ExUnit suite run.
Mix Tasks
Deletes Temper's recorded history files, or prunes lines from them.
Preflight check for a working Temper setup.
Merges recorded history files into a single deduplicated file.
Pushes recorded history to a system that collects it across CI runs, such as Sinter.
Reports flaky tests: tests with divergent outcomes on the same git SHA.