Skip to content

Latest commit

 

History

History
102 lines (74 loc) · 2.18 KB

File metadata and controls

102 lines (74 loc) · 2.18 KB

Contributing

Thanks for your interest in contributing to finwise-python!

Development Setup

Option 1: Using Nix (Recommended)

If you have Nix installed with flakes enabled:

git clone https://github.com/rameezk/finwise-python.git
cd finwise-python

# Enter development shell
nix develop

# Install package in editable mode
pip install -e .

Available dev shells:

  • nix develop - Default (Python 3.11)
  • nix develop .#python312 - Python 3.12
  • nix develop .#python313 - Python 3.13
  • nix develop .#docs - Documentation environment

Option 2: Using virtualenv

  1. Clone the repository:

    git clone https://github.com/rameezk/finwise-python.git
    cd finwise-python
  2. Create a virtual environment:

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
  3. Install development dependencies:

    pip install -e ".[dev]"

Running Tests

pytest

With coverage:

pytest --cov --cov-report=term-missing

Code Quality

This project uses ruff for linting and formatting, and mypy for type checking.

# Lint
ruff check .

# Format
ruff format .

# Type check
mypy src/

Submitting Changes

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/my-feature)
  3. Make your changes
  4. Ensure tests pass and code quality checks succeed
  5. Commit your changes using conventional commits
  6. Push to your fork and open a pull request

Commit Messages

This project uses semantic-release for automated versioning. Please use conventional commit messages:

  • feat: - New features (triggers minor version bump)
  • fix: - Bug fixes (triggers patch version bump)
  • docs: - Documentation changes
  • chore: - Maintenance tasks
  • test: - Test changes
  • refactor: - Code refactoring

Example:

feat: add support for bulk transactions
fix: handle pagination edge case
docs: update installation instructions

Questions?

Open an issue if you have questions or run into problems.