Thank you for your interest in contributing! 🎉
This project is in alpha. We're actively developing core features and APIs may change significantly. Your contributions are welcome, but please understand:
- Breaking changes may occur without notice
- Your code may need updates as APIs evolve
- Documentation is still incomplete
- Features may be redesigned
For major changes:
- Open an issue describing the change
- Discuss the approach with maintainers
- Wait for approval before starting work
For small fixes (typos, bugs, small improvements), feel free to submit a PR directly.
# Clone repository
git clone https://github.com/fsecada01/component-framework.git
cd component-framework
# Install with dev dependencies
uv pip install -e ".[dev]"
# Run tests
pytest tests/- Python 3.11+ required
- Formatter:
ruff format . - Linter:
ruff check . - Type hints: Required for public APIs
- Docstrings: Required for classes and public methods
- Tests: Required for new features
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Make your changes
- Run tests:
pytest - Format code:
ruff format . - Commit:
git commit -m "feat: add my feature" - Push:
git push origin feature/my-feature - Open a Pull Request
Use conventional commits:
feat:New featurefix:Bug fixdocs:Documentation changesrefactor:Code refactoringtest:Test changeschore:Maintenance
Examples:
feat: add caching mixin for Django CBVsfix: handle missing component gracefullydocs: update CBV guide with examples
- Keep PRs small and focused
- Include tests for new features
- Update documentation
- Ensure CI passes
- Request review from maintainers
- Bug fixes
- Documentation improvements
- Example applications
- Test coverage
- Performance optimizations
- New adapters (Flask, Litestar, etc.)
- Additional mixins
- Component utilities
- Developer tools
- Major API changes
- New core features
- Breaking changes
component-framework/
├── src/component_framework/
│ ├── core/ # Framework-agnostic (careful with changes!)
│ ├── adapters/ # Framework-specific (easier to change)
│ └── components/ # Examples (feel free to add!)
├── examples/ # Working examples (add more!)
├── tests/ # Tests (always add for features!)
└── docs/ # Documentation (needs improvement!)
# Run all tests
pytest
# Run specific test
pytest tests/test_counter.py
# Run with coverage
pytest --cov=component_frameworkUpdate these as needed:
README.md- Main documentationCLAUDE.md- AI assistant contextdocs/- Detailed guides
- Open an issue
- Check existing issues
- Read the docs
By contributing, you agree that your contributions will be licensed under the MIT License.
Every contribution helps make this project better. We appreciate your time and effort! 🙏