Before You Begin
Read the Docs
Familiarize yourself with the Development Standards and Code Style guidelines.
Set Up Your Environment
Follow the Building and IntelliJ Setup guides to configure your development environment.
Contributor License Agreement
Contributions to this project must be accompanied by a Contributor License Agreement (CLA).You (or your employer) retain the copyright to your contribution. The CLA simply gives the project permission to use and redistribute your contributions as part of the project.
Signing the CLA
Check if you've signed
If you’ve already submitted a CLA for any project in the World Federation of Advertisers organization, you likely don’t need to do it again.
Submit the CLA
When you submit your first pull request, you’ll be prompted to sign the CLA if you haven’t already.
Contribution Workflow
1. Find or Create an Issue
Search existing issues
Check if there’s already an issue for the work you want to do in the GitHub Issues.
Create a new issue
If no relevant issue exists:
- Use the appropriate issue template (Bug, Feature Request, etc.)
- Write a clear, self-contained title
- Provide detailed description and context
- Add appropriate labels and type
2. Create a Branch
3. Make Your Changes
Write code
Implement your changes following the Development Standards.
Add tests
- Write unit tests for new functionality
- Ensure existing tests still pass
- See Testing Guide for details
4. Format and Lint
Before committing, ensure your code is properly formatted:5. Run Tests
Verify all tests pass:6. Commit Your Changes
Follow the Conventional Commits specification:See Commit Message Format for detailed guidelines.
7. Push and Create Pull Request
Fill out PR template
- Write a clear title following commit message format
- Provide detailed description
- Reference related issues using
Issue: org/repo#number - List breaking changes if any
Code Review Process
All submissions require review through Reviewable.io.Wait for automated checks
CI/CD pipelines will automatically:
- Run tests
- Check formatting
- Verify build succeeds
- Check for
DO_NOT_SUBMITmarkers
Address review comments
- Respond to feedback in Reviewable
- Make requested changes
- Push updates to your branch
- Mark comments as “Satisfied” when addressed
Contribution Guidelines
Do’s
Write Tests
All new code should include comprehensive unit tests
Follow Style Guides
Use automated formatters and follow language-specific guidelines
Document Changes
Update docs, add comments, explain complex logic
Keep PRs Focused
One logical change per PR makes review easier
Don’ts
Don't Mix Concerns
Avoid combining refactoring with feature changes
Don't Skip Tests
Never submit code without running the test suite
Don't Add Secrets
Never commit credentials, API keys, or sensitive data
Don't Break Builds
Ensure your changes don’t introduce build failures
Types of Contributions
Bug Fixes
- Create or find a bug issue
- Write a failing test that reproduces the bug
- Fix the bug
- Verify the test now passes
- Submit PR with
fix:commit type
New Features
- Discuss the feature in an issue first
- Design the API/interface
- Implement with comprehensive tests
- Update documentation
- Submit PR with
feat:commit type
Documentation
- Identify gaps or errors in documentation
- Make improvements
- Submit PR with
docs:commit type
Performance Improvements
- Create an issue with benchmarks showing the problem
- Implement optimization
- Provide before/after benchmarks
- Submit PR with
perf:commit type
Getting Help
GitHub Issues
Ask questions or report problems in GitHub Issues
Discussions
Start a discussion for broader topics or questions
Recognition
Contributors are recognized through:- GitHub commit history
- Release notes for significant contributions
- Public acknowledgment in project communications
By contributing, you agree that your contributions will be licensed under the same license as the project (Apache 2.0).
Next Steps
Dev Standards
Review commit and code review standards
Building
Learn about the build system
Testing
Understand testing requirements