Ways to Contribute
There are many ways to contribute to Django Unfold:- Report bugs - Help us identify and fix issues
- Suggest features - Share ideas for new functionality
- Submit code - Fix bugs or implement new features
- Improve documentation - Help make the docs clearer and more comprehensive
- Help others - Answer questions on Discord or GitHub Discussions
- Share your experience - Write blog posts or create tutorials
Before You Start
Code of Conduct
We expect all contributors to be respectful and constructive. Please:- Be welcoming to newcomers
- Be respectful of differing viewpoints
- Accept constructive criticism gracefully
- Focus on what’s best for the community
Development Setup
Prerequisites
- Python 3.11 or higher
- Node.js 18+ (for building frontend assets)
- Git
- PostgreSQL (optional, for testing PostgreSQL-specific features)
Clone the Repository
Install Dependencies
Django Unfold usesuv for Python dependency management:
Running Tests
Code Quality
Django Unfold uses pre-commit hooks to maintain code quality:- Ruff - Fast Python linter and formatter
- MyPy - Static type checking
- Prettier - JavaScript/CSS formatting
Making Changes
Creating a Branch
Create a descriptive branch name:Development Workflow
Update documentation
If you’ve added new features or changed behavior, update the docs in the
docs/ directoryCommit Message Guidelines
Write clear, concise commit messages:Building Frontend Assets
If you’re working on CSS or JavaScript:Submitting Changes
Creating a Pull Request
Open a pull request
- Go to GitHub repository
- Click “New Pull Request”
- Select your branch
- Fill out the PR template
Pull Request Guidelines
Your pull request should:Include a clear description
Include a clear description
Explain what changes you made and why. Reference any related issues.Example:
Pass all tests
Pass all tests
Ensure all tests pass before submitting:
Include tests for new features
Include tests for new features
If you’re adding new functionality, include tests:
Update documentation
Update documentation
Add or update relevant documentation in the
docs/ directory.Keep PRs focused
Keep PRs focused
Submit separate PRs for unrelated changes. This makes review easier and faster.
Reporting Issues
Bug Reports
When reporting bugs, include:- Django Unfold version: Check with
pip show django-unfold - Django version: Check with
python -m django --version - Python version: Check with
python --version - Browser (if applicable): Chrome 120, Firefox 121, etc.
- Steps to reproduce: Clear, step-by-step instructions
- Expected behavior: What should happen
- Actual behavior: What actually happens
- Screenshots (if applicable): Visual issues are easier to understand with screenshots
Report a Bug
Use our bug report template on GitHub
Feature Requests
When suggesting features, explain:- The problem: What challenge are you trying to solve?
- Proposed solution: How would this feature work?
- Alternatives considered: What other solutions did you think about?
- Use case: When would this feature be useful?
Request a Feature
Use our feature request template on GitHub
Documentation Contributions
Documentation improvements are always welcome!Documentation Structure
Docs are organized by topic:Writing Guidelines
Follow the style guidelines in this section for documentation contributions.
- Use active voice: “Run the command” not “The command should be run”
- Address the reader: Use “you” instead of “the user”
- Be concise: One idea per sentence
- Show examples: Include code samples
- Test your examples: Ensure code samples actually work
Local Documentation Preview
Preview your documentation changes:http://localhost:3000
Community
Join our community to connect with other contributors:Discord
Chat with maintainers and contributors
GitHub Discussions
Ask questions and share ideas
Recognition
All contributors are recognized in our:- GitHub Contributors page
- Changelog (for significant contributions)
- Release notes (for features and major fixes)
License
By contributing to Django Unfold, you agree that your contributions will be licensed under the same MIT License that covers the project.Questions?
Not sure where to start or have questions about contributing?- Ask on Discord
- Open a GitHub Discussion
- Review existing pull requests to see examples