Thank you for considering contributing to HydePHP! This document provides guidelines and instructions for contributing to the HydePHP project.
HydePHP consists of several core components, with development primarily done in a monorepo:
- Hyde/Hyde (this repository) - The end-user project that you interact with when creating a website
- Hyde/Framework - The core logic including models, generators, commands, and views
- HydeFront - Frontend assets including stylesheets and scripts
Development happens in the HydePHP/Develop monorepo, where changes are automatically split into separate read-only repositories for each component.
- Find an issue or create one - Check if the change you want to make has been discussed
- Check existing PRs - Make sure someone isn't already working on it
- Fork the monorepo - All development happens at hydephp/develop
- Clone your fork and run
composer install - Create a branch for your changes
- Make your changes in the appropriate package directory
- Add tests - Your patch won't be accepted without tests
- Run the tests - Make sure everything passes
- Submit a pull request to the monorepo
- We follow the PSR-2 Coding Standard
- All code should be properly tested
- We try to align with Laravel conventions where possible
- Bug fixes for the current stable release should be sent to
2.x - Fixes for the supported v1 release line should be sent to
1.x - Minor features that are fully backward compatible with v2 should be sent to
2.x - Major features or breaking changes for v3 should be sent to
master
When contributing, keep in mind the core goals of HydePHP:
- Developer experience first - Creating sites with Hyde should be a joy
- Zero config setup - Hyde follows convention over configuration with sensible defaults
- Customizable when needed - Options for customization should always be available but not required
- Document any change in behavior in your PR
- Update README.md or other documentation files as needed
- One PR per feature/fix - Keep changes focused on a single goal
- Coherent history - Squash intermediate commits
- Add tests - All PRs should include tests that prove the fix/feature works
- Document changes - Update relevant documentation
- Consider release cycle - We follow SemVer v2.0.0
If you need help or have questions about contributing:
- Join the community discussions on GitHub
- Check the Community Portal for more resources
- Read the detailed Contributing Guide in the monorepo
Please note that this project adheres to a Code of Conduct. By participating, you are expected to uphold this code. The full Code of Conduct can be found in the HydePHP community health files.
Thank you for contributing to HydePHP!