chore: raise Nextcloud floor to 32 (PHP 8.3) and drop the impossible stable31 CI leg - #153
Closed
rubenvdlinde wants to merge 2 commits into
Closed
chore: raise Nextcloud floor to 32 (PHP 8.3) and drop the impossible stable31 CI leg#153rubenvdlinde wants to merge 2 commits into
rubenvdlinde wants to merge 2 commits into
Conversation
Contributor
Author
|
Superseded: reopened from |
Contributor
Quality Report — ConductionNL/openbuild @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ❌ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| composer | ❌ | ✅ 100/100 | |||
| npm | ✅ | ✅ 389/389 | |||
| PHPUnit | ✅ | ||||
| Newman | ✅ | ||||
| Playwright | ⏭️ | ||||
| Hydra gates | ⏭️ |
Quality workflow — 2026-08-08 16:07 UTC
Download the full PDF report from the workflow artifacts.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Product directive from the PO (Ruben): the fleet standardises on Nextcloud 32 so it can require PHP 8.3 — "we want php 8.3 so going for min version nc 32 fleet wide is a good thing."
The governing rule (openconnector#1172 / #1173): an app's
min-versionmust be>=the max of every<app>dependency's floor, or the App Store advertises a range the app cannot deliver — the dependency refuses to install and the app is non-functional there.openregister@developmentdeclaresmin-version 32as of openregister#2384 (merged 2026-08-08T10:45Z); re-measured on this branch with an XML parser and confirmed.Shape
Floor-only PR directly to
main. Reason:maintrailsdevelopmentby 188–5206 commits in every repo in this fleet, so adevelopment→mainmerge would be a full release, not a floor fix.Changes
1.
appinfo/info.xmlmin-versionmax-versionmin-versionA prose comment was added above the
nextcloudelement. It contains no XML element syntax: floor guards here count raw regex matches of the nextcloud element across the whole file including comments, so a quoted example would read as a second, contradictory declaration and trip the guard. Validated before push: the file parses as XML and<nextcloud\b[^>]*>matches exactly once.2.
.github/workflows/code-quality.yml— drop the impossible CI legnextcloud-test-refs: '["stable31", "stable32", "stable33"]'→'["stable32", "stable33"]'stable31 is removed because it tests an impossible configuration, not to trim coverage. A floor of 32 is enforced at install time, so
occ app:enablerefuses on NC31. The shared workflow runs app-enable as|| echo "::warning::...", so the failure is only a warning and the job continues without its data layer, then dies ~70 seconds later on missing schemas — which reads like an app/migration fault and sends you to the wrong file entirely.Order matters too: the newman / playwright / journeydoc jobs check out the server at
fromJSON(inputs.nextcloud-test-refs)[0], so astable31sitting first put all of them on the one version the app cannot be enabled on.This removes an impossible leg — it does not widen the matrix. No new refs are added. Some job names (
PHPUnit (PHP 8.x, NC stable31)) will legitimately disappear from the check set.Measurement notes
All version readings were taken with
xml.etree.ElementTree, never grep.mainappinfo/info.xmlcontains exactly one<nextcloud>occurrence and no commented-out examples. The "literal examples inside comments" hazard cited in the rollout brief does not apply to this file — the single-match validation was still run and still passes.openregister@mainstill declaresmin-version 28(max 34). Onlyopenregister@developmentis at 32. Stated explicitly so no reader infers a claim aboutmainthat is not true today.maininfo.xmldeclares no<app>dependency at all (developmentdeclaresopenregister). So the dependency-max rule does not mechanically bind onmainyet; the floor here is raised on the fleet directive and to match thedevelopmentlineage. The install-time argument for dropping stable31 stands on the app's own floor of 32 regardless.additional-appsinstallsConductionNL/openregisteratref: main(floor 28), so openregister itself would install on NC31 — it is this app's new floor that makes the stable31 leg impossible.