Requirements & compatibility

Supported PHP and Laravel versions, the versioning policy, and how the OI Laravel packages fit together

Requirements & compatibility

Every OI Laravel package targets the same baseline, so if one runs in your application, they all will.

Supported versions

RequirementSupported range
PHP^8.2 — tested on 8.2, 8.3 and 8.4
Laravel11.x, 12.x, 13.x (via illuminate/* components)
spatie/laravel-data^4.23 — required whenever a package ships an Eloquent model or structured responses

Packages never require laravel/framework directly. They depend only on the individual illuminate/* components they actually use, each pinned ^11.0|^12.0|^13.0. A package raises its PHP floor above 8.2 only when a language feature genuinely demands it.

Every package's CI runs the full matrix — PHP 8.2 / 8.3 / 8.4 × Laravel 11 / 12 / 13 with prefer-stable — so compatibility is verified on each push.

Installation

Install any package with Composer; there are no license keys or paid tiers:

bash
composer require oi-lab/oi-laravel-ts

Packages are published on Packagist under the oi-lab vendor and hosted on GitHub. Configuration and migrations (when applicable) are published with the standard Laravel tag convention — see Common conventions.

How the packages fit together

  • Independent by default — each package is standalone and pulls in only what it needs. You can adopt one without adopting any other.
  • Composable when useful — some packages build on others (for example, oi-laravel-notes and oi-laravel-publish can carry oi-laravel-attachments files). Those internal dependencies are declared explicitly in composer.json and pinned to compatible versions.
  • Stable releases only — packages ship with minimum-stability: stable and prefer-stable: true, so composer require always resolves a production-ready version.

Versioning policy

All packages follow Semantic Versioning:

  • Patch (1.2.x) — bug fixes and internal changes, always safe to update.
  • Minor (1.x.0) — new, backward-compatible features.
  • Major (x.0.0) — breaking changes to the public API (for instance, moving a return type to a spatie/laravel-data object).

Because the packages are independent, they are versioned independently — each has its own release cadence. See Publishing & updates for the release workflow and how to keep your installed packages (and their AI skills) current.

Project under MIT License.
Design by