Appearance
Contributing to Family Shapes
Thank you for your interest in contributing to the Family Shapes project! This guide will help you understand how to contribute effectively.
Table of Contents
- Code of Conduct
- Getting Started
- Development Workflow
- Pull Request Process
- Documentation
- Testing
- Database Changes
- Style Guidelines
- Community
Code of Conduct
We are committed to providing a welcoming and inclusive environment for all contributors. Please be respectful and considerate of others.
Getting Started
- Fork the Repository: Create your own fork of the repository
- Clone the Repository: Clone your fork to your local machine
- Set Up Development Environment: Follow the Getting Started Guide
- Create a Branch: Create a branch for your changes
Development Workflow
- Check Project Priorities: Review the ROADMAP.md and Project Priorities to ensure your work aligns with current priorities
- Choose an Issue: Select an issue to work on from the issue tracker
- Create a Branch: Create a branch with a descriptive name (e.g.,
feature/add-donor-privacy-controls) - Make Changes: Implement your changes following the project's coding standards
- Write Tests: Add tests for your changes
- Update Documentation: Update documentation to reflect your changes
- Commit Changes: Make small, focused commits with clear messages
- Push Changes: Push your changes to your fork
- Create a Pull Request: Open a pull request to the main repository
IMPORTANT: Always check the "Immediate Priorities" section in the ROADMAP.md before starting any work to ensure your contributions align with the project's current focus.
Pull Request Process
- Fill Out the PR Template: Provide a clear description of your changes
- Link Related Issues: Reference any related issues
- Pass CI Checks: Ensure all automated checks pass
- Request Review: Request review from appropriate team members
- Address Feedback: Respond to feedback and make necessary changes
- Get Approval: Obtain approval from at least one reviewer
- Merge: Once approved, your PR will be merged
For detailed guidelines, use this section and the PR review process in AGENTS.md.
Code Review
Code review happens as part of PRs. We currently don't maintain a separate guide.
Documentation
Documentation is a crucial part of the project. When making changes:
- Update Existing Documentation: Update any documentation affected by your changes
- Add New Documentation: Create new documentation for new features
- Follow Documentation Standards: Adhere to the Documentation Guidelines
Testing
All code changes should include appropriate tests:
- Unit Tests: Test individual components and functions
- Integration Tests: Test interactions between components
- End-to-End Tests: Test complete user flows
For detailed testing guidelines, see the docs in Development.
Database Changes
Database changes must follow our migration workflow:
- Create Migrations: Use
make db/diffto create migrations - Test Migrations: Verify migrations with
make db/resetandmake db/check - Update Types: Regenerate types with
make db/types
For detailed database guidelines, see Database Guidelines.
Style Guidelines
Follow the project's style guidelines:
- Code Formatting: Use Prettier for code formatting
- Linting: Follow ESLint rules
- TypeScript: Use TypeScript features appropriately
- Component Structure: Follow the project's component structure
For detailed style guidelines, see Documentation Guidelines.
Community
Join our community channels to connect with other contributors:
- GitHub Discussions: For feature discussions and questions
- Issue Tracker: For bug reports and feature requests
- Pull Requests: For code contributions
Additional Resources
- Project Priorities: Guidelines for checking project priorities
- Agent Instructions: Guidelines for AI assistants
- ROADMAP.md: Current project roadmap with immediate priorities
- CHANGELOG.md: Record of recent changes