dbos-inc / ttdbg-extension

DBOS Time Travel Debugger extension for VS Code
https://docs.dbos.dev
MIT License
5 stars 1 forks source link

DBOS Time Travel Debugger

This extension enables developers to debug their DBOS applications deployed to the DBOS Cloud using VS Code. DBOS Cloud allows time-travel debugging of any DBOS application execution that has occurred in the past three days.

Time Travel Debug CodeLens

The DBOS Time Travel Debugger extension attaches a "⏳ Time Travel Debug" CodeLens to every DBOS workflow, transaction and communicator method in your DBOS application.

DBOS Time Travel CodeLens Screenshot

When you click on the Time Travel Debug CodeLens, you are provided a list of recent executions of that method to debug.

DBOS Time Travel Workflow ID picker

After selecting a recent execution of your function, the DBOS Time Travel Debugger will launch the DBOS debug runtime and VS Code typescript debugger. This allows you to debug your DBOS application against the database as it existed at the time the selected execution originally occurred.

For more information, please see the official DBOS documentation.

Installation

The latest released version of the DBOS Time Travel Debugger for VS Code can be installed via the VS Code Marketplace.

DBOS depends on Node.js version 20 or later. The DBOS Time Travel Debugger for VS Code has no additional dependencies beyond what DBOS depends on.

Preview Releases

The DBOS Time Travel Debugger builds every commit in our GitHub repo. You can install a preview build of the Time Travel Debugger extension navigating to a recent GitHub action run and downloading the associated "Extension" build artifact. The "Extension" build artifact is a zip file containing the Time Travel Debugger's VSIX file, which can be installed manually. For more information on installing VSIX extensions in Visual Studio Code, please see the official Visual Studio Code docs.

Versioning Strategy

The DBOS Time Travel Debugger extension uses the following VSCode recommendation for handling version numbers:

We recommend that extensions use major.EVEN_NUMBER.patch for release versions and major.ODD_NUMBER.patch for pre-release versions. For example: 0.2.* for release and 0.3.* for pre-release.

The main branch of this repo tracks unreleased work. Extension releases published to the VS Code marketplace from the main branch will always have an odd minor version number and will be marked as pre-release.

Release versions of the extension are published out of release branches. Extension releases published to the VS Code marketplace from release branches will always have an even minor version number.

Note, this project uses NerdBank Git Versioning to manage release version numbers. As such, patch versions of public releases will typically not be sequential.