Skip to content

v1.8.1

tagged this 20 Aug 05:08
Cut because v1.8.0 shipped an ObjectServiceInterface WITHOUT patchObject()
and with updateObject() still summarised as "Apply a partial update to an
existing object" — the exact wording that sent a consumer down the erasing
path. The correction landed on main in f8cad2f0 two days after v1.8.0 was
tagged, and every app has been pinned to the broken copy ever since.

That is not confined to documentation. hydra-gates claims the app's own
namespace in its composer autoload:

    "psr-4": { "OCA\\OpenRegister\\Contract\\": "hydra-gates/contracts/" }

which is a LONGER prefix than openregister's own OCA\OpenRegister\ -> lib/,
so the gate package wins. Nine repos vendor it, so under OC_App::loadApps()
whichever app registers first defines the contract for the whole instance.
Measured on a running instance: softwarecatalog's vendor directory was
supplying openregister's interface, and patchObject() — the read-merge-write
path — was unreachable through the type consumers bind to.

openregister/tests/Unit/Service/ObjectServiceUpdateVersusPatchTest catches
all three symptoms; it has been failing on that, and only that, out of
16 839 tests.

Also carries everything else merged on main since v1.8.0, including gate
behaviour changes (phpcs errors fail the gate #483, gate-8 judges how the
caller consumes the null #506, coverage-guard ignores deletions #480) and
the release step now bumping openapi.json alongside appinfo/info.xml (#515,
which had left all six of opencatalogi's PHPUnit cells red).
Assets 2
Loading