Contributing to Istos¶
Thank you for considering contributing to Istos! This document provides guidelines and instructions for contributing to the project.
Code of Conduct¶
Please be respectful and considerate of others when contributing to this project. We aim to foster an inclusive and welcoming community.
How to Contribute¶
There are many ways to contribute to Istos:
-
Report bugs: If you find a bug, please create an issue on GitHub with a detailed description of the problem, including steps to reproduce it.
-
Suggest features: If you have an idea for a new feature or improvement, please create an issue on GitHub to discuss it.
-
Contribute code: If you want to contribute code, please follow the steps below.
Development Setup¶
-
Fork the repository on GitHub.
-
Clone your fork locally:
-
Create a virtual environment and install development dependencies:
-
Create a branch for your changes:
Development Guidelines¶
Code Style¶
We follow the PEP 8 style guide for Python code. We use the following tools to enforce code style:
- mypy: For static type checking
- pylint: For linting
You can run these tools with:
Documentation¶
- All functions, classes, and modules should have docstrings following the Google docstring format.
- Update the documentation when adding or modifying features.
- Run the documentation locally to check your changes:
Testing¶
- Write tests for all new features and bug fixes.
- Make sure all tests pass before submitting a pull request:
Pull Request Process¶
- Update the documentation with details of changes to the interface, if applicable.
- Update the tests to cover your changes.
- Make sure all tests pass.
- Submit a pull request to the
mainbranch. - The pull request will be reviewed by maintainers, who may request changes or improvements.
- Once approved, your pull request will be merged.
Adding New Decorators or Core Features¶
If you want to add a new decorator or core feature:
- Add the implementation to the appropriate module under
src/istos/core/. - Write comprehensive docstrings with parameters, return values, and examples.
- Add tests for the new functionality under
tests/. - Update the documentation to include the new feature.
- Register the decorator in
app.pyand expose it via__init__.py.
License¶
By contributing to Istos, you agree that your contributions will be licensed under the project's Apache License 2.0.