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 (replaybinary)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_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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file retracesoftware_dap-0.2.15-py3-none-manylinux_2_17_x86_64.whl.
File metadata
- Download URL: retracesoftware_dap-0.2.15-py3-none-manylinux_2_17_x86_64.whl
- Upload date:
- Size: 2.7 MB
- Tags: Python 3, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fce221717d12ee8fd034c5d9f068012b120c1b95ba53e99669f2896c30934b29
|
|
| MD5 |
0aba9626186de5575f64b4172dd8fdba
|
|
| BLAKE2b-256 |
1d0e5386c514184b5f5e8ef54eeb11e1e008862799f27e4cf1d9c8c51c52b168
|
Provenance
The following attestation bundles were made for retracesoftware_dap-0.2.15-py3-none-manylinux_2_17_x86_64.whl:
Publisher:
release.yml on retracesoftware/retrace-dap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
retracesoftware_dap-0.2.15-py3-none-manylinux_2_17_x86_64.whl -
Subject digest:
fce221717d12ee8fd034c5d9f068012b120c1b95ba53e99669f2896c30934b29 - Sigstore transparency entry: 2116149713
- Sigstore integration time:
-
Permalink:
retracesoftware/retrace-dap@a10a641c7fc477ae118d9c45802e16200f15adfe -
Branch / Tag:
refs/heads/main - Owner: https://github.com/retracesoftware
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a10a641c7fc477ae118d9c45802e16200f15adfe -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file retracesoftware_dap-0.2.15-py3-none-manylinux_2_17_aarch64.whl.
File metadata
- Download URL: retracesoftware_dap-0.2.15-py3-none-manylinux_2_17_aarch64.whl
- Upload date:
- Size: 2.5 MB
- Tags: Python 3, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2d77b451e181766b0bda99d9cfbd61bd5f9367ae992a3b964a31fe781fac9c6f
|
|
| MD5 |
3105351b13d4a330cfec1ad4630e7c18
|
|
| BLAKE2b-256 |
79ade058437f6b4f4336513ca650388c5b7fd737bbc4afdf1be8f2f536398ead
|
Provenance
The following attestation bundles were made for retracesoftware_dap-0.2.15-py3-none-manylinux_2_17_aarch64.whl:
Publisher:
release.yml on retracesoftware/retrace-dap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
retracesoftware_dap-0.2.15-py3-none-manylinux_2_17_aarch64.whl -
Subject digest:
2d77b451e181766b0bda99d9cfbd61bd5f9367ae992a3b964a31fe781fac9c6f - Sigstore transparency entry: 2116149893
- Sigstore integration time:
-
Permalink:
retracesoftware/retrace-dap@a10a641c7fc477ae118d9c45802e16200f15adfe -
Branch / Tag:
refs/heads/main - Owner: https://github.com/retracesoftware
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a10a641c7fc477ae118d9c45802e16200f15adfe -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file retracesoftware_dap-0.2.15-py3-none-macosx_12_0_x86_64.whl.
File metadata
- Download URL: retracesoftware_dap-0.2.15-py3-none-macosx_12_0_x86_64.whl
- Upload date:
- Size: 2.8 MB
- Tags: Python 3, macOS 12.0+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7b4a65faeb6d1be455260d24ced00bb0c9142e08b9215c80264f6fd5f347548d
|
|
| MD5 |
f3d5ba2971486421ab6bd70a22720c39
|
|
| BLAKE2b-256 |
0b04f99b517b3b28f74823b689e73fe230ef960e2cf681a45580f0fa0b0a875b
|
Provenance
The following attestation bundles were made for retracesoftware_dap-0.2.15-py3-none-macosx_12_0_x86_64.whl:
Publisher:
release.yml on retracesoftware/retrace-dap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
retracesoftware_dap-0.2.15-py3-none-macosx_12_0_x86_64.whl -
Subject digest:
7b4a65faeb6d1be455260d24ced00bb0c9142e08b9215c80264f6fd5f347548d - Sigstore transparency entry: 2116149843
- Sigstore integration time:
-
Permalink:
retracesoftware/retrace-dap@a10a641c7fc477ae118d9c45802e16200f15adfe -
Branch / Tag:
refs/heads/main - Owner: https://github.com/retracesoftware
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a10a641c7fc477ae118d9c45802e16200f15adfe -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file retracesoftware_dap-0.2.15-py3-none-macosx_12_0_arm64.whl.
File metadata
- Download URL: retracesoftware_dap-0.2.15-py3-none-macosx_12_0_arm64.whl
- Upload date:
- Size: 2.6 MB
- Tags: Python 3, macOS 12.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1a314dc71a79f28daefa3c43b8e91c177caf8feecec135f3c7ad71cfb9f058dd
|
|
| MD5 |
375120479dd8f952154a5a238de817e8
|
|
| BLAKE2b-256 |
ef9636298374c6e7eec1a12f1fe40088e39ab6dd43479d9048b958bd26180c42
|
Provenance
The following attestation bundles were made for retracesoftware_dap-0.2.15-py3-none-macosx_12_0_arm64.whl:
Publisher:
release.yml on retracesoftware/retrace-dap
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
retracesoftware_dap-0.2.15-py3-none-macosx_12_0_arm64.whl -
Subject digest:
1a314dc71a79f28daefa3c43b8e91c177caf8feecec135f3c7ad71cfb9f058dd - Sigstore transparency entry: 2116149784
- Sigstore integration time:
-
Permalink:
retracesoftware/retrace-dap@a10a641c7fc477ae118d9c45802e16200f15adfe -
Branch / Tag:
refs/heads/main - Owner: https://github.com/retracesoftware
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a10a641c7fc477ae118d9c45802e16200f15adfe -
Trigger Event:
workflow_dispatch
-
Statement type: