If you run into any problems, feel free to create an issue. For simple fixes, PRs are much appreciated. For complex changes, we’d appreciate having a quick chat in GitHub Issues or Discord first.
Getting Started
Check out these good first issues to find beginner-friendly tasks.Development Setup
Configure Environment Variables
Set up the required environment variables for testing:
You can follow the Docker Compose instructions in
store/test-store/README.md to easily run a Postgres instance.Code Quality Requirements
Mandatory Pre-Commit Checks
Testing Guidelines
Integration Tests
Tests can and should be run against a sharded store. Seestore/test-store/README.md for detailed instructions on running sharded integration tests.
Commit Message Format
We use a specific format for commit messages to maintain consistency:Examples
Commit Message Guidelines
- Keep the body terse with just enough information to explain what the commit does
- Extensive explanations of how the commit works are better as code comments
- Each commit should be a small logical step towards the overall goal
- Separate mechanical changes (like renaming) from logic changes
- Don’t structure commits based on how you implemented the feature
- Avoid commit messages like “Fix problem” or “Cleanup”
Use
git rebase -i frequently to restructure your commits into logical, atomic steps.Pull Request Guidelines
Commit Structure
Structure commits in your pull request so that:- Each commit consists of a small logical step
- The PR makes it easy for reviewers to follow your changes
- Simple mechanical changes are separated from logic changes
- Commits tell the story of what was implemented, not how you debugged it
Git Workflow
Rebase on Master
Do NOT merge master into your branch. Instead, rebase your branch on top of the latest master:
Development Workflow
Using Process Compose (Recommended)
The repository includes a process-compose-flake setup for native service management:Service Configuration
| Service | Unit Tests Port | Integration Tests Port | Database/Config |
|---|---|---|---|
| PostgreSQL | 5432 | 3011 | graph-test / graph-node |
| IPFS | 5001 | 3001 | Data in ./.data/unit or ./.data/integration |
| Anvil (Ethereum) | - | 3021 | Deterministic test chain |
Communication
- For questions or help: Join our Discord
- For bugs or feature requests: Create a GitHub issue
- For complex changes: Discuss first in GitHub Issues or Discord

