Contributing

Thank you for your interest in contributing to clitic!

Development Setup

# Clone the repository
git clone https://github.com/christophevg/clitic.git
cd clitic

# Create and activate virtual environment
make setup
pyenv activate clitic

# Install dependencies
make install

Development Commands

Command

Description

make test

Run tests with coverage

make showcase

Run feature showcase

make typecheck

Run mypy type checking

make lint

Run ruff linting

make format

Format code with ruff

make check

Run all checks

Code Style

  • Two-space indentation

  • 100 character max line length

  • Full type hints (mypy strict mode)

  • Follow PEP 8 conventions

Testing

Tests are located in the tests/ directory. Run tests with:

make test

Running Specific Tests

# Run specific test file
make test-file FILE=tests/test_app.py

# Run specific test function
make test-one TEST=tests/test_app.py::TestApp::test_app_can_be_instantiated

Pre-Commit Checklist

Before committing, ensure:

  1. All tests pass: make test

  2. Showcase runs correctly: make showcase

  3. Type checking passes: make typecheck

  4. Linting passes: make lint

Submitting Changes

  1. Create a feature branch

  2. Make your changes

  3. Run all checks

  4. Submit a pull request

Documentation

Update documentation when adding new features:

  1. Update showcase (src/clitic/__main__.py)

  2. Update API reference (docs/api/)

  3. Update README.md if needed

  4. Update screenshot if showcase changed:

    make screenshot