Beacon uses an issue-first workflow.
- Start from an open GitHub issue.
- Create a dedicated branch from
main. - Implement only that issue on the branch.
- Add or update tests when behavior changes.
- Use conventional commits.
- Open a pull request for review.
Keep issues and branches small enough to complete independently.
Use predictable branch names tied to the issue number:
feat/<issue-number>-short-descriptionfix/<issue-number>-short-descriptionchore/<issue-number>-short-descriptiondocs/<issue-number>-short-descriptiontest/<issue-number>-short-description
Examples:
feat/10-octane-installerdocs/15-readme-and-contributingchore/20-pre-publish-validation-workflow
Commits should be atomic and use Conventional Commits.
Examples:
feat: add beacon install command skeletonfix: tolerate setup failures in experimental ci lanesdocs: add release and Packagist guidetest: add coverage for install configuration collector
Versioning impact:
fix:-> patch releasefeat:-> minor release- breaking changes -> major release
Breaking changes should use either:
type!: description- or a
BREAKING CHANGE:footer in the commit body
Before opening or updating a pull request, run the checks that match your change.
Common commands:
composer test
composer run test-laravel-13-compat
composer run validate-package
composer run validate-package-publishcomposer run test-laravel-13-compat runs the Beacon suite against a temporary Laravel 13 / Testbench 11 dependency set so you can verify the current compatibility baseline locally without mutating your working tree.
If your change affects release or packaging behavior, also validate the relevant GitHub workflow inputs locally when practical.
Please keep Beacon within the current MVP scope unless the issue explicitly expands it.
Current MVP areas include:
- package service provider and install command
- prompt-driven install flow
- Octane integration
- Dockerfile generation
- Helm chart generation
- Composer script updates
- testing, CI, release automation, and documentation
Out-of-scope examples:
- cloud-vendor-specific deployment logic
- full infrastructure provisioning
- unrelated Laravel application scaffolding
Maintainers should use docs/RELEASING.md for release automation and Packagist setup details.
Beacon also ships Laravel Boost guidance for package users and contributors.
See docs/LARAVEL_BOOST.md for the available Beacon-specific skills and when to use them.