Thank you for your interest in contributing to LaunchMap!
Contributions of all kinds, features, bug fixes, tests, docs, and feedback are welcome!
launchmap/
├── parser/ # Python-based static launch file parser
├── src/ # VS Code extension (TypeScript)
├── webview/ # Webview frontend (HTML/JS)# Clone the repo
git clone https://github.com/Kodo-Robotics/launchmap
cd launchmap
# Python setup
python3 -m venv .venv
source .venv/bin/activate
pip install -r parser/requirements.txt
# Node setup
npm installHere is how you can get the extension running and see the output:
- Compile the code
npm run compileThis converts the TypeScript code into JavaScript so VS Code can run it.
- Start the extension in a debug VS Code window
- Open the file
src/extension.ts. - Press F5 (or go to Run and Debug → Launch Extension).
This launches a new VS Code window with the extension loaded in "dev mode" so you can test your changes live.
- Open a sample launch file
- In the new debug VS Code window, navigate to:
parser/tests/real_cases/launch_files/ - Open any
.launch.pyfile (these are real world test cases).
- Run the LaunchMap visualizer
- Press
Cmd + Shift + P(orCtrl + Shift + Pon Windows/Linux). - Search for
LaunchMap: Open Launch Visualizerand run it.
You should now see the visualization output.
We use:
rufffor Python (ultra-fast linter + formatter)eslintfor TypeScript/JavaScript
# Test
npm run lint:py
# Fix
npm run lint:py:fix# Test
npm run lint:js
# Fix
npm run lint:js:fix# Parser Tests
npm run test:parser
# Webview Visual Tests
npm run test:webview
# Extension Integration Tests
npm run test:src- Visual snapshots are stored under
webview/tests/__screenshots__/ - Snapshots may differ between macOS, Windows, and Linux
- Snapshots are only validated on PRs in CI (Linux)
- If you are on macOS/Windows, avoid committing updated snapshots unless necessary
- Prefer small, focused PRs
- Follow lint rules strictly (ruff and eslint)
- Playwright tests are validated automatically on PRs
- Use
npx playwright test --update-snapshotsonly on Linux for visual diffs
- Join our Discord Server
- Ask on GitHub
Thanks again for contributing! 🚀