Contributing
We welcome contributions to botowrap! This page provides guidelines for contributing to the project.
Development Setup
Clone the repository:
git clone https://github.com/com2cloud/botowrap.git cd botowrap
Install development dependencies:
pip install -e ".[dev]"
Set up pre-commit hooks:
pre-commit install
Code Style
We follow these conventions:
PEP 8 for code style
Type annotations for all public functions and methods
Docstrings for all classes and functions
Maximum line length of 100 characters
Testing
All code should be tested. We use pytest for testing:
pytest
For coverage reports:
pytest --cov=botowrap tests/
Pull Request Process
Fork the repository
Create a feature branch
Make your changes
Run the tests to ensure they pass
Run the type checker and linter:
mypy botowrap flake8 botowrap tests
Update documentation if necessary
Submit a pull request
Creating New Extensions
When creating a new extension:
Create a new file in
botowrap/extensions/Inherit from
BaseExtensionImplement the required
attachanddetachmethodsAdd appropriate tests in
tests/Update the documentation to include your new extension
Versioning
We use semantic versioning (MAJOR.MINOR.PATCH):
MAJOR version for incompatible API changes
MINOR version for backwards-compatible functionality
PATCH version for backwards-compatible bug fixes
Release Process
To create a new release:
Update version in
botowrap/__init__.pyUpdate
CHANGELOG.mdCreate a new tag with the version number
Push to GitHub
The CI/CD pipeline will automatically build and publish to PyPI