Skip to content

Contributing

We welcome contributions from the community. Here's how to get started.

Development Setup

git clone https://git.example.com/cloudsync/cloudsync-sdk.git
cd cloudsync-sdk
python -m venv venv
source venv/bin/activate
pip install -e ".[dev]"

Running Tests

# Unit tests
pytest tests/unit -v

# Integration tests (requires running relay server)
pytest tests/integration -v

# Full suite with coverage
pytest --cov=cloudsync --cov-report=html

Code Style

We use ruff for linting and formatting:

ruff check .
ruff format .

Pull Request Process

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/my-feature)
  3. Write tests for your changes
  4. Ensure all tests pass and coverage doesn't decrease
  5. Update documentation if needed
  6. Submit a PR against the main branch

Commit Convention

We follow Conventional Commits:

feat: add support for MQTT transport
fix: resolve reconnection loop on timeout
docs: update quickstart guide
refactor: simplify conflict resolution logic
test: add tests for scoped tokens
chore: update dependencies

Reporting Issues

Open an issue on our issue tracker with:

  • SDK version (python -c "import cloudsync; print(cloudsync.__version__)")
  • Python version
  • Operating system
  • Minimal reproducible example
  • Full error traceback

Code of Conduct

This project follows the Contributor Covenant Code of Conduct. Be respectful and constructive.


Next: Changelog →