Contributing to CoreRec#
Thank you for your interest in contributing to CoreRec! This document provides guidelines and instructions for contributing.
Getting Started#
Prerequisites#
Python 3.7 or higher
Git
Familiarity with recommendation systems (helpful but not required)
Finding an Issue to Work On#
Check the Issues page
Look for issues labeled
good first issueorhelp wantedComment on the issue to let others know you’re working on it
Development Setup#
1. Fork and Clone#
# Fork the repository on GitHub, then clone your fork
git clone https://github.com/YOUR_USERNAME/CoreRec.git
cd CoreRec
2. Set Up Development Environment#
# Create a virtual environment
python -m venv venv
# Activate it
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install development dependencies
pip install -r requirements-dev.txt
3. Install Pre-commit Hooks#
pre-commit install
How to Contribute#
Reporting Bugs#
Check if the bug has already been reported
Create a new issue with:
Clear title and description
Steps to reproduce
Expected vs actual behavior
Environment details (Python version, OS, etc.)
Suggesting Features#
Check if the feature has already been suggested
Create a new issue with:
Clear description of the feature
Use cases and benefits
Potential implementation approach
Code Contributions#
Fork the repository
Create a feature branch:
git checkout -b feature/my-featureMake your changes
Write tests for new functionality
Update documentation if needed
Run tests:
pytestRun linters:
flake8,black --checkCommit changes:
git commit -m "Add feature X"Push to your fork:
git push origin feature/my-featureCreate a Pull Request
Coding Standards#
Code Style#
Follow PEP 8 style guide
Use
blackfor code formattingMaximum line length: 100 characters
Use type hints where possible
Documentation#
Write docstrings for all public functions and classes
Use Google-style docstrings
Include examples in docstrings when helpful
Testing#
Write unit tests for new functionality
Aim for >80% code coverage
Use
pytestfor testing
Pull Request Process#
Update CHANGELOG.md with your changes
Ensure all tests pass
Update documentation if needed
Request review from maintainers
Address review comments
Wait for approval before merging
Questions?#
If you have questions, feel free to:
Open an issue for discussion
Contact the maintainers
Check existing documentation
Thank you for contributing to CoreRec!