Contributing Guide
Thank you for your interest in contributing to Blueprintr!
๐ Quick Start
- Fork the repository
- Clone your fork:
git clone https://github.com/rafitajaen/blueprintr.git - Create a branch:
git checkout -b feat/my-feature - Make your changes
- Add tests
- Commit:
git commit -m "feat: my new feature" - Push:
git push origin feat/my-feature - Open a Pull Request
๐ Commit Message Convention
This project follows Conventional Commits.
Format
<type>(<scope>): <description>
[optional body]
[optional footer]
Types
- feat: New feature
- fix: Bug fix
- docs: Documentation changes
- test: Adding or updating tests
- refactor: Code refactoring
- perf: Performance improvements
- ci: CI/CD changes
- chore: Maintenance tasks
Examples
feat: add validation middleware
fix: resolve null reference in endpoint handler
docs: update API examples
test: add tests for error scenarios
refactor: simplify endpoint registration
Breaking Changes
feat!: change endpoint registration API
BREAKING CHANGE: EndpointRegistration method signature changed
๐งช Testing
Required
- All new features must include tests
- All tests must pass before submitting PR
- Aim for high code coverage
Run Tests
# All tests
dotnet test
# With coverage
dotnet test --collect:"XPlat Code Coverage"
# Specific project
dotnet test tests/Blueprintr.Tests/
๐ Pull Request Process
Ensure tests pass
dotnet testUpdate documentation if needed
- XML comments for public APIs
- README.md for significant changes
- docs/ for new features
Follow code style
- EditorConfig is configured
- Format on save in VS Code
- Follow existing patterns
Create descriptive PR
- Use the PR template
- Explain what and why
- Link related issues
Wait for CI
- All checks must pass
- Address review feedback
- Squash commits if requested
โ Code Standards
- Use C# and .NET conventions
- Enable nullable reference types
- Document public APIs with XML comments
- Keep methods small and focused
- Follow SOLID principles
- No warnings (warnings = errors)
๐ Resources
- Conventional Commits
- .NET Coding Conventions
- NUnit Documentation
- CLAUDE.md - Complete project guide
๐ Getting Help
- Questions: Open a GitHub Discussion
- Bugs: Open a GitHub Issue
- Documentation: See CLAUDE.md
๐ Thank You!
Every contribution, no matter how small, is appreciated!
For complete development guide, see CLAUDE.md