Thank you for your interest in contributing to Krill! This document provides guidelines and instructions for contributing.
By participating in this project, you agree to maintain a respectful and inclusive environment for all contributors.
If you find a bug, please create an issue with:
- A clear, descriptive title
- Steps to reproduce the issue
- Expected vs. actual behavior
- Your environment (OS, Python version, Django version)
- Any relevant error messages or logs
Feature suggestions are welcome! Please create an issue with:
- A clear description of the feature
- Use cases and examples
- Potential implementation approach (if you have ideas)
- Fork the repository and clone your fork
- Create a branch from
main:git checkout -b feature/your-feature-name
- Make your changes:
- Follow the existing code style
- Add tests for new functionality
- Update documentation as needed
- Ensure all tests pass
- Commit your changes:
Use clear, descriptive commit messages
git commit -m "Add: description of your changes" - Push to your fork:
git push origin feature/your-feature-name
- Open a Pull Request:
- Provide a clear description of your changes
- Reference any related issues
- Ensure CI checks pass
-
Clone the repository:
git clone https://github.com/yourusername/krill.git cd krill -
Create a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Set up the database:
python manage.py migrate python manage.py createsuperuser
-
Run the development server:
python manage.py runserver
- Follow PEP 8 style guidelines
- Use meaningful variable and function names
- Add docstrings to functions and classes
- Keep functions focused and single-purpose
- Comment complex logic
- Write tests for new features and bug fixes
- Ensure all existing tests pass before submitting
- Aim for good test coverage
- Run tests with:
python manage.py test
- Update README.md if you add features that affect setup or usage
- Add docstrings to new functions and classes
- Update inline comments for complex logic
- Keep documentation clear and concise
krill/
├── krill/ # Main Django project
│ ├── settings.py # Base settings
│ └── management/ # Custom management commands
├── person/ # User management app
├── sample/ # Sample tracking app
├── storage/ # Storage management app
├── reports/ # Reporting app
└── transaction/ # Transaction tracking app
If you have questions about contributing, feel free to:
- Open an issue with the
questionlabel - Check existing issues and discussions
Thank you for contributing to Krill!