Skip to content

Latest commit

 

History

History
131 lines (97 loc) · 3.48 KB

File metadata and controls

131 lines (97 loc) · 3.48 KB

Contributing to A2A StoryLab

Thank you for your interest in contributing to A2A StoryLab! This project implements Google's A2A (Agent-to-Agent) protocol for multi-agent storytelling.

Getting Started

  1. Fork the repository on GitHub

  2. Clone your fork locally:

    git clone https://github.com/<your-username>/A2A-StoryLab.git
    cd A2A-StoryLab
  3. Set up your development environment:

    # Create virtual environment
    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
    # Install dependencies
    pip install -r requirements.txt
  4. Install Ollama (required for LLM functionality):

    curl -fsSL https://ollama.ai/install.sh | sh
    ollama serve
    ollama pull gemma3:1b

Making Changes

  1. Create a new branch for your feature or fix:

    git checkout -b feature/your-feature-name
  2. Make your changes following the code style:

    • Use type hints for all function parameters and returns
    • Add docstrings to all functions and classes
    • Follow PEP 8 style guide
    • Keep functions focused and under 50 lines when possible
  3. Write or update tests:

    # Run tests to ensure nothing broke
    pytest tests/ -v
  4. Format your code:

    black src/ tests/
  5. Test your changes locally:

    # Start all services
    ./start_all.sh
    
    # Verify services are running
    curl http://localhost:8000/health
    
    # Stop services
    ./stop_all.sh

Submitting Changes

  1. Commit your changes:

    git add .
    git commit -m "Brief description of your changes"
  2. Push to your fork:

    git push origin feature/your-feature-name
  3. Create a Pull Request on GitHub:

    • Go to the original repository
    • Click "New Pull Request"
    • Select your branch
    • Fill in the PR template with details about your changes

Pull Request Guidelines

  • Clear description: Explain what your PR does and why
  • Link related issues: Reference any related issues (e.g., "Fixes #123")
  • Tests: Include tests for new functionality
  • Documentation: Update docs if you changed APIs or added features
  • Small PRs: Keep changes focused - one feature/fix per PR
  • Clean commits: Use clear commit messages

Reporting Bugs

If you find a bug, please create an issue with:

  • Clear title: Summarize the issue
  • Steps to reproduce: How can we recreate the bug?
  • Expected behavior: What should happen?
  • Actual behavior: What actually happens?
  • Environment: OS, Python version, Ollama version
  • Logs: Include relevant logs from logs/ directory

Suggesting Features

We welcome feature suggestions! Please create an issue with:

  • Use case: Why is this feature needed?
  • Proposed solution: How should it work?
  • Alternatives: Any other approaches you considered?
  • A2A protocol alignment: How does it fit with A2A protocol goals?

Code of Conduct

Please read and follow our Code of Conduct. We are committed to providing a welcoming and inclusive environment for all contributors.

Questions?

  • Documentation: Check the docs/ directory
  • GitHub Issues: Ask questions by creating an issue
  • GitHub Discussions: For general discussions about the project

License

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


Thank you for contributing to A2A StoryLab! 🚀