Contributing

Guidelines for contributing to Dependi.


Get Involved

We welcome contributions! See the full Contributing Guide for detailed information on:

  • Setting up your development environment
  • Code style and standards
  • Adding support for new languages
  • Submitting pull requests

Types of Contributions

We welcome:

  • Bug reports and fixes
  • New language/package manager support
  • Performance improvements
  • Documentation improvements
  • Feature requests and implementations

Development Setup

Prerequisites

  • Rust 1.75+ (tested with 1.91.1)
  • Zed Editor (latest stable)
  • wasm32-wasip1 target: rustup target add wasm32-wasip1

Quick Start

# Clone
git clone https://github.com/YOUR_USERNAME/zed-dependi.git
cd zed-dependi

# Build LSP
cd dependi-lsp
cargo build --release

# Build extension
cd ../dependi-zed
cargo build --release --target wasm32-wasip1

# Install as dev extension in Zed
# Run: zed: install dev extension
# Select: dependi-zed directory

Running Tests

cd dependi-lsp

# All tests
cargo test

# Specific modules
cargo test parsers::cargo
cargo test registries::npm

# With output
cargo test -- --nocapture

Code Quality

# Formatting
cargo fmt --all

# Linting (warnings as errors)
cargo clippy --all-targets -- -D warnings

Commit Convention

Use conventional commit format:

  • feat: New feature
  • fix: Bug fix
  • docs: Documentation
  • refactor: Code refactoring
  • test: Tests
  • chore: Maintenance

Examples:

feat: add support for Ruby gems
fix: handle scoped npm packages correctly
docs: improve installation instructions

License

By contributing, you agree that your contributions will be licensed under the MIT License.