Contributing

We welcome contributions! Please follow these guidelines.

Development Setup

$ git clone https://github.com/vimsheet/vimsheet.git
$ cd vimsheet
$ pip install -e ".[dev]"
$ pre-commit install

Code Style

We use Ruff for linting and formatting:

$ ruff check vimsheet tests
$ ruff format vimsheet tests

Type checking with MyPy:

$ mypy vimsheet

Running Tests

$ pytest tests/unit tests/integration   # Unit + integration tests
$ pytest tests/e2e                       # End-to-end tests
$ pytest                                 # All tests

Pull Request Process

  1. Fork the repository.

  2. Create a feature branch.

  3. Make your changes with tests.

  4. Run the full test suite.

  5. Ensure lint and type checks pass.

  6. Submit a pull request with a clear description.

Building Documentation

$ cd docs
$ make html
$ make linkcheck
$ make doctest

Pre-commit Hooks

We use pre-commit hooks to enforce code quality. Install them with:

$ pre-commit install

The hooks will run Ruff, MyPy, and other checks before each commit.