Contributions of all kinds are welcome: bug reports, documentation improvements, feature requests, and code changes.
Please read the guidelines below to make the contribution process smooth for everyone.
If you find a bug, please open an issue and include:
- A clear and descriptive title
- Steps to reproduce the issue
- Expected and actual behavior
- Your environment (OS, Python version, Constava version)
If possible, include a minimal example or traceback.
Feature requests and improvements are welcome.
When opening an issue, try to explain:
- The problem you are trying to solve
- Why the current behavior is insufficient
- Any alternative solutions you have considered
-
Fork the repository and clone your fork.
-
Create a virtual environment.
-
Install dependencies:
pip install -r requirements.txt pip install -e . -
Run the test suite to ensure everything works:
constava test
- Create a new branch for your changes.
- Keep commits focused and atomic.
- Write or update tests when changing behavior.
- Update documentation if your change affects public APIs or CLI usage.
- Follow standard Python conventions (PEP 8).
- Keep code readable and well-documented.
- Avoid unnecessary complexity; clarity beats cleverness.
All changes should pass the test suite before submission:
constava testPull requests that break tests will not be merged.
- Open a pull request against the default branch.
- Clearly describe what the PR does and why it is needed.
- Link related issues where applicable.
- Be prepared to revise your PR based on review feedback.
This project follows a Code of Conduct. By participating, you are expected to uphold it in all interactions.