Thank you for your interest in contributing to RepoTrace! 🎉
Whether you're fixing a bug, adding support for a new programming language, enhancing graph visual aesthetics, or improving documentation, all contributions are welcome and deeply appreciated.
- Node.js:
v18.0.0or higher - npm:
v9.0.0or higher - Git
# Fork the repository on GitHub, then clone your fork:
git clone https://github.com/<your-username>/repotrace.git
cd repotrace
# Install dependencies
npm installnpm run devThis runs both the Express backend API (:3001) and the Vite React frontend (:5173) concurrently.
-
Create a Feature Branch:
git checkout -b feat/my-new-feature # or for bugfixes: git checkout -b fix/issue-description -
Make Your Changes:
- Backend logic belongs in
server/(analyzer.ts,index.ts). - Frontend UI components belong in
src/components/. - Graph algorithms belong in
src/utils/. - Shared domain types belong in
src/types/.
- Backend logic belongs in
-
Verify Locally Before Submitting: Run the local verification suite:
# 1. Type check npx tsc --noEmit # 2. Test AST analyzer on example repo npm run test:analyzer # 3. Test Kahn's Topological Sort & Cycle Breaking npm run test:topo # 4. Production bundle build npm run build
-
Commit Your Changes: We follow Conventional Commits:
feat: add Python AST parser adapterfix: resolve issue with relative import pathsdocs: improve contributing guidelinesrefactor: optimize layout recalculation memoization
-
Push and Open a Pull Request:
git push origin feat/my-new-feature
Open a PR against the
mainbranch. Fill out the PR template with a brief description of your changes and any test results.
Looking for a place to start? Here are areas where you can make an immediate impact:
- 🐍 Language Adapters: Add a Python (
ast/ Tree-sitter) or Go (go/parser) adapter inserver/to parse non-TypeScript codebases into the standardized{ nodes, edges }format. - 🔗 Symbol-Level Call Graphs: Extend the AST analyzer to track function-level invocations (
CALLS) and JSX element renderings (RENDERS). - 🌊 Multi-Hop BFS Blast Radius: Implement multi-hop blast radius calculation to visualize the cascading ripple effect if a specific module is modified.
- 🎨 Visual Themes & Export Formats: Add custom canvas themes (e.g. light mode, high-contrast) or export options (SVG, PNG, JSON).
Please note that this project is governed by our Code of Conduct. By participating, you are expected to uphold this code.