CONTRIBUTING.md 2.8 KB

Contributing to lambdagentpaas

Thank you for your interest in contributing! This document provides guidelines for contributing to the project.

Getting Started

Prerequisites

  • Python >= 3.10
  • Git

Development Setup

# Clone the repository
git clone https://github.com/kenny67nju/lambdagent.git
cd lambdagent

# Create a virtual environment
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install in development mode with all dependencies
pip install -e ".[all]"
pip install pytest

# Verify installation
python -c "import lambdagent; print(f'lambdagent OK: {len(lambdagent.__all__)} exports')"

Development Workflow

Running Tests

python -m pytest tests/ -v --tb=short

Project Structure

lambdagentpaas/
├── lambdagent/       # Core Lambda Calculus Agent DSL framework
├── agentpaas/        # Agent Platform as a Service layer
├── agentexample/     # Example applications
├── docs/             # Documentation (mkdocs)
└── tests/            # Test suite

Key Conventions

  • lambdagent is the pure computation kernel (no I/O side effects in core)
  • agentpaas is the platform layer that imports from lambdagent
  • Use absolute imports between packages (e.g., from lambdagent.core import Context)
  • Type hints are expected for public APIs
  • Docstrings for public classes and functions

Submitting Changes

Pull Request Process

  1. Fork the repository and create your branch from main
  2. Write or update tests for your changes
  3. Ensure all tests pass: python -m pytest tests/ -v
  4. Update documentation if you've changed public APIs
  5. Submit a pull request with a clear description

Commit Messages

Use clear, descriptive commit messages:

  • feat: add new primitive for parallel composition
  • fix: resolve beta-reduction loop in Y combinator
  • docs: update quickstart with MCP example
  • test: add coverage for fromconfig compiler

Reporting Issues

  • Use GitHub Issues for bug reports and feature requests
  • Include Python version, OS, and steps to reproduce for bugs
  • For security vulnerabilities, please email directly instead of opening a public issue

License

By contributing, you agree that your contributions will be licensed under the Business Source License 1.1 — the same license that covers this repository. On 2031-04-05 (the Change Date), the license automatically converts to Apache License 2.0 for all prior contributions.

Non-production use (development, testing, personal projects, academic research) is always permitted. Production use is free for organizations with ≤10 users or employees. See LICENSE and the License section of the top-level README.md for the threshold and how to obtain a commercial license before the Change Date.