Contributing
We welcome contributions to OJU! Here’s how you can help:
Reporting Issues
Check the issue tracker to see if the issue has already been reported
If not, create a new issue with a clear title and description
Include steps to reproduce the issue and any relevant error messages
Specify your Python version and the versions of any relevant packages
Development Setup
Fork the repository
git clone https://github.com/ojasaklechat41/oju.git cd oju
Set up a virtual environment (recommended)
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
Install development dependencies
pip install -e ".[dev]"
Run tests
pytest
Code Style
Follow PEP 8 style guide
Use type hints for all function parameters and return values
Keep functions small and focused on a single responsibility
Write docstrings for all public functions and classes
Run
blackandisortbefore committing
Pull Request Process
Create a new branch for your feature/fix:
git checkout -b feature/your-feature-name
Make your changes and commit them:
git commit -m "Add your commit message here"
Push your changes to your fork:
git push origin feature/your-feature-name
Open a Pull Request against the
mainbranchEnsure all tests pass and the code meets the project’s coding standards
Adding a New Provider
Add a new function in
oju/providers.pyfollowing the existing patternUpdate the
Agentfunction inoju/agent.pyto include the new providerAdd tests for the new provider
Update the documentation with the new provider details
Testing
Write tests for any new functionality
Ensure all tests pass before submitting a PR
Run
pytestto run the test suiteFor test coverage, run
pytest --cov=oju
Documentation
Update any relevant documentation when adding new features
Keep docstrings up-to-date
Add examples for new functionality
Code of Conduct
This project adheres to the Contributor Covenant. By participating, you are expected to uphold this code.