Contributing
We welcome contributions to Django RemixIcon! This guide will help you get started.
Getting Started
Fork the repository on GitHub
Clone your fork locally:
git clone https://github.com/brktrlw/django-remix-icon.git cd django-remix-icon
Create a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
Install dependencies:
pip install -e . pip install -r requirements-dev.txt
Development Setup
Install development dependencies:
pip install -e ".[dev]"
Run linting:
flake8 django_remix_icon/
black django_remix_icon/
isort django_remix_icon/
Build documentation:
cd docs/
make html
Types of Contributions
Bug Reports
When reporting bugs, please include:
Django version
Python version
Browser (for widget issues)
Steps to reproduce
Expected vs actual behavior
Error messages (if any)
Feature Requests
For new features:
Describe the use case
Explain why it would be useful
Consider backward compatibility
Provide examples if possible
Code Contributions
We welcome:
Bug fixes
New features
Performance improvements
Documentation improvements
Code Style
Python Code:
Follow PEP 8
Use Black for formatting
Use isort for import sorting
Maximum line length: 88 characters
Use type hints where appropriate
JavaScript Code:
Use ES6+ features
Follow standard JavaScript conventions
Add comments for complex logic
Test in multiple browsers
CSS Code:
Use BEM methodology when appropriate
Mobile-first responsive design
Support for dark mode
Consistent indentation (2 spaces)
Documentation:
Use reStructuredText format
Include code examples
Update API documentation for changes
Verify examples for accuracy
Pull Request Process
Create a feature branch:
git checkout -b feature/your-feature-name
Make your changes:
Write code following our style guide
Update documentation if necessary
Run code quality checks:
flake8 django_remix_icon/ black --check django_remix_icon/ isort --check-only django_remix_icon/
Commit your changes:
git add . git commit -m "Add feature: description of your changes"
Push to your fork:
git push origin feature/your-feature-name
Create a pull request on GitHub
Pull Request Guidelines:
Provide a clear description of changes
Reference any related issues
Update documentation as needed
Keep pull requests focused and atomic
Code Review Process
All pull requests require review before merging:
Code quality checks must pass (linting, formatting)
Manual review by maintainers
Discussion of any needed changes
Approval and merge
What we look for in reviews:
Code quality and style
Documentation completeness
Backward compatibility
Performance impact
Development Workflow
Branch Naming:
feature/feature-name- New featuresbugfix/issue-description- Bug fixesdocs/topic- Documentation updatesrefactor/component-name- Code refactoring
Commit Messages:
Use clear, descriptive commit messages:
Add autocomplete support for icon widgets
- Implement AJAX search functionality
- Add keyboard navigation support
- Update documentation
Closes #123
Version Bumping:
Follow semantic versioning
Update version in
__init__.pyUpdate changelog
Tag releases appropriately
Documentation Contributions
Areas needing documentation:
Usage examples
Best practices
Troubleshooting guides
Performance tips
Integration examples
Documentation workflow:
Edit
.rstfiles indocs/Build locally:
make htmlCheck for errors and formatting
Submit pull request
Writing guidelines:
Use clear, concise language
Provide working code examples
Include screenshots for UI features
Cross-reference related sections
Release Process
For maintainers:
Update version numbers in:
django_remix_icon/__init__.pysetup.pydocs/conf.py
Update changelog:
Move unreleased items to new version
Add release date
Create new unreleased section
Create release:
git tag v0.1.0 git push origin v0.1.0 python setup.py sdist bdist_wheel twine upload dist/*
Update documentation on ReadTheDocs
Getting Help
Communication channels:
GitHub Issues - Bug reports and feature requests
GitHub Discussions - General questions and ideas
Email - security@django-remix-icon.example.com (security issues)
Before asking for help:
Check existing issues and documentation
Provide minimal reproducible example
Include relevant system information
Be patient and respectful
Recognition
Contributors are recognized in:
CONTRIBUTORS.mdfileRelease notes for significant contributions
GitHub contributor graphs
Types of contributions we recognize:
Code contributions
Documentation improvements
Bug reports and issue reporting
Community support
Translations (if applicable)
License
By contributing to Django RemixIcon, you agree that your contributions will be licensed under the same license as the project (MIT License).
Code of Conduct
This project follows the Django Code of Conduct. All contributors are expected to uphold this code.
In summary:
Be respectful and inclusive
Welcome newcomers
Be constructive in discussions
Report unacceptable behavior
Questions?
If you have questions about contributing:
Open a GitHub Discussion
Check existing issues and pull requests
Read through this contributing guide
Look at recent contributions for examples
Thank you for considering contributing to Django RemixIcon!