Thank you for your interest in contributing to Linti!
Please open a GitHub Issue to report bugs or propose new features. Issue templates are provided for:
- π Bug Report β for reporting problems with linti
- β¨ Feature Request β for suggesting new features or improvements
- π Rule Proposal β for proposing new lint rules
Simply pick the matching template β it will guide you through the information we need (e.g. for bugs: description, expected/current behavior, steps to reproduce, and your environment).
Pull requests are welcome! For small fixes (typos, minor bugs, documentation) feel free to open a PR directly.
For larger changes β new features, architectural changes, or significant refactors β please open an issue first to discuss the approach before writing code. This avoids wasted effort and ensures the change aligns with the project's direction. You are also welcome to indicate in the issue that you intend to implement it yourself.
- Clone the repository and change into the project folder.
- Create a virtual environment:
python -m venv .venv && source .venv/bin/activate - Install the package with dev dependencies:
pip install -e ".[dev]" - Install the pre-commit hooks
pre-commit install - Run the tests:
pytest
Optional: Try it out
- Run the CLI with the example script:
linti example/example.tiYou will see ifexample.tihas got linting issues. - Feel free to solve the linting issues in
example.tiand runlinti example.tiagain to check your fixes.
- Use
rufffor linting:ruff check src/ - After adding or modifying a rule, regenerate
ALL_RULES.md:python scripts/generate_all_rules.py - Do not edit
ALL_RULES.mddirectly.
By contributing, you agree that your contributions will be licensed under the Apache License 2.0.