trustbird / laravel-trustbird
Open core Laravel package for building a self-hosted Trustbird ISMS.
Requires
- php: ^8.2
- illuminate/database: ^12.0|^13.0
- illuminate/support: ^12.0|^13.0
Requires (Dev)
- laravel/pint: ^1.29
- orchestra/testbench: ^10.0|^11.0
- pestphp/pest: ^3.0|^4.0
- pestphp/pest-plugin-laravel: ^3.0|^4.0
This package is auto-updated.
Last update: 2026-07-28 13:44:52 UTC
README
Laravel Trustbird
Laravel Trustbird is the core Laravel package for Trustbird.
It provides the backend foundation for building Trustbird-powered applications.
Current modules include:
- People: Manage personnel, employment types, and statuses.
- Assets: Combined management of Assets and Devices (Laptops, Servers, etc.).
This package is intentionally frontend-agnostic.
Developers may use this package inside existing Laravel applications, custom business systems, API-first applications, or any other Laravel-based implementation.
Development guidelines
Before making changes, read the AI and contributor guidelines in:
.ai/instructions.md.ai/philosophy.md.ai/boundaries.md.ai/architecture.md.ai/coding-style.md.ai/testing.md.ai/package-development.md
These documents define the package scope, architecture, coding rules, testing policy, and development workflow.
They are intended for both human contributors and AI coding assistants.
See also AGENTS.md for a short, actionable checklist (for humans and AI agents).
Semantic Versioning
This project follows Semantic Versioning ((MAJOR.MINOR.PATCH)) with pre-release identifiers (example: 0.1.0-alpha.4).
- MAJOR: Breaking changes to the public developer API (method signatures/parameter names), configuration keys, migrations that require manual intervention, or removal/renames of public contracts and documented behaviour.
- MINOR: Backwards-compatible additions (new domains/managers/models), new optional configuration, additive migrations, new documented functionality.
- PATCH: Backwards-compatible bug fixes, documentation fixes, internal refactors that do not change the public API.
Release and tagging
main is protected and must only be updated through pull requests.
This repository uses CHANGELOG.md as the source of truth for releases.
- After a release PR is merged to
main, a GitHub Actions workflow automatically creates a tag.- Tag format:
v<version>(example:v0.1.0-alpha.4)
- Tag format:
Automations:
- Release prepare (local/AI):
composer release:prepare -- <version>createsrelease/v*, syncs docs, runs tests, and opens a PR (see.ai/release-flow.md). - PR test plan: test plan checkmarks are updated when all CI workflows pass.
- PR issue autoclose: PR bodies are updated with a
Closes #...footer based on#123references in PR titles/bodies and commit messages. - Release changelog date: on pushes to
release/v*branches, theCHANGELOG.mdheader for that version is converted fromUnpublishedto an ISO date. - Release gating: PRs from
release/v*branches intomainfail CI if the changelog header for the release does not contain an ISO date. - Tagging: after merge to
main, a tagv<version>is created from the latest publishable changelog header. - Release cleanup: merged
release/v*branches and shippedfeature/*branches are deleted automatically after the release PR merges.