Contributing to AIMQ¶
We love your input! We want to make contributing to AIMQ as easy and transparent as possible, whether it's:
- Reporting a bug
- Discussing the current state of the code
- Submitting a fix
- Proposing new features
- Becoming a maintainer
Development Process¶
We use GitHub to host code, to track issues and feature requests, as well as accept pull requests.
- Fork the repo and create your branch from
main
- If you've added code that should be tested, add tests
- If you've changed APIs, update the documentation
- Ensure the test suite passes
- Make sure your code follows our coding conventions
- Issue that pull request!
Local Development Setup¶
-
Clone the repository:
-
Install dependencies:
-
Set up pre-commit hooks:
Running Tests¶
We use pytest for our test suite:
For coverage report:
Code Style¶
We follow these coding conventions:
- Type Hints
- All function parameters and return values must have type hints
- Use
Optional
for parameters that can be None -
Use
Union
for parameters that can be multiple types -
Docstrings
- All public functions, classes, and modules must have docstrings
- Use Google style docstrings
-
Include Args, Returns, and Raises sections
-
Naming Conventions
- Classes: PascalCase
- Functions/Methods: snake_case
- Variables: snake_case
- Constants: SCREAMING_SNAKE_CASE
Pull Request Process¶
- Update the README.md with details of changes to the interface
- Update the documentation with any new features or changes
- The PR will be merged once you have the sign-off of at least one maintainer
License¶
By contributing, you agree that your contributions will be licensed under its MIT License.