Skip to content

fix: restore the pre-32 Nextcloud floor — this repo tests stable31 - #762

Merged
rubenvdlinde merged 1 commit into
developmentfrom
fix/restore-nc-floor
Aug 7, 2026
Merged

fix: restore the pre-32 Nextcloud floor — this repo tests stable31#762
rubenvdlinde merged 1 commit into
developmentfrom
fix/restore-nc-floor

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

fix: restore the pre-32 Nextcloud floor — this repo tests stable31

min-version is enforced at install time, so a 32 floor makes occ app:enable
refuse on stable31, which this repo's own CI runs. The e2e seed then fails
with "is not installed or enabled".

The reason the floor was raised no longer holds: openregister#2372 removed
every eager reference to its ContextChat provider, so the class is only
loaded behind interface_exists() guards and never read on an older server.
openregister#2380 restored its own 28 floor on that evidence.

min-version is enforced at install time, so a 32 floor makes occ app:enable
refuse on stable31, which this repo's own CI runs. The e2e seed then fails
with "is not installed or enabled".

The reason the floor was raised no longer holds: openregister#2372 removed
every eager reference to its ContextChat provider, so the class is only
loaded behind interface_exists() guards and never read on an older server.
openregister#2380 restored its own 28 floor on that evidence.
@rubenvdlinde
rubenvdlinde merged commit c18c43d into development Aug 7, 2026
@rubenvdlinde
rubenvdlinde deleted the fix/restore-nc-floor branch August 7, 2026 11:08
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/procest @ 65e6dce

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
build
check-manifest
check-vue3-compile
test-l10n
composer ✅ 100/100
npm ✅ 552/552
PHPUnit
Newman ⏭️
Playwright
Hydra gates

Quality workflow — 2026-08-07 11:45 UTC

Download the full PDF report from the workflow artifacts.

rubenvdlinde added a commit that referenced this pull request Aug 8, 2026
…ed matrix (#767)

The floor has been flipped twice this week (#759 raised it, #761 was closed,
#762 reverted it) because nothing tied the declared range to the tested one.
This raises it to 32 per the fleet-wide alignment on PHP 8.3, and adds the
test that makes the next flip impossible to land silently.

WHAT I CHECKED RATHER THAN ASSUMED

The rationale already sitting in info.xml was stale, and #762 reverted the
value while leaving that rationale in place — so the file declared 28 and
explained 32. Both the info.xml comment and code-quality.yml claimed
"openregister declares min-version=32". Measured today against the canonical
repo, ConductionNL/openregister@development declares:

    <nextcloud min-version="28" max-version="34"/>

openregister#2380 undid it. So the openconnector#1172/#1173 rule — min-version
must be >= the max of every <app> dependency's floor — imposes NO constraint
here: procest declares no <app> dependencies at all, and the app it depends on
in practice has a floor of 28. Both stale comments are corrected rather than
repeated.

#762's own stated premise is also false at this tip. It reverted the floor
because "this repo tests stable31"; code-quality.yml pins
nextcloud-test-refs to exactly ["stable32"], and the stable31 leg was REMOVED.

WHY 32 IS RIGHT ON TODAY'S EVIDENCE

1. Nothing below 32 is tested. stable32 is the only leg, so 28-31 was an
   advertised App Store range with zero exercise behind it.
2. info.xml declares <php min-version="8.3"/> two lines above. Nextcloud 28
   does not support PHP 8.3, so the pair the two lines jointly advertise is
   not a configuration that can exist.

CI MATRIX: unchanged, and now checked. No leg targets NC < 32 — stable32 is
the only entry — so there is nothing to drop. max-version stays 34, the
fleet-wide value everywhere except openconnector (35).

CAN-FAIL PROOF for NextcloudFloorMatrixTest (3 mutations, measured):
  - floor 32 -> 33: 2 failures — "runs against stable32" and "no CI leg runs
    at or above it".
  - matrix ["stable32"] -> ["stable31"] at floor 32: 2 failures, naming
    stable31. This is literally the state #762 claimed to be in, so the test
    would have caught that PR.
  - both restored: OK (3 tests, 25 assertions).

It asserts on every individual ref, not on the matrix merely being non-empty,
and a separate positive control fails if either scan matches nothing — an
unparsed matrix would otherwise make every assertion pass vacuously.
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