All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.4.0 - 2026-10-13

Added

  • Run traces independently

    Concurrent Tap.call/2 traces no longer stop each other, and a trace started in the shell survives errors in the shell. A trace prints why it stopped.

    Tap.call/2 learned the pid: option, which traces only the given processes, and the scope: option, which also traces local calls.

    • BREAKING: Tap.call/2 renamed the max: option to limit: and

raises UndefinedFunctionError for an undefined function. Tap.calls/2 and Tap.format/1 are removed.

Changed

  • Require OTP 27 and Elixir 1.20
    • BREAKING: tap requires OTP 27 and Elixir 1.20 or later.

0.3.0 - 2026-10-10

Changed

  • Relicense under MIT
    • BREAKING: tap is licensed under MIT instead of Apache 2.0.

0.2.2 - 2026-10-08

Fixed

  • Zero-pad timestamps and drop blank lines

    Trace timestamps always show two digits for hours, minutes and seconds, and events print on consecutive lines. The helper that formats a single line is no longer public.

0.2.1 - 2026-10-08

Fixed

  • Escape tildes in trace output

    Recon's formatter uses the trace output as a format string. Doubling each ~ prints traced arguments and return values containing ~ as literal text.

0.2.0 - 2026-10-08

Changed

  • Upgrade to Elixir 1.20 and OTP 29
    • BREAKING: Requires Elixir 1.17 or later.

0.1.5 (2017-09-27)

Full Changelog

Merged pull requests:

  • Avoid compiler warnings #5 (falti)
  • Use hex dependency and run with elixir 1.3.4 #3 (falti)

v0.1.4 (2016-06-14)

Full Changelog

v0.1.3 (2016-06-14)

Full Changelog

v0.1.2 (2016-06-14)

Full Changelog

v0.1.1 (2016-06-14)

Merged pull requests: