Skip to content

Contributing to a2p

We welcome contributions to the a2p protocol! Here's how to get involved.


Ways to Contribute

Type Description
๐Ÿ› Bug Reports Report issues you find
๐Ÿ’ก Feature Requests Suggest new features
๐Ÿ“– Documentation Improve docs and examples
๐Ÿ’ป Code Fix bugs or add features
๐Ÿงช Testing Test implementations
๐ŸŒ Translations Translate documentation

Getting Started

1. Fork the Repository

git clone https://github.com/a2p-protocol/a2p.git
cd a2p

2. Install Dependencies

pnpm install

3. Run Tests

pnpm test

4. Make Changes

Create a branch for your changes:

git checkout -b feature/my-feature

Contribution Guidelines

Code Style

  • Use TypeScript for new code
  • Follow existing patterns
  • Add tests for new features
  • Update documentation

Commit Messages

Follow Conventional Commits:

feat(sdk): add memory proposal batching
fix(gateway): handle rate limit edge case
docs: update quickstart tutorial

Pull Requests

  1. Create a clear PR title
  2. Describe what changed and why
  3. Link related issues
  4. Ensure CI passes

Development Setup

Project Structure

a2p/
โ”œโ”€โ”€ docs/              # Specification docs
โ”œโ”€โ”€ schemas/           # JSON Schema files
โ”œโ”€โ”€ packages/
โ”‚   โ”œโ”€โ”€ sdk-typescript/
โ”‚   โ”œโ”€โ”€ sdk-python/
โ”‚   โ”œโ”€โ”€ gateway/
โ”‚   โ””โ”€โ”€ adapters/
โ”œโ”€โ”€ examples/          # Example code
โ””โ”€โ”€ docs/              # Documentation (this site)

Building

# Build all packages
pnpm build

# Build specific package
pnpm --filter @a2p/sdk build

Testing

# Run all tests
pnpm test

# Run specific package tests
pnpm --filter @a2p/sdk test

RFC Process

Major changes go through an RFC (Request for Comments):

  1. Draft โ€” Write RFC in rfcs/ folder
  2. Discuss โ€” Open PR for community feedback
  3. Revise โ€” Incorporate feedback
  4. Accept/Reject โ€” Working group decision
  5. Implement โ€” Build the feature

RFC Template

# RFC-XXXX: [Title]

## Summary
[One paragraph summary]

## Motivation
[Why is this needed?]

## Detailed Design
[Technical details]

## Alternatives
[Other approaches considered]

## Compatibility
[Breaking changes, migration]

Code of Conduct

We follow the Contributor Covenant.

Summary

  • Be welcoming and inclusive
  • Be respectful of differing viewpoints
  • Accept constructive criticism gracefully
  • Focus on what's best for the community

License

By contributing, you agree that your contributions will be licensed under EUPL-1.2.


Getting Help


Recognition

Contributors are recognized in:

  • CONTRIBUTORS.md file
  • Release notes
  • Community spotlight

Thank you for contributing to a2p! ๐Ÿ™