We love your input! We want to make contributing to Adaptive Classifier 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
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 lints.
- Issue that pull request!
- Update the README.md with details of changes to the interface, if applicable.
- Update the docs/ with any new API changes or features.
- The PR will be merged once you have the sign-off of two other developers.
In short, when you submit code changes, your submissions are understood to be under the same Apache-2.0 license that covers the project. Feel free to contact the maintainers if that's a concern.
We use GitHub issues to track public bugs. Report a bug by opening a new issue; it's that easy!
Great Bug Reports tend to have:
- A quick summary and/or background
- Steps to reproduce
- Be specific!
- Give sample code if you can.
- What you expected would happen
- What actually happens
- Notes (possibly including why you think this might be happening, or stuff you tried that didn't work)
- Clone the repository:
git clone https://github.com/codelion/adaptive-classifier.git
cd adaptive-classifier- Create a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt
pip install -e .- Run tests:
pytest tests/We use:
Before submitting a PR, please run:
black .
isort .
flake8 .We use Google-style docstrings. Please ensure all new code is properly documented:
def function_name(param1: str, param2: int) -> bool:
"""Short description.
Longer description if needed.
Args:
param1: Description of param1.
param2: Description of param2.
Returns:
Description of return value.
Raises:
ValueError: Description of when this is raised.
"""- Write tests for all new features
- Maintain or increase code coverage
- Run the full test suite before submitting a PR