@@ -161,34 +161,35 @@ jobs:
161161 # need the matching runtime or `vendor/composer/platform_check.php` aborts
162162 # with `Composer dependencies require a PHP version ">= 8.3.0"`.
163163 php-version : " 8.3"
164- # Set explicitly, because the shared workflow defaults to
165- # `["stable31", "stable32"]` and stable31 CANNOT WORK here. integriq
166- # declares <app>openregister</app> as a hard dependency, and openregister
167- # declares min-version="32". On NC31 the E2E job logs
168- # App "Open Register" cannot be installed because it is not compatible
169- # with this version of the server.
170- # then continues with a WARNING, so the run proceeds without its central
171- # dependency and fails ~70s later on missing tables — which reads like a
172- # migration fault rather than a missing app. Testing a version the app
173- # cannot support produces red that says nothing. See issue #1172.
174- #
175- # WHY THIS IS NOW stable34 AND NOT `["stable32", "stable33"]`. This PR
176- # moves the dev requirement to `nextcloud/ocp ^34`, so the stubs every
177- # static-analysis leg resolves against are NC34's. Running the suite
178- # against an older server would check the app under one set of API
179- # signatures and analyse it under another, and the two disagreeing is
180- # exactly the class of defect the analysers exist to find.
181- #
182- # ✅ THE NARROWING IS CLOSED, THE FIRST WAY. The previous revision of this
183- # comment recorded a deliberate trade: info.xml declared three server
184- # versions while the suite exercised one, leaving NC32 and NC33 unmeasured
185- # rather than known-broken. It named its own closure condition — "restoring
186- # the older refs alongside stable34 once ocp ^34 stubs are proven compatible
187- # with them" — and that condition is now met: portaliq runs stable32,
188- # stable33 and stable34 against `nextcloud/ocp ^34` and all six PHPUnit
189- # legs pass (run 31599055849). So the refs come back rather than info.xml's
190- # floor going up, and the two numbers agree again.
191- nextcloud-test-refs : ' ["stable34", "stable32", "stable33"]'
164+ # NO `nextcloud-test-refs` HERE, DELIBERATELY. Unset, the shared workflow
165+ # derives the PHPUnit matrix from appinfo/info.xml, so the tested range and
166+ # the declared range cannot disagree.
167+ #
168+ # THIS BUMP IS WHY IT HAD TO GO. The list read
169+ # `["stable34", "stable32", "stable33"]` while info.xml now declares NC
170+ # 32-35 — gate-65 rule 11, NC 35 advertised to the App Store and exercised
171+ # by nothing. Appending "stable35" would clear the gate for this PR and
172+ # re-arm the same trap for NC 36; worse, it would arm it on `development`
173+ # rather than here, because the gate fires on the manifest/matrix
174+ # disagreement for EVERY later PR, not just the one that introduced it.
175+ # openregister#3777 took the same decision for the same reason.
176+ #
177+ # WHAT THE OLD LIST WAS PROTECTING, AND WHY IT NO LONGER HAS TO. Its first
178+ # entry mattered: E2E, newman and journeydoc-capture ran against
179+ # `fromJSON(nextcloud-test-refs)[0]`, so stable34 had to lead to keep them
180+ # off a server openregister cannot load — openregister declares
181+ # min-version="32", and on NC31 the E2E job logged `App "Open Register"
182+ # cannot be installed…`, continued with a WARNING, and failed ~70s later on
183+ # missing tables (issue #1172). Those jobs now consume the workflow's
184+ # `single-server` output — the numerically highest branch in the resolved
185+ # set — so list order is inert and the floor is carried by info.xml's
186+ # min-version="32" instead of by a hand-written array.
187+ #
188+ # THE stable35 LEG DEPENDS ON openregister. `additional-apps` below installs
189+ # openregister from `development`, and the shared workflow aborts a job whose
190+ # `occ app:enable` fails for an additional app. openregister#3777 (max-version
191+ # 34 -> 35) is merged, so that leg can enable it; if openregister's declared
192+ # ceiling ever lags this one again, this leg is where it will show.
192193 # `hydra-gates-require-full-coverage: false` is REMOVED here, exactly as
193194 # the comment it replaced instructed: "Remove this line in the change
194195 # that wires those producers up, so the coverage requirement arrives with
0 commit comments