Skip to main content

AUSUS v1.0.0 — First stable release

AUSUS reaches 1.0. Stable release cut of v0.2.0-rc.1 — every PHP class, the React renderer bundle, the ViewSchema wire format, the HTTP API surface, and the SPI contracts are bit-identical to rc.1. The v0.2 alpha → beta → rc stabilization line is closed; v1.0 is what it was the candidate for.

What "stable" means

The public API surface is frozen. No new public class, interface, method, or wire field will be added, removed, or renamed within the 1.x line without a synchronized minor / major bump per SemVer.

The wire is frozen. schemaVersion stays at 1.2.0 for every 1.x release. Additive minor changes (e.g. new optional wire keys) would bump to 1.3.0; breaking wire changes would require 2.0.0.

The renderer compatibility contract stays. @ausus/renderer-react@1.x.x declares peerSchemaVersion: ^1.0.0 and remains forward-compatible with every 1.x backend release.

Installation

The pre-release stability flag is no longer required:

composer create-project ausus/starter myapp
cd myapp
composer boot
composer serve # → http://localhost:8000

Existing alpha / beta / rc consumers receive 1.0.0 automatically on composer update: stable satisfies the @alpha / @beta / @rc per-package flags, and the inter-package constraints have moved from the pre-release form ^0.2@alpha to the stable form ^1.0.

What changed between rc.1 and 1.0.0

Zero runtime, API, wire, build, peer-dependency, or test behaviour change. The diff is package metadata + documentation only:

  • renderer/react/package.json: version 0.2.0-rc.11.0.0.
  • 5 PHP package CHANGELOG.md: new [1.0.0] section documenting the stable cut.
  • 5 PHP package composer.json require: inter-package constraints ^0.2@alpha^1.0.
  • packages/starter/composer.json minimum-stability: alphastable. A user scaffolding a fresh project no longer inherits a pre-release stability flag.
  • Documentation surfaces (README, installation.md, troubleshooting, CURRENT_VERSION, sidebar, EN + FR release notes) updated to the v1.0 idiom — the canonical install command drops the stability flag, and references to "pre-1.0" / "beta" / "rc" current state shift to "stable" / "1.x".

Feature surface (carried forward from the alpha / beta cycle)

For the full description of what shipped during the v0.2 line and remains the v1.0 baseline, see the v0.2.0-beta.1 release notes:

  • Pagination — ?limit=N&offset=M with totalCount echo.
  • Whitelisted filtering — eq / in / contains operators, parameterised SQL, three SQL-injection vectors regression-pinned.
  • Multi-column sorting — ?sort=<field>:<dir>,… with deterministic id ASC tie-breaker.
  • ViewSchema wire 1.2.0 — top-level filters[] + sort[] echoes, extended data.pagination shape.
  • DX — composer serve + bin/server.php on the starter, Application::renderProjection() facade.
  • Runtime hardening Phase A + B + C — five typed marker interfaces in Ausus\Errors\*, marker-first ErrorMapper::classify().
  • Release engineering — manifest + evidence archive scripts, release-replay workflow, renderer provenance pre-publish gate, matrix release-gate (PHP 8.3 + 8.4).

Renderer

@ausus/renderer-react@1.0.0 is the npm release that pairs with this backend. The latest dist-tag now points at this version (previously held at the last stable 0.1.1 while the v0.2 pre-release line lived on @next).

  • No TypeScript / build / peer-dependency change since rc.1.
  • peerSchemaVersion stays at ^1.0.0; the renderer remains consumable by any backend in the 1.x wire line.
  • Bundle shape identical (21 files, 16.9 kB).

Compatibility

TierVersionStatus
Current stablev1.0.0GA
Pre-release linev0.2.0-alpha.5 / v0.2.0-beta.1 / v0.2.0-rc.1superseded by 1.0.0 (still on Packagist for historical reference)
Legacyv0.1.0 / v0.1.1legacy / abandoned on Packagist

A consumer running on a v0.2 pre-release line upgrades to 1.0.0 by removing the stability flag from their root composer.json and running composer update. Existing ^0.2@alpha (or beta / rc) require constraints will need to be bumped to ^1.0 once the consumer wants to lock into the stable line.

Known limitations (deferred to a future minor or stream)

  • Cursor-based paginationdata.pagination.nextCursor remains the reserved slot. Will arrive as an additive 1.x minor.
  • Boolean filter trees (nested AND / OR groups) — explicitly out of scope for v1.0.
  • Sort by computed expressions — rejected by the column whitelist; out of scope for v1.0.
  • MySQL / PostgreSQL persistence drivers — explicit post-1.0 workstream.
  • Multi-entity relations — separate RFC stream.
  • Per-transition guard policies — separate RFC stream.
  • Async actions — separate RFC stream.

Released artifacts

PackageVersion
ausus/kernelv1.0.0
ausus/runtime-defaultv1.0.0
ausus/persistence-sqlv1.0.0
ausus/api-httpv1.0.0
ausus/standard-stackv1.0.0
ausus/starterv1.0.0
ausus/tenancy-rowv1.0.0 (name-reserved)
ausus/audit-databasev1.0.0 (name-reserved)
ausus/auth-bridgev1.0.0 (name-reserved)
ausus/presentation-defaultv1.0.0 (name-reserved)
@ausus/renderer-react1.0.0 (npm @latest)

Release-engineering closure note

The release-replay.yml workflow run triggered against this tag exits non-zero — a documented snapshot-transition artefact tied to the first tag cut on the stable line. The release-gate, clean-room, public-install, and composer create-project ausus/starter:^1.0 quickstart are all independently green against the published artifacts. Full root-cause analysis (with SemVer demonstration and forward-looking proof that future v1.0.x tags replay green) is archived in the release evidence bundle:

  • artifacts/releases/v1.0.0/release-replay-followup.md — closure record + verdict (GREEN — cosmetic only, v1.0.0 remains fully accepted).
  • artifacts/releases/v1.0.0/release-gate.live.log — canonical evidence of RELEASE_GATE_LIVE=1 RELEASE_GATE_VERSION=v1.0.0 Steps 1-9 green against the published Packagist + npm artifacts.