Aller au contenu principal

AUSUS v1.0.0 — Première release stable

AUSUS atteint 1.0. Coupe stable de v0.2.0-rc.1 — toutes les classes PHP, le bundle renderer React, le format de fil ViewSchema, la surface HTTP API et les contrats SPI sont bit-à-bit identiques à rc.1. La ligne de stabilisation v0.2 alpha → beta → rc est close ; v1.0 est ce dont elle était la candidate.

Ce que "stable" signifie

La surface d'API publique est gelée. Aucune nouvelle classe, interface, méthode ou champ wire ne sera ajouté, supprimé ou renommé dans la ligne 1.x sans un bump minor / major synchronisé selon SemVer.

Le wire est gelé. schemaVersion reste à 1.2.0 pour chaque release 1.x. Les changements minor additifs (e.g. nouvelles clés wire optionnelles) bumperaient à 1.3.0 ; les changements wire breaking nécessiteraient 2.0.0.

Le contrat de compatibilité du renderer reste. @ausus/renderer-react@1.x.x déclare peerSchemaVersion: ^1.0.0 et reste forward-compatible avec chaque release backend 1.x.

Installation

Le flag de stability pre-release n'est plus requis :

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

Les consumers alpha / beta / rc existants reçoivent 1.0.0 automatiquement au composer update : stable satisfait les flags per-package @alpha / @beta / @rc, et les contraintes inter-package ont migré de la forme pre-release ^0.2@alpha vers la forme stable ^1.0.

Ce qui a changé entre rc.1 et 1.0.0

Zéro changement runtime, API, wire, build, peer-dependency ou comportement de test. Le diff est metadata de package + documentation uniquement :

  • renderer/react/package.json : version 0.2.0-rc.11.0.0.
  • 5 CHANGELOG.md de packages PHP : nouvelle section [1.0.0] documentant la coupe stable.
  • 5 composer.json de packages PHP require : contraintes inter-package ^0.2@alpha^1.0.
  • packages/starter/composer.json minimum-stability : alphastable. Un user qui scaffold un fresh project n'hérite plus d'un flag de stability pre-release.
  • Surfaces de documentation (README, installation.md, troubleshooting, CURRENT_VERSION, sidebar, release notes EN + FR) mises à jour à l'idiome v1.0 — la commande d'installation canonique laisse tomber le flag de stability, et les références à "pre-1.0" / "beta" / "rc" comme état courant glissent vers "stable" / "1.x".

Surface fonctionnelle (portée depuis le cycle alpha / beta)

Pour la description complète de ce qui a été livré pendant la ligne v0.2 et qui reste la baseline v1.0, voir les notes de release v0.2.0-beta.1 :

  • Pagination — ?limit=N&offset=M avec écho totalCount.
  • Filtrage whitelisté — opérateurs eq / in / contains, SQL paramétré, trois vecteurs d'injection SQL pinnés en regression.
  • Tri multi-colonnes — ?sort=<field>:<dir>,… avec brise-égalité déterministe id ASC.
  • ViewSchema wire 1.2.0 — échos top-level filters[] + sort[], forme étendue data.pagination.
  • DX — composer serve + bin/server.php sur le starter, façade Application::renderProjection().
  • Durcissement runtime Phase A + B + C — cinq interfaces de marqueurs typés dans Ausus\Errors\*, dispatch marker-first ErrorMapper::classify().
  • Release engineering — scripts manifest + evidence archive, workflow release-replay, gate pre-publish provenance renderer, release-gate matrix (PHP 8.3 + 8.4).

Renderer

@ausus/renderer-react@1.0.0 est la release npm appairée avec ce backend. Le dist-tag latest pointe désormais sur cette version (préalablement tenu à la dernière stable 0.1.1 pendant que la ligne pre-release v0.2 vivait sur @next).

  • Aucun changement TypeScript / build / peer-dependency depuis rc.1.
  • peerSchemaVersion reste à ^1.0.0 ; le renderer reste consommable par tout backend de la ligne wire 1.x.
  • Forme du bundle identique (21 fichiers, 16.9 kB).

Compatibilité

TierVersionStatut
Stable courantev1.0.0GA
Ligne pre-releasev0.2.0-alpha.5 / v0.2.0-beta.1 / v0.2.0-rc.1supersedée par 1.0.0 (toujours sur Packagist pour référence historique)
Legacyv0.1.0 / v0.1.1legacy / abandonnée sur Packagist

Un consumer tournant sur une ligne pre-release v0.2 upgrade à 1.0.0 en retirant le flag de stability de son composer.json racine et en exécutant composer update. Les contraintes existantes ^0.2@alpha (ou beta / rc) require devront être bumpées à ^1.0 quand le consumer voudra se locker sur la ligne stable.

Limitations connues (reportées à un minor futur ou à un stream séparé)

  • Pagination par curseurdata.pagination.nextCursor reste le slot réservé. Arrivera comme un minor 1.x additif.
  • Arbres de filtre booléens (groupes AND / OR imbriqués) — explicitement hors scope pour v1.0.
  • Tri par expressions calculées — rejeté par la whitelist colonne ; hors scope pour v1.0.
  • Drivers persistence MySQL / PostgreSQL — workstream explicite post-1.0.
  • Relations multi-entité — stream RFC séparée.
  • Politiques de garde par transition — stream RFC séparée.
  • Actions async — stream RFC séparée.

Artefacts publiés

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 (réservé par nom)
ausus/audit-databasev1.0.0 (réservé par nom)
ausus/auth-bridgev1.0.0 (réservé par nom)
ausus/presentation-defaultv1.0.0 (réservé par nom)
@ausus/renderer-react1.0.0 (npm @latest)

Note de clôture release-engineering

L'exécution du workflow release-replay.yml déclenchée contre ce tag sort en non-zéro — un artefact documenté de transition-snapshot lié au premier tag coupé sur la ligne stable. Le release-gate, le clean-room, le public-install et le quickstart composer create-project ausus/starter:^1.0 sont tous indépendamment verts contre les artefacts publiés. L'analyse complète de la cause racine (avec démonstration SemVer et preuve forward-looking que les futurs tags v1.0.x rejoueront vert) est archivée dans le bundle d'evidence de release :

  • artifacts/releases/v1.0.0/release-replay-followup.md — record de clôture + verdict (GREEN — cosmétique uniquement, v1.0.0 reste pleinement accepté).
  • artifacts/releases/v1.0.0/release-gate.live.log — preuve canonique de RELEASE_GATE_LIVE=1 RELEASE_GATE_VERSION=v1.0.0 Steps 1-9 verts contre les artefacts Packagist + npm publiés.