Thank you for your interest in contributing to Keisei.
# Clone the repository
git clone git@github.com:tachyon-beep/keisei.git
cd keisei
# Install Python dependencies (editable, with dev tools)
uv pip install -e ".[dev]"
# Build the Rust engine
cd shogi-engine && cargo build --release && cd ..
# Install pre-commit hooks
pre-commit install# Python tests
uv run pytest
# Rust tests
cd shogi-engine && cargo test
# Linting
uv run ruff check .
# Type checking
uv run mypy keisei/- Create a feature branch from
main. - Make your changes. Ensure all tests pass and linting is clean.
- Update the
[Unreleased]section ofCHANGELOG.mdwith a brief description of your changes. - Open a pull request against
main.
This project uses Conventional Commits style:
feat:new featuresfix:bug fixesrefactor:code changes that neither fix bugs nor add featurestest:adding or updating testsdocs:documentation changeschore:maintenance tasks
Scoped commits (e.g., feat(shogi-gym):) are used when the change is specific
to a single crate or module.
- Python: Formatted and linted by ruff. Type-checked with mypy in strict mode. Line length limit is 100 characters.
- Rust: Standard
rustfmtformatting, no Clippy warnings allowed. - All tool configuration lives in
pyproject.toml(Python) orCargo.toml(Rust). No standalone config files.
Open an issue on GitHub Issues with:
- A clear description of the problem
- Steps to reproduce
- Expected vs. actual behavior
- Python/Rust version and OS