NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist
Framework-independent OpenAPI 2.0, 3.0, and 3.1 parser with an immutable canonical model
Last release 28 days ago
09 Sep 2026
Too new to tell
only 2 release windows
Nearly every release is documented
notes for 11 of 11 stable releases
Nothing withdrawn
no release was ever pulled
1 months old
11 releases · first in 2026
One column per month.
fix(openapi): preserve conditional names and literal constraints
First release cut from the utopia-php monorepo .
First release cut from the utopia-php monorepo.
Add Operation::acceptedSecuritySchemeNames() for unique scheme names across security alternatives.
Operation::acceptedSecuritySchemeNames() for unique scheme names across security alternatives.Operation::requiredSecuritySchemeNames() for scheme names present in every alternative.Add Specification::resolveSchema() for explicit local schema reference resolution.
Specification::resolveSchema() for explicit local schema reference resolution.Map annotated string enumerations onto synthesized StringSchema metadata while preserving their CompositeSchema tree.
StringSchema metadata while preserving their CompositeSchema tree.CompositeSchema::stringEnum() for closed and open annotated enums.x-enum-name and x-enum-keys.This is a breaking release. Consumers using enum vendor extensions should migrate their specifications to annotated enumerations before upgrading.
Preserve empty enum-key lists as the signal to derive identifiers.
Preserve typed enum metadata for OpenAPI 2 inline parameters.
Expose typed enum names and keys on StringSchema .
StringSchema.x-enum-keys entry as a string.Expose the enum-bearing branch for open string enum anyOf schemas through CompositeSchema::openStringEnumBranch() .
anyOf schemas through CompositeSchema::openStringEnumBranch().Full changelog: 0.1.1...0.1.2
Stop interpreting the unofficial x-nullable extension as schema nullability.
x-nullable extension as schema nullability.x-nullable only as an uninterpreted vendor extension where extensions are captured.A framework-independent OpenAPI parser with an immutable canonical model. A 2.0, 3.0 or 3.1 document reads into the same Specification shape, so consu
First tagged release.
A framework-independent OpenAPI parser with an immutable canonical model. A 2.0, 3.0 or 3.1 document reads into the same Specification shape, so consumers do not branch on the source version.
Utopia\OpenAPI\Parser::parse() detects the version and returns a Specification. A Swagger 2 document and the OpenAPI 3.1 document describing the same service produce the same shape.ObjectSchema, ArraySchema, StringSchema, CompositeSchema, ReferenceSchema, and so on — all extending Schema, all readonly.$ref between schemas is preserved as a ReferenceSchema rather than expanded, because recursive schema graphs are legal. Object references (parameters, responses, examples, security schemes) are resolved.x- prefixed key is captured on every model that can carry one, and never interpreted.PHP 8.5+, ext-json.
composer require utopia-php/openapi
Your coding agent can read these notes before it upgrades. Set up the MCP server →