Skip to content

Latest commit

 

History

History
93 lines (68 loc) · 2.99 KB

File metadata and controls

93 lines (68 loc) · 2.99 KB

Contributing to RepoTrace

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.


🚀 Quick Setup

1. Prerequisites

  • Node.js: v18.0.0 or higher
  • npm: v9.0.0 or higher
  • Git

2. Clone & Install

# Fork the repository on GitHub, then clone your fork:
git clone https://github.com/<your-username>/repotrace.git
cd repotrace

# Install dependencies
npm install

3. Start the Dev Server

npm run dev

This runs both the Express backend API (:3001) and the Vite React frontend (:5173) concurrently.


🛠️ Development Workflow

  1. Create a Feature Branch:

    git checkout -b feat/my-new-feature
    # or for bugfixes:
    git checkout -b fix/issue-description
  2. Make Your Changes:

  3. 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
  4. Commit Your Changes: We follow Conventional Commits:

    • feat: add Python AST parser adapter
    • fix: resolve issue with relative import paths
    • docs: improve contributing guidelines
    • refactor: optimize layout recalculation memoization
  5. Push and Open a Pull Request:

    git push origin feat/my-new-feature

    Open a PR against the main branch. Fill out the PR template with a brief description of your changes and any test results.


💡 High-Impact Ideas for Contributors

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 in server/ 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).

📜 Code of Conduct

Please note that this project is governed by our Code of Conduct. By participating, you are expected to uphold this code.