Local development
Repository layout
Section titled “Repository layout”The repository is a monorepo holding three packages:
| Path | Package | Contents |
|---|---|---|
packages/server |
bambamboole/laravel-oidc-server |
The OIDC provider and auth engine |
packages/client |
bambamboole/laravel-oidc-client |
The relying-party client |
packages/ui |
bambamboole/laravel-oidc-ui |
The Lattice-powered auth UI |
Each package has its own composer.json, test suite, and tooling; the root composer.json
provides aggregate scripts that fan out across all three.
Getting started
Section titled “Getting started”git clone git@github.com:bambamboole/laravel-oidc.gitcd laravel-oidccomposer install:allcomposer install:all runs composer install inside each package. Because
bambamboole/laravel-oidc-server is not on Packagist yet, the packages/ui install resolves
it from the sibling packages/server checkout: the script backs up packages/ui/composer.json,
writes a temporary path repository into it (version taken from .release-please-manifest.json),
installs, and restores the file — composer.json ends up unchanged, and each package’s
composer.lock is git-ignored. composer install:ui reruns just that leg; the manual
equivalent is documented in packages/ui/composer.local-dev.md.
The packages are developed
against an Orchestra Testbench harness — there is no full
Laravel app to boot. Each package’s install wires itself into its harness via its
post-autoload-dump script (testbench package:discover); composer clear inside a package
purges the generated skeleton if you need to reset it.
The quality gates
Section titled “The quality gates”From the repository root:
composer check # every package: Pint --test, PHPStan, Pest in sequencecomposer check:server # a single package's gatecomposer check:clientcomposer check:uicomposer test # every package's Pest suite onlyInside a package directory, the individual tools are available directly:
composer test:lint # Pint in --test mode (fails on style violations)composer analyse # PHPStan static analysiscomposer test # Pest test suitecomposer lint # Pint (applies fixes)Run composer check from the root before opening a pull request — CI runs the same tools
across a Laravel 12 / 13 matrix.
The docs site
Section titled “The docs site”The documentation is an Astro Starlight site — content lives
under docs/, and the Node toolchain runs from the repository root:
npm installnpm run docs:dev # local dev server with hot reloadnpm run docs:build # production buildnpm run docs:preview # preview the production buildPages live under docs/content/docs/ as Markdown with Starlight frontmatter (title,
description). Match the voice and cross-linking of the existing pages when adding new ones.