Skip to content

chore(hydra-gates): vendor manifest schema 2.41.0 - #794

Closed
github-actions[bot] wants to merge 1 commit into
mainfrom
chore/vendored-manifest-schema-2.41.0
Closed

github-actions[bot] wants to merge 1 commit into
mainfrom
chore/vendored-manifest-schema-2.41.0

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

The vendored manifest schema was at 2.37.0. @conduction/nextcloud-vue 2.57.1 ships 2.41.0.

Gates 22 and 53 validate every app's manifest against the vendored copy, so until this merges an app that adopts a key 2.41.0 added is rejected by the gate while its own npm run check:manifest passes.

Before merging

CI resolves these gates at @main, so this reaches all 21 swept apps the minute it lands. Constraints that got stricter in this diff:

/$defs/page/allOf[0]/then/not/anyOf[2]/required: newly required ["savedViewTree"]
/$defs/page/allOf[0]/then/not/anyOf[3]/required: newly required ["board"]
/$defs/page/allOf[0]/then/not/anyOf[4]/required: newly required ["dateAxis"]
/$defs/page/properties/savedViewPlaces: property removed while additionalProperties is false, so the key is now refused
/$defs/widgetEntry/allOf[10]/if/properties/widgetKey/enum: enum no longer allows ["stat","delta"]
/$defs/widgetEntry/allOf[1]/if/required: newly required ["ncDashboard"]
/$defs/widgetEntry/allOf[1]/then/required: newly required ["id"]
/$defs/widgetEntry/allOf[3]/if/required: newly required ["slot"]
/$defs/widgetEntry/allOf[5]/then/properties/props/required: newly required ["entries"]
/$defs/widgetEntry/allOf[5]/then/required: newly required ["props"]
/$defs/widgetEntry/allOf[9]/if/properties/widgetKey/const: new const constraint "chart"

none means the diff is additive and cannot redden a manifest that passes today. Anything else means it can, and the fleet's effective manifests need validating against both schemas first.

Opened by .github/workflows/hydra-gates-schema-sync.yml. See #785 for why the vendored copy needs a keeper.

rubenvdlinde added a commit that referenced this pull request Oct 4, 2026
…cloud-vue 2.59.0

The vendored copy was 2.37.0, so gates 22 and 53 rejected learniq's
run-action setup step with `onDemand`, a key the library publishes since
schema 2.42.0. The file is byte-identical to the one the package ships, which
is what hydra-gates-schema-sync.yml would vendor; it supersedes the 2.41.0 bump
in #794, which still lacks onDemand.

diff_schema_strictness.js names 11 tightened constraints between 2.37.0 and
2.42.0 (the same list as #794; 2.41.0 to 2.42.0 is additive). Validated the
base and effective manifests of all 19 fleet apps that ship one against both
schemas: no app turns red, dossiq and learniq turn green.
rubenvdlinde added a commit that referenced this pull request Oct 4, 2026
…bodies, gates 22 and 53 vendor schema 2.42.0 (#815)

* fix(gate-3): resolve a contract mirrored by a stub, and end a tab-indented body at its own brace

learniq's six lifecycle guards implement OpenRegister's
LifecycleGuardInterface::check(..., string $userId) and mark $userId unused,
but the exemption only looked for the supertype under lib/, so they were
reported with no closing action. The helper now also reads stubs/ and any
tests/**/[Ss]tubs directory; the stub must still declare the same method with
the same parameter, and an unresolvable supertype still reports.

The caller-identity body stopped at a four-space closing brace, so in a
tab-indented file it ran to EOF and a later method's $userId hid a stub. The
body now ends at the brace matching the signature's own indent.

* fix(gates-22,53): vendor manifest schema 2.42.0 from @conduction/nextcloud-vue 2.59.0

The vendored copy was 2.37.0, so gates 22 and 53 rejected learniq's
run-action setup step with `onDemand`, a key the library publishes since
schema 2.42.0. The file is byte-identical to the one the package ships, which
is what hydra-gates-schema-sync.yml would vendor; it supersedes the 2.41.0 bump
in #794, which still lacks onDemand.

diff_schema_strictness.js names 11 tightened constraints between 2.37.0 and
2.42.0 (the same list as #794; 2.41.0 to 2.42.0 is additive). Validated the
base and effective manifests of all 19 fleet apps that ship one against both
schemas: no app turns red, dossiq and learniq turn green.

* fix(gate-53): pin the JS helpers to CommonJS

Node takes a .js file's module type from the nearest package.json above it.
The package shipped none, so a checkout under a "type": "module" tree (the
Nextcloud server checkout) loaded every helper as an ES module and gate-53
died with "require is not defined in ES module scope".

* test(gates-22,53): the real-pair strictness arm follows the key the latest bump added

The arm stripped savedViewPlaces from the vendored schema, a key the library
removed after 2.37.0, so it failed on the 2.42.0 copy. It now strips onDemand,
the 2.42.0 addition, and asserts the key and the closed step are still there so
a later bump says what to re-point instead of failing obscurely.
@rubenvdlinde

Copy link
Copy Markdown
Contributor

Superseded by #815, which vendors manifest schema 2.42.0 (byte-identical to @conduction/nextcloud-vue 2.59.0) and validated it against 19 apps. 2.41.0 still lacks setup-step onDemand, so merging this would bring back the gate-22/53 false positive on learniq.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant