Contributing to λÆS

Thank you for your interest in contributing to λÆS! 🙏 Any help is welcome.

Getting Started

  1. Fork the repository on GitHub
  2. Clone your fork locally:
    git clone https://github.com/YOUR_USERNAME/yaes.git
    cd yaes
    
  3. Set up the development environment:
    # Ensure you have sbt installed
    sbt compile
    sbt test
    

Development Workflow

Running Tests

# Run all tests
sbt test

# Run tests for a specific module
sbt yaes-core/test
sbt yaes-data/test

# Run tests continuously
sbt ~test

Code Style

λÆS follows standard Scala conventions:

Making Changes

  1. Create a feature branch:
    git checkout -b feature/your-feature-name
    
  2. Make your changes with appropriate tests

  3. Run the full test suite:
    sbt clean test
    
  4. Commit your changes:
    git add .
    git commit -m "Add: description of your changes"
    
  5. Push to your fork:
    git push origin feature/your-feature-name
    
  6. Create a Pull Request on GitHub

What Can You Contribute?

New Effects

λÆS is always looking for new effects! Consider adding:

Documentation

Bug Fixes

Performance Improvements

Project Structure

yaes/
├── yaes-core/          # Main effects library
   ├── src/main/       # Source code
   └── src/test/       # Tests
├── yaes-data/          # Data structures
   ├── src/main/       # Source code
   └── src/test/       # Tests
├── docs/               # Documentation site
└── README.md           # Main documentation

Code Review Process

All contributions go through code review:

  1. Automated checks run on your PR (CI/CD)
  2. Manual review by maintainers
  3. Feedback and requested changes
  4. Approval and merge

Questions?

Acknowledgments

λÆS has been influenced by many great engineers and projects. Special thanks to:

Thank you for helping make λÆS better! 🚀