Hey there! 👋 Thanks for considering contributing to Persona. We’re building something cool here - a system that helps applications understand and adapt to their users. Whether you’re fixing bugs, adding features, or improving docs, we’re excited to have you on board.

Development Setup

Prerequisites

  • Python 3.12+
  • Docker and Docker Compose
  • Poetry for dependency management
  • Neo4j (handled via Docker)
  • OpenAI API key

Quick Start

  1. Clone and set up your environment:
git clone https://github.com/saxenauts/persona.git
cd persona
poetry install
  1. Create your .env file:
URI_NEO4J=neo4j://localhost:7687
USER_NEO4J=neo4j
PASSWORD_NEO4J=your_secure_password

OPENAI_API_KEY=your_openai_api_key

NEO4J_AUTH=neo4j/your_secure_password
  1. Fire up the services:
docker-compose up -d
  1. Run the test suite:
poetry run pytest

Development Workflow

Branch Strategy

  • main is our stable branch
  • Create feature branches from main: feature/your-feature-name
  • Bug fixes go in: fix/bug-description

Before Submitting PR

  1. Run the test suite

  2. Update relevant documentation

  3. Add tests for new features

  4. Ensure your code follows our style (we use black and isort)

Commit Messages

We follow conventional commits. Keep it simple:

feat: add user preference tracking
fix: resolve neo4j connection timeout
docs: update RAG implementation guide

Testing

We’re serious about testing. Run the full suite with:

poetry run pytest

For specific test files:

poetry run pytest tests/test_graph_operations.py

Documentation

  • Update relevant docs in docs/
  • Add docstrings to new functions/methods
  • Include example usage where appropriate

Need Help?

  • Check existing issues and discussions
  • Open a new issue for bugs or feature discussions
  • Tag maintainers if you’re stuck

Code of Conduct

We follow a standard code of conduct - be nice, be respectful, be helpful. The usual stuff that makes open source awesome.

License

By contributing, you agree that your contributions will be licensed under the MIT License.


Thanks for helping make Persona better! 🚀