Repository navigation
v0.11.0
-
Changed. Accepts
rasuvaeff/property-testing-core^0.7,^0.8and
^0.9alongside^0.5and^0.6, and develops against
rasuvaeff/property-testing-testo^0.9. None of the engine's breaks on
that stretch reach this package: it passes no generator into
Gen::oneOf()/Gen::elements()(0.9), no delimited pattern into
Gen::regex()/Gen::stringMatching()(0.9), builds noCounterExample
argument that 0.10 renames, and reads none of the counters 0.8–0.9
redefined. The suite is green against every line it declares. -
Changed. Accepts
rasuvaeff/openapi-contract^0.10alongside^0.8
and^0.9. 0.10 bounds what a document expands into (Limits::$documentNodes,
which the generator never builds documents large enough to reach) and finds
operations through a route index instead of a scan; neither changes how a
document compiles or how a message is judged, and this suite is green against
every line it declares. -
Changed. Accepts
rasuvaeff/openapi-contract^0.9alongside^0.8.
0.9 narrows the contract's public surface —Operation::__construct()is
@internaland the byte budgets moved fromContract::MAX_*constants to a
Limitsobject — without changing how documents compile or how messages are
judged, so this suite passes against both lines and both stay supported. -
Changed. Requires
rasuvaeff/openapi-contract^0.8. That release
refuses documents 0.7 accepted — an unreadable subschema, a parameter
declared twice, a boolean written as a string — and reads several things
differently:$refsiblings by dialect, acontentmap by specificity, a
trailing slash as part of the path, a repeated parameter as a violation. The
generator builds documents this package controls, so nothing here changed
with it; the constraint moves so that--prefer-lowestexercises the
compiler this suite is written against. -
Internal. Two tests built documents
rasuvaeff/openapi-contractno
longer accepts, so this suite went red against its development branch while
staying green against the release. The shared multipart fixture is a document
that compiles again, and the malformed header declarations it carried — a
value that is not an object, a name that is not a string — moved to a test
that hands the generator anOperationbuilt by hand, which is the only way
such a shape can still reach it.rejectsAPartContentTypeMismatchItCannotConstruct
builds its operation the same way, so every dataset reaches the refusal it
is named for. -
Internal. A
Contract dev-masterjob runs this suite against the
contract's development branch on every relevant pull request. It does not
gate the build — that master may legitimately be ahead of what this package
supports — but the day it goes red is the day to look, instead of finding out
at release time.