Thanks for your interest in contributing to Mycelium! This document covers the guidelines for contributing to any repository in the mycelium-io organization.
- Fork the repository
- Clone your fork locally
- Create a feature branch from
main - Make your changes
- Run tests and linting
- Submit a pull request
cd fastapi-backend
uv sync --group dev# Unit tests (SQLite, no external dependencies)
uv run pytest tests/
# Integration tests (requires AgensGraph)
DATABASE_URL=... uv run pytest tests/- Python 3.12+
- Format with
ruff format - Lint with
ruff check - Type hints are expected for public APIs
- Keep PRs focused — one feature or fix per PR
- Write descriptive commit messages
- Add tests for new functionality
- Update documentation if behavior changes
- Ensure CI passes before requesting review
- Use the issue templates when available
- Search existing issues before opening a new one
- Include reproduction steps for bugs
- Be specific about expected vs actual behavior
For significant changes to architecture or new features, open an issue for discussion before writing code. This helps align on approach and avoids wasted effort.
By contributing, you agree that your contributions will be licensed under the Apache License 2.0.