Thank you for your interest in contributing to Laler! We welcome contributions from the community and are pleased to have you join us.
- Code of Conduct
- Getting Started
- Development Setup
- How to Contribute
- Coding Guidelines
- Commit Message Format
- Pull Request Process
- Release Process
- Getting Help
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code.
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/laler.git cd laler - Install dependencies:
composer install npm install
- Run tests to ensure everything works:
vendor/bin/phpunit --stop-on-failure
- PHP ^8.0
- Composer
- Node.js (for release tooling)
- Git
-
Create a feature branch:
git checkout -b feature/your-feature-name
-
Make your changes following our coding guidelines
-
Run tests frequently:
vendor/bin/phpunit --stop-on-failure
-
Test with examples:
php examples/plain_php_usage.php
- Bug Reports: Found a bug? Please create an issue with detailed reproduction steps
- Feature Requests: Have an idea? Open an issue to discuss it first
- Code Contributions: Bug fixes, new features, improvements
- Documentation: Improve README, add examples, fix typos
- Testing: Add test cases, improve test coverage
- Check existing issues to avoid duplicates
- Discuss major changes by opening an issue first
- Follow our coding guidelines and conventions
- Ensure tests pass before submitting
- Follow PSR-12 coding standard
- Use strict typing:
declare(strict_types=1); - Document public methods with PHPDoc
- Use meaningful variable and method names
- Write tests for new functionality
- Maintain backward compatibility when possible
- Handle errors gracefully with proper exceptions
- Validate input parameters appropriately
- Place new dumpers in
src/Dumpers/ - Add examples to
examples/directory - Update tests in
tests/directory - Document changes in README.md
We use Conventional Commits for clear and consistent commit messages:
<type>(<scope>): <subject>
<body>
<footer>
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code formatting (no logic changes)refactor: Code restructuringtest: Adding or updating testschore: Maintenance tasksci: CI/CD changes
feat: add new BrowserConsoleDumper for web debugging
fix: resolve memory leak in DumpCaptureManager
docs: update README with Laravel 11 compatibility
test: add unit tests for TauriDumper integrationUse our interactive commit tool:
npm run commit-
Ensure tests pass:
vendor/bin/phpunit --stop-on-failure
-
Update documentation if needed
-
Create descriptive PR title following conventional commit format
-
Fill out PR template with:
- Clear description of changes
- Link to related issues
- Testing instructions
- Screenshots (if UI changes)
-
Request review from maintainers
-
Address feedback promptly and professionally
- Tests pass
- Code follows style guidelines
- Documentation updated
- Commit messages follow conventional format
- No merge conflicts
- Descriptive PR title and description
We use automated releases with semantic versioning:
# Patch release (1.0.1 -> 1.0.2)
npm run release:patch
# Minor release (1.0.1 -> 1.1.0)
npm run release:minor
# Major release (1.0.1 -> 2.0.0)
npm run release:major
# Auto-detect version bump
npm run release- GitHub Discussions: Best for general questions and community interaction
- Issues: For bug reports and feature requests
- Email: mahatmamahardhika200588@gmail.com for security or private matters
Contributors will be recognized in:
- GitHub contributor list
- Release notes for significant contributions
- Special mentions for outstanding contributions
Thank you for contributing to Laler! Your efforts help make debugging PHP applications easier for developers worldwide. 🚀