Contributing

We welcome contributions to fmus-vox! This guide will help you get started.

Getting Started

  1. Fork the repository

  2. Clone your fork

git clone https://github.com/your-username/fmus-vox.git
cd fmus-vox
  1. Install in development mode

pip install -e ".[dev]"

Development Setup

Running Tests

pytest

With coverage:

pytest --cov=fmus_vox --cov-report=html

Code Formatting

fmus-vox uses Black and isort for code formatting:

# Format code
black fmus_vox tests

# Sort imports
isort fmus_vox tests

Type Checking

mypy fmus_vox

Submitting Changes

  1. Create a new branch

git checkout -b feature/your-feature-name
  1. Make your changes and write tests

  2. Run tests and linting

pytest
black fmus_vox tests
isort fmus_vox tests
mypy fmus_vox
  1. Commit your changes

git add .
git commit -m "Description of your changes"
  1. Push to your fork and create a pull request

Code Style

  • Follow PEP 8 style guidelines

  • Write descriptive docstrings for all public APIs

Keep functions focused and modular

  • Write tests for new features

Documentation

To build the documentation locally:

cd docs
make html

The built documentation will be in docs/_build/html/.

Reporting Issues

Please report bugs and request features on the GitHub issue tracker.

When reporting an issue, please include:

  • Your Python version

  • The fmus-vox version

  • Minimal code to reproduce the issue

  • Full error traceback (if applicable)

License

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