Thank you for your interest in contributing to DuraGraph! We welcome contributions from the community.
Do not create branches directly in the main repository. All contributions must come through pull requests from your fork.
We use GitHub Projects to organize tasks. Here's how to find something to work on:
-
Check the Good First Issue label
- These are well-defined, beginner-friendly tasks
- Perfect for getting familiar with the codebase
-
Look at the Project Board
- 📋 Backlog - Future work and ideas
- 🆕 Good First Issue - Easy tasks for newcomers
- 🔧 Ready to Work - Well-defined tasks ready to be picked up
- 🚧 In Progress - Currently being worked on (don't pick these)
- 👀 In Review - PRs awaiting review
- ✅ Done - Completed tasks
-
Filter by labels:
good first issue- Great for newcomershelp wanted- We need community helpdifficulty: easy- Low complexitydocumentation- Docs improvements
- Comment on the issue: "I'd like to work on this"
- Wait for maintainer approval (we'll assign it to you)
- If no response within 24 hours, go ahead and start working
- Don't work on assigned issues - respect others' claims
-
Fork the repository
- Click the "Fork" button at the top right of the repository page
- This creates your own copy of the repository
-
Clone your fork
git clone https://github.com/YOUR_USERNAME/duragraph.git cd duragraph -
Add upstream remote
git remote add upstream https://github.com/Duragraph/duragraph.git
-
Create a feature branch in your fork
git checkout -b feature/your-amazing-feature
-
Make your changes
- Write clear, commented code
- Follow the existing code style
- Add tests for new features
- Update documentation as needed
-
Test your changes
task test task lint -
Commit your changes
git add . git commit -m "feat: add amazing feature"
Follow Conventional Commits:
feat:- New featurefix:- Bug fixdocs:- Documentation changestest:- Adding testsrefactor:- Code refactoringchore:- Maintenance tasks
-
Push to your fork
git push origin feature/your-amazing-feature
-
Create a Pull Request
- Go to the original repository on GitHub
- Click "New Pull Request"
- Select "compare across forks"
- Choose your fork and branch
- Fill out the PR template
- Wait for review
- One feature per PR - Keep changes focused
- Write clear descriptions - Explain what and why
- Reference issues - Use "Closes #123" if applicable
- Pass all checks - Tests, linting, and CI must pass
- Be responsive - Address review feedback promptly
See our Development Guide for detailed setup instructions.
Quick start:
# Install dependencies
task install
# Start all services
task up
# Run tests
task test
# Run linting
task lint- Go: Follow Effective Go and run
gofmt - TypeScript/JavaScript: Use ESLint and Prettier
- Python: Follow PEP 8
- Documentation: Use clear, concise language
Use the GitHub Issues page:
- Check if the issue already exists
- Use the bug report template
- Include reproduction steps
- Provide environment details
- Add relevant logs/screenshots
Use GitHub Discussions:
- Describe the feature clearly
- Explain the use case
- Consider implementation approach
- Discuss alternatives
Documentation improvements are always welcome! Our docs are in the docs/ directory using Fumadocs.
cd docs
pnpm install
pnpm dev
# Visit http://localhost:3000- General questions: GitHub Discussions
- Bug reports: GitHub Issues
- Documentation: duragraph.dev/docs
By contributing, you agree that your contributions will be licensed under the Apache License 2.0.
Your contributions make DuraGraph better for everyone. We appreciate your time and effort!
Questions? Open a discussion or reach out to the maintainers.