[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/codexistente/ocpi-python/main/docs/contributing.md [Back]  [Original]

# Contributing to OCPI Python

We welcome contributions! This document provides guidelines for contributing to the project.

## Requirements

### Python Version Manager

We recommend using `uv` for managing Python versions and dependencies. Install `uv`:

```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```

Or using pip:
```bash
pip install uv
```

### Python Version

Python >= 3.11

With `uv`, you can create a project with the correct Python version:

```bash
uv python install 3.11
```

## Installation

### Clone the project

```bash
git clone https://github.com/elumobility/ocpi-python.git
```

### Go to the project directory

```bash
cd ocpi-python
```

### Install dependencies

```bash
# Install all dependencies including dev tools
uv sync --all-extras

# Or install specific extras
uv sync --extra dev --extra docs
```

This will:
- Create a virtual environment
- Install all dependencies from `pyproject.toml`
- Install development and documentation dependencies

### Activate virtual environment

With `uv`, you can run commands in the virtual environment:

```bash
uv run 
```

Or activate the shell:
```bash
source .venv/bin/activate  # On Unix/macOS
# or
.venv\Scripts\activate  # On Windows
```

### Install pre-commit

```bash
uv run pre-commit install
```

## Running Tests

To run tests, use:

```bash
uv run pytest
```

Or with coverage:

```bash
uv run pytest --cov=ocpi --cov-report=term-missing
```

## Building Documentation

To build documentation locally:

```bash
# Install docs dependencies first
uv sync --extra docs

# Build and serve documentation
uv run mkdocs serve

# Build static site
uv run mkdocs build
```

## Development Workflow

1. Create a feature branch
2. Make your changes
3. Run tests: `uv run pytest`
4. Run linting: `uv run ruff check .`
5. Run type checking: `uv run mypy ocpi`
6. Commit your changes (pre-commit hooks will run automatically)
7. Push and create a Pull Request

Web Proxy Viewer  |  New URL  |  Original Page