Development Guide
Follow the development pipeline to contribute code.
Development Pipeline
1. Browse/Claim Issues
Browse GitHub Issues
Find issues with labels:
bug- Something brokenfeature- New featureenhancement- Improvementresearch- Research tasks
Claim an issue:
- Find open, unassigned issue
- Comment: “I would like to work on this”
- Wait for assignment
- Do not start before assignment
2. Fork, Clone, Setup Branch
Fork and Clone:
# Fork on GitHub first, then:
git clone https://github.com/YOUR-USERNAME/MassGen.git
cd MassGen
git remote add upstream https://github.com/massgen/MassGen.git
Create Branch:
git fetch upstream
git checkout -b feature/your-feature-name
3. Implement and Test
Write code:
- Implement the feature or fix
- Follow code quality standards (Black, isort, flake8, pylint, mypy)
- Add docstrings
Write tests:
# Unit test example
def test_feature():
result = your_function()
assert result == expected
Run tests:
pytest # Run all tests
pytest --cov=massgen # With coverage
Run quality checks:
black massgen tests # Format
isort massgen tests # Sort imports
flake8 massgen tests # Lint
mypy massgen # Type check
Commit:
git add .
git commit -m "feat: add new feature"
# Use: feat, fix, docs, test, refactor
4. Document API
Write API documentation:
- Add function/class docstrings
- Document configuration options
- Provide usage examples
- Write integration guides
Documentation standards:
- Use clear, descriptive docstrings
- Include parameter types and return values
- Provide practical code examples
- Explain common use cases
5. Submit PR
Push to your fork:
git push origin feature/your-feature-name
Create Pull Request on GitHub:
- Target branch:
dev/vX.X.X(ormainif dev doesn’t exist) - Fill out PR description
- Link to issue: “Closes #123”
PR Checklist:
- All tests pass
- Pre-commit hooks pass
- Code documented
- CHANGELOG.md updated (if needed)
6. Review and Merge to dev
Review process:
- Automated checks run (CI)
- Maintainers review
- Address feedback
- Approval and merge to
devbranch
After merge:
- Your code is in the development branch
- Will be tested before release
7. Merge dev to main (Release)
Release schedule: Monday, Wednesday, Friday at 9am PST
Process:
- All changes in
devbranch tested - Documentation updated
devmerged tomain- GitHub release created
- Version tagged
Code Quality Standards
Pre-commit hooks run:
- Black - Code formatting
- isort - Import sorting
- flake8 - Linting
- pylint - Advanced linting
- mypy - Type checking
- bandit - Security scanning
Contact
Nick Crispino
- Discord: nickcrispino
Danrui
- Discord: danrui2020