Contributing
Contributing to λÆS
Section titled “Contributing to λÆS”Thank you for your interest in contributing to λÆS! Any help is welcome.
Getting Started
Section titled “Getting Started”- Fork the repository on GitHub
- Clone your fork locally:
Terminal window git clone https://github.com/YOUR_USERNAME/yaes.gitcd yaes - Set up the development environment:
Terminal window # Ensure you have sbt installedsbt compilesbt test
Development Workflow
Section titled “Development Workflow”Running Tests
Section titled “Running Tests”# Run all testssbt test
# Run tests for a specific modulesbt yaes-core/testsbt yaes-data/test
# Run tests continuouslysbt ~testCode Style
Section titled “Code Style”λÆS follows standard Scala conventions:
- Use 2 spaces for indentation
- Line length should not exceed 120 characters
- Use meaningful variable and function names
- Add documentation for public APIs
Making Changes
Section titled “Making Changes”-
Create a feature branch:
Terminal window git checkout -b feature/your-feature-name -
Make your changes with appropriate tests
-
Run the full test suite:
Terminal window sbt clean test -
Commit your changes:
Terminal window git add .git commit -m "Add: description of your changes" -
Push to your fork:
Terminal window git push origin feature/your-feature-name -
Create a Pull Request on GitHub
What Can You Contribute?
Section titled “What Can You Contribute?”New Effects
Section titled “New Effects”λÆS is always looking for new effects! Consider adding:
- Database effects (SQL, NoSQL)
- HTTP client effects
- File system effects
- Caching effects
- Metrics and monitoring effects
Documentation
Section titled “Documentation”- Improve existing documentation
- Add more examples
- Create tutorials
- Fix typos and grammar
Bug Fixes
Section titled “Bug Fixes”- Check the issue tracker for bugs
- Add reproduction tests
- Fix the issue
- Verify the fix works
Performance Improvements
Section titled “Performance Improvements”- Benchmark existing code
- Optimize hot paths
- Reduce memory allocations
- Improve concurrency
Project Structure
Section titled “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 source files├── website/ # Starlight documentation site└── README.md # Main documentationCode Review Process
Section titled “Code Review Process”All contributions go through code review:
- Automated checks run on your PR (CI/CD)
- Manual review by maintainers
- Feedback and requested changes
- Approval and merge
Questions?
Section titled “Questions?”- Open an issue for questions about the library
- Start a discussion for feature requests
- Join the community discussions
Acknowledgments
Section titled “Acknowledgments”λÆS has been influenced by many great engineers and projects. Special thanks to:
- Daniel Ciocîrlan - Mentor and inspiration
- Simon Vergauwen - Arrow Kt library insights
- Jon Pretty - Raise effect discussions
- Noel Welsh - Functional error handling insights
- Flavio Brasil - Kyo library inspiration
Thank you for helping make λÆS better!
This page is coming soon. Content will be added in a subsequent migration step.