docs/contributing/development.md
Development Guide
Setting Up Development Environment
-
Clone the repository:
-
Install UV (if not already installed):
-
Install dependencies:
-
Install pre-commit hooks:
Project Structure
fmp_data/
├── fmp_data/ # Main package directory
│ ├── __init__.py # Package initialization
│ ├── client.py # Main API client
│ └── exceptions.py # Custom exceptions
├── tests/ # Test directory
├── docs/ # Documentation
├── pyproject.toml # Project configuration
└── .pre-commit-config.yaml # Pre-commit hooks configuration
Version Management
We use hatch-vcs to automatically manage versions based on git tags. The version number follows Semantic Versioning:
- MAJOR.MINOR.PATCH (e.g., 1.0.0)
- Pre-releases: MAJOR.MINOR.PATCH-alpha.N, -beta.N, -rc.N
Version numbers are automatically generated from git tags and commits.
Code Style
We use several tools to ensure code quality:
-
Ruff format: Code formatting
-
Ruff: Linting
-
mypy: Type checking
Pre-commit hooks will run these checks automatically before each commit.
Building Documentation
-
Install documentation dependencies:
-
Serve documentation locally:
-
Build documentation: