Monorepo
Lunar uses a monorepo at lunarphp/lunar to manage its codebase. All packages, tests, and admin panel code live in a single repository. Monorepos are common in large projects and allow changes that span multiple packages to be developed and reviewed together.Contributing Code
The basic process for contributing code to Lunar is:- Fork the lunarphp/lunar monorepo
- Clone the fork locally
- Create a new branch for the change
- Make changes and write tests
- Ensure the full test suite passes
- Submit a pull request
Coding Standards
Lunar follows the Laravel coding style and uses Laravel Pint to enforce it. Before submitting a pull request, run Pint from the repository root:Running Tests
Lunar uses Pest for its test suite. Tests can be run from the repository root:Reporting a Bug
If a bug is discovered, please open a GitHub issue on the lunarphp/lunar repository. The issue should include: At minimum:- A clear title and description of the issue
- Steps to reproduce the behavior
- The version of Lunar, PHP, and Laravel in use
- An accompanying pull request with a failing test that demonstrates the issue
Proposing a Feature
Before investing time on a new feature, it is strongly recommended to start a discussion first. This allows the community and maintainers to provide feedback on whether the feature aligns with Lunar’s direction before any code is written. Prototyping the feature alongside the discussion is welcome if it helps illustrate the proposal.Making a Pull Request
When submitting a pull request, the repository provides a template to guide the submission. A well-structured pull request should include:- A title that clearly summarizes the change
- A description explaining what the change does and why it is valuable
- References to any related issues (e.g.,
Fixes #123) - A label of
bug,enhancement, orfeature - Automated tests with adequate coverage
- Any relevant documentation updates
Documentation
Lunar’s documentation is maintained in the lunarphp/docs repository. It is built with Mintlify and all content is written in MDX. To contribute documentation changes:- Fork the lunarphp/docs repository
- Install the Mintlify CLI and run the dev server locally
- Make changes and verify they render correctly
- Submit a pull request
Any new page must also be added to the
docs.json navigation configuration, or it will not appear in the sidebar.