Skip to content

info.xml declares NC 28-34 while ocp is pinned ^31 and CI tests 31/32/33 #50

Description

@rubenvdlinde

The disagreement

appinfo/info.xml declares:

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

while composer.json requires "nextcloud/ocp": "^31.0" and the CI matrix is
nextcloud-test-refs: '["stable31", "stable32", "stable33"]'.

So this app advertises NC 28, 29, 30 and 34 to the App Store and tests none of
them
, and static analysis has never read an API surface older than 31 — meaning
nothing added in 28–30 is checked against, and, more to the point, nothing removed
after 31 is reportable either.

Found by gate-65 rule 11 (ConductionNL/.github#393):

FAIL test-matrix-misses-declared-versions: appinfo/info.xml declares NC 28-34,
but no job runs on stable28, stable29, stable30, stable34.
The matrix is ['stable31', 'stable32', 'stable33']

Why the floor should move rather than the matrix widening

Adding stable28/29/30 legs would mean testing against servers this app cannot
plausibly support: it already requires PHP 8.3, and its own dependency pin has
been ocp ^31 throughout. The 28 is not a supported floor, it is a stale one.

What the change needs

  1. appinfo/info.xml<nextcloud min-version="32" max-version="34"/>, matching
    every core Conduction app.
  2. composer.json"nextcloud/ocp": "^34.0". Required, not optional: with the
    floor at 32, gate-65 rule 9 (ocp-below-declared-minimum) fails an ocp ^31.
  3. Regenerate composer.lock in the same commit, or composer install exits 4 and
    every PHP job dies before running a tool:
    composer update --no-interaction --no-progress --no-install --no-audit --no-scripts \
      nextcloud/ocp --with-all-dependencies
    Do not add --ignore-platform-reqs — it also discards config.platform.php, so
    the solver stops respecting the app's PHP floor and can write a lock that cannot
    install on the 8.3 legs.
  4. nextcloud-test-refs'["stable34", "stable32", "stable33"]', stable34 first
    because fromJSON(inputs.nextcloud-test-refs)[0] is the single server for newman,
    playwright, journeydoc-capture and the coverage guard.

Expect the ocp ^31 → ^34 bump to surface real findings: that is the point of it.

app-versions had the same shape and is fixed in ConductionNL/versioniq#143 — it
needed no ocp bump, since it already tracked dev-master.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions