Skip to main content

Retrace DAP debug adapter and replay tooling

Project description

retrace-dap

Go debug adapter for Retrace recordings. This project owns the DAP server that launches and controls Python replay subprocesses.

The Python runtime (retracesoftware) performs deterministic replay; retrace-dap translates editor/debugger requests into the Retrace control protocol and drives replay from the outside.

What this repo contains

  • cmd/replay/ — CLI entrypoint (replay binary)
  • replay/ — DAP proxy, control protocol client, recording index/extract, workspace generation, and replay launch plumbing

Build

go build -o replay ./cmd/replay

Python Wheel

This repository publishes the PyPI package retracesoftware-dap. The package contains a tiny Python wrapper plus a platform-specific Go replay binary built from cmd/replay.

python -m pip install --upgrade pip build setuptools wheel setuptools_scm
python -m build --wheel --outdir dist
python -m pip install dist/retracesoftware_dap-*.whl
python -c "from retrace_dap import binary_path; print(binary_path())"
retrace-dap --help

The installed Python package exposes:

  • retrace_dap.binary_path() — returns the packaged replay/DAP binary path.
  • retrace-dap — console script that execs the packaged binary.
  • retrace-ai-driver — AI orchestration driver that talks to the replay DAP adapter and a hosted AI service.

RETRACE_REPLAY_BIN remains the local-development escape hatch. If it points at an executable replay binary, binary_path() returns that path instead of the packaged wheel binary.

Release To PyPI

PyPI Trusted Publishing must be configured for:

PyPI project: retracesoftware-dap
GitHub owner: retracesoftware
GitHub repository: retrace-dap
Workflow name: Build & Release
Workflow file: release.yml
Environment: leave blank unless the release workflow is changed to use one

The release workflow builds platform wheels for Linux and macOS, smoke-tests the installed wheel, uploads wheels to a GitHub Release, then publishes the same wheels to PyPI.

Manual release from main:

gh workflow run release.yml \
  -R retracesoftware/retrace-dap \
  --ref main \
  -f version=0.2.14

The workflow creates and pushes tag v0.2.14; tags can also trigger releases directly.

Common commands

# Process tree for a recording (VS Code sidebar)
replay --recording trace.retrace --index

# Extract pidfiles
replay --recording trace.retrace --extract

# Generate VS Code workspace
replay --recording trace.retrace --workspace

# DAP adapter (stdin/stdout)
replay --recording trace.retrace --dap [--pid N]

Test

go test ./...

Dev container

Open this repository in a Dev Container (VS Code / Cursor: Dev Containers: Reopen in Container). The container installs Go 1.25, builds bin/replay, and installs the retracesoftware Python package so integration tests can launch replay sessions.

go test ./...
go build -o bin/replay ./cmd/replay

Relationship to retracesoftware

This repo was split from retracesoftware/retracesoftware/go/. Python replay behavior lives in the main Retrace package (control_runtime.py, install/, proxy/, stream/). Changes that affect stop semantics, cursor navigation, or control-protocol payloads usually need coordinated updates in both repos.

The main retracesoftware package should depend on this package so:

python -m pip install retracesoftware

also installs retracesoftware-dap, and the retracesoftware.replay wrapper can discover the packaged replay/DAP binary through retrace_dap.binary_path().

Environment

Python replay discovery from tooling still uses RETRACE_REPLAY_BIN pointing at the built replay binary from this project.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

retracesoftware_dap-0.2.17-py3-none-manylinux_2_17_x86_64.whl (2.8 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

retracesoftware_dap-0.2.17-py3-none-manylinux_2_17_aarch64.whl (2.6 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

retracesoftware_dap-0.2.17-py3-none-macosx_12_0_x86_64.whl (2.8 MB view details)

Uploaded Python 3macOS 12.0+ x86-64

retracesoftware_dap-0.2.17-py3-none-macosx_12_0_arm64.whl (2.7 MB view details)

Uploaded Python 3macOS 12.0+ ARM64

File details

Details for the file retracesoftware_dap-0.2.17-py3-none-manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for retracesoftware_dap-0.2.17-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 96bd78bf77eb243f538ddc9a05c94dcc01fad6752534a1b61b96bbf0531a0b0e
MD5 179c065b666403efba0b44458ea80fe8
BLAKE2b-256 c110083eeb8f2ae0d7ece59b991a26b3b629f9600d4d19aef7e391b07147a28c

See more details on using hashes here.

Provenance

The following attestation bundles were made for retracesoftware_dap-0.2.17-py3-none-manylinux_2_17_x86_64.whl:

Publisher: release.yml on retracesoftware/retrace-dap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file retracesoftware_dap-0.2.17-py3-none-manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for retracesoftware_dap-0.2.17-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 5af126dd0e18a01622af906ac20da8d97afaebbd9b18302fa6ea08faeeb1892c
MD5 d88d6b99b0f8231c69aa962c2403ad6c
BLAKE2b-256 4f016fd4c3c299cb85497a4a8516afddff41b57c66fed62731f400c01c1ed97a

See more details on using hashes here.

Provenance

The following attestation bundles were made for retracesoftware_dap-0.2.17-py3-none-manylinux_2_17_aarch64.whl:

Publisher: release.yml on retracesoftware/retrace-dap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file retracesoftware_dap-0.2.17-py3-none-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for retracesoftware_dap-0.2.17-py3-none-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 4f91f5f0d01d48d878a9a1c9a619323b860dfde1e482a2c09822517bc08e21bb
MD5 79aa0939ea6c1953ba196a6b564b1bc6
BLAKE2b-256 a178533fce3c77ec2c1db1e589e2aedb9b08ee2dde61fca96ce200f75e571ff5

See more details on using hashes here.

Provenance

The following attestation bundles were made for retracesoftware_dap-0.2.17-py3-none-macosx_12_0_x86_64.whl:

Publisher: release.yml on retracesoftware/retrace-dap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file retracesoftware_dap-0.2.17-py3-none-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for retracesoftware_dap-0.2.17-py3-none-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 e14517bd46dbbe9826608b9c18f250fd60b7db4ab666e00631026b08e5eb48c7
MD5 619136fb46693d074ee771c7ede2f88b
BLAKE2b-256 4b144a6a3b5cb8f5363bcb24c414f7553569a7b7e6bacb1a627801b6f7303261

See more details on using hashes here.

Provenance

The following attestation bundles were made for retracesoftware_dap-0.2.17-py3-none-macosx_12_0_arm64.whl:

Publisher: release.yml on retracesoftware/retrace-dap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page