Contributing¶
We welcome contributions to Busylight Core for Humans! This guide will help you get started.
Development Setup¶
- Fork the repository on GitHub
- Clone your fork locally:
- Install dependencies using
uv
:
Development Workflow¶
Code Quality¶
We use several tools to maintain code quality:
# Run all code quality checks
uv run poe check
# Or run individual tools
uv run poe ruff # Linting and formatting
uv run poe mypy # Type checking
uv run poe ty # Additional type checking
Testing¶
Run the test suite:
Run tests with coverage:
Documentation¶
Build and serve the documentation locally:
The documentation will be available at http://localhost:8000
.
Making Changes¶
- Create a new branch for your feature or bugfix:
- Make your changes, ensuring you:
- Follow the existing code style
- Add tests for new functionality
- Update documentation as needed
-
Keep commits focused and well-described
-
Run the full test suite:
- Commit your changes:
- Push to your fork:
- Create a Pull Request on GitHub
Code Style¶
- We use
ruff
for linting and formatting - Follow PEP 8 guidelines
- Use type hints for all functions and methods
- Write docstrings for all public functions and classes
- Keep functions focused and reasonably sized
Testing Guidelines¶
- Write tests for all new functionality
- Use descriptive test names
- Test both positive and negative cases
- Use fixtures for common test data
- Mock external dependencies
Documentation¶
- Update documentation for any API changes
- Add examples for new features
- Keep documentation clear and concise
- Use proper markdown formatting
Submitting Changes¶
Pull Request Process¶
- Ensure your PR description clearly describes the problem and solution
- Include the relevant issue number if applicable
- Make sure all tests pass and code quality checks pass
- Request review from maintainers
- Address any feedback promptly
Commit Messages¶
Use clear, descriptive commit messages:
Add support for configuration files
- Implement ConfigLoader class
- Add tests for configuration loading
- Update documentation with examples
Release Process¶
Releases are managed by maintainers using the following commands:
# Patch release (bug fixes)
uv run poe publish_patch
# Minor release (new features)
uv run poe publish_minor
# Major release (breaking changes)
uv run poe publish_major
Getting Help¶
- Create an issue on GitHub for bugs or feature requests
- Join discussions in existing issues
- Reach out to maintainers for guidance
Code of Conduct¶
Please be respectful and constructive in all interactions. We want to maintain a welcoming environment for all contributors.
License¶
By contributing to Busylight Core for Humans, you agree that your contributions will be licensed under the same license as the project.
Recognition¶
Contributors will be recognized in the project's README and release notes.
Thank you for contributing to Busylight Core for Humans!