First off, thank you for considering contributing to PyStackQuery! It's people like you that make PyStackQuery such a great tool.
By participating in this project, you are expected to uphold our high standards of professional conduct and technical excellence.
- Check the existing issues to see if the bug has already been reported.
- If you can't find an open issue that addresses the problem, open a new one.
- Include a reproducible example and details about your environment (OS, Python version).
- Open an issue to discuss the change before starting work.
- Explain why the feature would be useful to most users.
- Fork the repo and create your branch from
main. - Install dependencies using
uv sync --dev. - If you've added code that should be tested, add tests.
- Ensure the test suite passes (
uv run pytest). - Run linting and type checking (
uv run ruff check .anduv run mypy .). - Ensure your code adheres to the existing style and architecture (PEP 695 generics, PEP 8).
We use uv for dependency management.
# Clone the repo
git clone https://github.com/yourusername/pystackquery.git
cd pystackquery
# Install dependencies
uv sync --dev
# Run tests
uv run pytest- Python 3.12+: Use modern syntax (Built-in generics,
|unions). - Linting: We use Ruff. Always run
ruff check --fix .before committing. - Typing: Static typing is mandatory. Ensure
mypy .returns zero errors. - Documentation: Update documentation in
docs/if you change any public APIs.