Contribution Guidelines
We're excited that you're interested in contributing to Orkestra! This document outlines the process and guidelines for contributing to the project.
How to Contribute
Reporting Bugs
If you find a bug, please report it by creating an issue on our GitHub issue tracker. When filing a bug report, please include:
- A clear and descriptive title
- Detailed steps to reproduce the bug
- Expected behavior vs. actual behavior
- Orkestra version, PHP version, and OS
- Any relevant code snippets or error messages
Suggesting Enhancements
Feature requests are welcome! Please submit them as issues on our GitHub repository with the "enhancement" label. Provide as much detail as possible:
- A clear and descriptive title
- A detailed description of the proposed feature
- Explanation of why this feature would be useful to Orkestra users
- Any examples or mockups that might help clarify the request
Pull Requests
Here's how to submit a pull request:
- Fork the repository
- Create a new branch from
main
(git checkout -b feature/your-feature-name
) - Make your changes
- Write or update tests for your changes
- Run the test suite to ensure all tests pass
- Commit your changes with a clear commit message
- Push your branch to your fork
- Open a pull request against the
main
branch of the Orkestra repository
Pull Request Guidelines
- Keep PRs focused on a single feature or bug fix
- Follow the PSR-12 coding standards
- Update documentation if needed
- Add tests for new features or bug fixes
- Reference any related issues in your PR description
Development Setup
Requirements
- PHP 8.2 or higher
- Composer
Local Development Environment
- Fork and clone the repository:
git clone https://github.com/YOUR-USERNAME/orkestra.git
cd orkestra
- Install dependencies:
composer install
- Run the test suite:
composer pest
composer phpstan
Coding Standards
- Follow PSR-12 coding standards
- Use descriptive variable and method names
- Write self-documenting code with clear intent
- Add DocBlocks to all methods and classes
- Keep classes focused on a single responsibility
PHP CS Fixer
We use Laravel Pint to maintain coding standards. Run it before submitting your PR:
composer pint
## Testing
All new features and bug fixes should include tests. We aim for high test coverage and use PHPUnit for testing.
### Writing Tests
- Place tests in the `tests` directory
- Mirror the namespace structure of the `src` directory
- Name test classes with the `Test` suffix
- Prefix test methods with `test`
- Focus on testing behavior, not implementation details
To run tests:
```bash
vendor/bin/phpunit
Documentation
If your changes introduce new features or modify existing functionality, please update the documentation accordingly.
Our documentation uses Markdown and is located in the website/docs
directory. For major documentation changes, please open a separate pull request.
Release Process
Orkestra follows Semantic Versioning:
- MAJOR versions for incompatible API changes
- MINOR versions for new functionality in a backward-compatible manner
- PATCH versions for backward-compatible bug fixes
Getting Help
If you have questions about contributing to Orkestra, please:
- Join our GitHub Discussions
- Ask in the relevant GitHub issue
- Contact the maintainers directly
Thank You!
Your contributions make Orkestra better for everyone. We appreciate your time and effort!