Contributing to Egregora¶
First off, thank you for considering contributing to Egregora! It's people like you that make Egregora such a great tool.
Code of Conduct¶
This project and everyone participating in it is governed by the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to the project maintainers.
Development Setup¶
Egregora uses modern Python tooling for a consistent development experience.
Prerequisites¶
- Python 3.12+: Required for modern type hinting and performance features.
- uv: Used for dependency management and running tasks.
- Google Gemini API Key: Required for AI features (Writer, RAG).
Quick Start¶
-
Clone the repository:
-
Install dependencies:
-
Install pre-commit hooks:
-
Set environment variables:
Pull Request Process¶
-
Create a Branch: Use a descriptive branch name:
feature/new-agent,fix/db-locking,docs/update-readme. -
Make Changes: Follow the Code of the Weaver standards.
- Write small, atomic commits.
- Add tests for new features.
- Ensure type annotations are present.
-
Run Tests: Ensure all tests pass before submitting.
-
Run Pre-commit: Ensure linting and formatting are correct.
-
Submit PR:
- Provide a clear title and description.
- Reference any related issues.
- Wait for CI checks to pass.
Coding Standards¶
We follow strict coding standards to ensure maintainability and performance. Please read the Code of the Weaver (CLAUDE.md) for detailed guidelines on:
- Architecture: Functional patterns, Ibis-first data processing.
- Style: Google-style docstrings, Ruff formatting.
- Testing: Pytest fixtures, markers, and coverage.
Key Rules¶
- No Pandas: Use
ibis-frameworkfor all data transformations. - Type Safety: Pydantic for validation, strict MyPy checks.
- Absolute Imports: No relative imports (e.g.,
from . import utils).
Testing¶
We use pytest for testing.
- Unit Tests:
tests/unit/- Fast, isolated tests. - E2E Tests:
tests/e2e/- Full pipeline verification.
Documentation¶
Documentation is built with MkDocs Material.
Documentation files are located in docs/. We use mkdocstrings to auto-generate API reference from code docstrings.
Community¶
- Issues: Use GitHub Issues for bug reports and feature requests.
- Discussions: Use GitHub Discussions for questions and ideas.
Thank you for contributing! 🚀