Welcome! Thank you for considering contributing to Schemathesis. Your feedback and contributions are invaluable to us!
Contents
For code contributions: Make sure you have the following installed:
- Python 3.8 or higher
pre-commit
tox
python -m pip install pre-commit tox
For documentation contributions: No specific prerequisites are required.
If you'd like to suggest a feature or provide feedback, feel free to submit an issue. When submitting your issue, it helps to provide:
- Title: Write a simple and descriptive title to identify your suggestion.
- Details: Provide as many details as possible. Explain your context and how you envision the feature working.
- Usefulness: Explain why this feature or improvement would be beneficial.
- Scope: Keep the scope of the feature narrow to make it easier to implement. For example, focus on a specific use-case rather than a broad feature set.
If you encounter a bug, please report it in the issue tracker. When filing a bug report, please include:
- Title: Write a simple and descriptive title to identify the problem.
- Reproduction Steps: Describe the exact steps to reproduce the problem in as much detail as possible.
- Observed Behavior: Describe the behavior you observed and what makes it a problem.
- Expected Behavior: Explain which behavior you expected to see instead and why.
- Versions: Include Python and Schemathesis versions. Also, confirm if the issue persists in the latest version of Schemathesis.
- Additional Context: Logs, error messages, or screenshots are often very helpful.
What happens next?: After you submit an issue, we aim to review and respond as soon as possible. If you don't receive a response within a few days, feel free to add a new comment to the thread to bring it to our attention again.
We welcome contributions to the codebase! If you'd like to submit a pull request (PR), please follow these steps:
- Fork the Repository: Fork the Schemathesis repository on GitHub.
- Install Development Tools: Install the development dependencies using the following command:
python -m pip install -e ".[dev]"
This will install all the necessary packages for development, including those for documentation and tests.
- Set Up Pre-commit Hooks: Enable pre-commit.
pre-commit install
- Branching: Create a new branch and switch to it. Target your pull request to the
master
branch of the main repository. - Coding Standards: Follow PEP-8 for naming conventions and use ruff for code formatting.
- Write Tests: Preferably, write integration tests that run the whole Schemathesis CLI.
- Run Tests:
tox -e py311
- Update Changelog: Add a corresponding entry to
changelog.rst
located in thedocs
directory. - Commit Your Changes: Use the Conventional Commits format. For example, features could be
feat: add new validation feature
and bug fixes could befix: resolve issue with validation
.
What happens next?: After submitting, your pull request will be reviewed. If you don't hear back within a few days, feel free to add a comment to the pull request to draw our attention.
We recommend installing Schemathesis with the "docs" extra for all the dependencies needed for documentation:
python -m pip install -e ".[docs]"
To preview your changes:
cd docs/
make html
python -m http.server -d _build/html/
Then open http://0.0.0.0:8000/
in your browser.
For more informal discussions or questions, join us on Discord.
At present, the core developers are:
- Dmitry Dygalo (@Stranger6667)
We prefer to keep all communications in English.
Thanks!